你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

OBD2油耗表

[复制链接]
丿灬幸灬 发布时间:2018-11-9 15:01
拿起一个STM32F103,一个ILI9341和一个ELM327 OBD BT来监测油耗
5 {3 u4 x3 F" q4 V# r5 W$ y$ V diagram.jpg ; R7 [4 P! ?  R5 V3 a: F' I  H
描述
) j0 V/ j* n/ G. b  ~$ O% a$ [7 _7 v2 V6 Z4 L. S# @8 `
我的车没有车载电脑,但我想监测油耗。, A0 U( @  N8 I/ S
' H; K; K4 O/ d. ~  b
我尝试过使用ELM327蓝牙加密软件(中国版),但是加密软件不支持从OBD总线读取燃料数据所需的所有AT命令。6 {( R9 n3 ?% B" T

) X' n4 X' X, t3 s7 e, z所以我找到了一个KW1281 arduino库,移植/改进/修改它到STM32运行arduino IDE,并添加了ILI9341代码。) a( M$ k& K6 T! \
1114621490705683078.jpg & E) a2 P0 z  |4 n
2368141490705712996.jpg
9 c3 N# ^, [, @细节( a9 ]* c4 u4 Q: Y  _- e

, U2 O9 d0 H4 }1 y( B这个项目的第一个尝试是使用ELM327蓝牙。! `. i9 P- s- y+ o' k. m
3 _3 R' W# ?- v* i' l- Q! G
但是我发现ELM327提供的OBD信息是不够的。它只提供速度、转速、水温和其他一些传感器读数。; z- I+ V: P3 I5 Z- {! x

0 w, D' t2 _/ j: J但与燃料消耗无关……( S3 B) E1 Z- _& e
# s% ^5 r/ Z  b4 G9 Z/ e# e
' i$ L& P7 w# s- n* m* K) I
然后我转向另一种方法:“如果我可以直接驾驶OBD巴士呢?”3 h) i6 Z- I/ S
5 l, N4 v1 l) s" l! |! C

( G7 ^. }6 x& s: j9 F因此,我使用arduinos在网上搜索OBD实现,并找到了这个网页(OBD2_KW1281)描述非常好的KW1281协议(使用我的奥迪A4),并有arduino的代码!好了!. N% T% y. I# t1 ^  K+ D

5 f4 s, |1 d' l. R1 ?
$ Z! ~+ k( j, X9 B; r我将STM32与arduino IDE结合使用,它收集了三个方面的优点:良好的性能、低廉的价格和大量可用的库/代码。你可以在stm32duino上查看
' r+ O1 J% j( _, p. C8 q) R1 P, q# \1 S0 I: A; v
5826911490705744148.jpg
% m8 M# D' C! x5 [8 O组件- t! p9 G+ {2 a

: q6 e& X( b" G3 o/ c% V" y8 u: s6 V1×STM32F103  微处理器、微控制器、DSPs /微控制器(MCUs)
% l3 [8 B  Z' A) ^  j6 X* W. X; [5 Y7 h5 _/ X/ K
1×ILI9341    2.8英寸320x240 TFT液晶显示屏
9 M" r1 Q, s7 d; Z- a% b  e. ^# X0 `  J/ O) l4 l6 O# `
1×ELM327蓝牙适配器    OBD2到蓝牙加密
/ d8 o) X% ]) C: e+ N0 |: r4 M
0 c0 Z2 }' T8 L- y2 N1×MCP9801   传感器/温度,温度1 y8 \9 b# F5 @" T
7 l8 o) c- L3 s0 ?
1×ESP8266    可能用它作为TFT驱动…
# l: ?: _9 Y( T: \7 q
( }2 G4 ?" s# s3 I0 a  j  ~/ ~9 Y8 }9 b0 L4 f
UART信号
5 t1 s( f, P5 x5 d5 H/ e
( u5 R" i! H6 p; D( H
+ l- |  y* A  p' \7 q& L1 u# `我在ODB适配器上做了手脚,设法得到了一个NPN晶体管,集电极通过电阻器连接到5V轨道上,并将UART TX线连接到基座上。然后将收集器连接到驱动K-Line的NPN的基础上。: b, M0 r3 G- i4 I, T; r
2 H  d3 \: D, j1 m; s: q) L

$ [5 i* D7 p: q! d: H这样我就不需要中断反转“东西”来破坏UART计时。. h$ C- a+ b7 F% P% g
  H8 j  n, M) _( |) f
( V6 N/ [2 s5 y/ ^- V5 ^' x) P; E
6 m( s8 b4 S# b/ A% I2 A
ESP8266准备好了% d3 K  @  j* }: ~% g

! C% U: P3 v; X# l! `8 |& t我终于准备好了一个新的布局,并定义了通信“API”。0 L4 K8 I5 G' t5 y0 D' l
% L& z) t6 i  H  Q% Y5 }
- B3 Z* v5 J9 e$ c5 Z; h4 l
我的目标是一个具有二进制格式的ID、值和校验和的结构,但是现在,为了便于调试,我制作了一个包含所有ASCII值的简单API: 、、<\n>。
1 q5 v1 B2 \* K/ k$ }2 {
6 ]3 y3 [% m: y) t! B! H% n) c* C4 _& K; `
通过这种方式,我可以输入一个串行控制台并手动设置值,检查是否一切正常。9 A& f) }) R1 M2 z$ J$ p

6 p, S' ^7 e- P. D7 S
0 q+ w" {/ P, f3 N) S7 U- A现在我必须获得STM32代码,以便将相应的值发送到这个API。
3 ?  V) t& ?, B% a5 l! ^9 e5 h4 T0 X
: J& o7 E. a8 ?6 I9 q% J% v. B. b% K( F, C: o' ^/ M* L8 X
另外,我还没能做到这一点,但我将测试在PC上OBD通信超过90公里/小时的标志与软件运行。如果它起作用,那代码上没有bug,如果不是,我可能不得不重新考虑整个事情……
& t, n' l8 m2 C  Z/ ~
$ J3 i/ ^8 _3 L4 |! ]
2 B# J5 _9 N6 h为什么是90?( I, ~& Q: W, J# s. S1 z8 |! I
% \6 Q+ J; _% r  C) Q/ R
因此,我设法在车上安装了一些电缆,并将k线控制信号从OBD适配器传输到仪表板。这样我就可以开车去看展览,而不会看不见路了!!!安全驾驶!
4 Y' G7 S9 W1 K
! p7 P2 o  ^/ c/ {( S6 l1 s/ x然后我上路了,一切都很好。偶尔在这里和那里重新连接,但一切似乎都很好。
: m" N) A+ P8 E. p3 x/ m
& {3 `; j6 \& B3 \0 A" r但当我进入高速公路,一切都变得疯狂!我注意到在90公里/小时后OBD似乎停止响应。
$ {' y$ `8 r9 k) h3 K6 E3 v1 n2 U
2 o2 U3 L( \( o0 X' s7 F! ]当我回到90以下时,它会重新连接,一切正常。
+ m; ~" g$ p3 e3 x  ~& @+ H  \2 I4 i  [9 n1 K; X1 f
$ X! v, u$ ^- j8 f& t
代码不是很优化,因为我读取了OBD值(3次),然后我更新了显示器,也读取了温度传感器,也用它更新了显示器。这大约需要130+90=220毫秒。据我所见,我在笔记本电脑上使用了迷走神经网络软件,并捕捉到了控制信号,当软件空转时,它会向ECU来回发送ACK帧。因此,通信和ECU之间的220毫秒可能太长,可能会中断连接。还需要进一步调查……0 ]/ P7 y5 j  ~6 T" R! C* U

" v" d7 _8 @. U' j4 @8 B! a# Z" F. |: F
但是我计划添加一个ESP8266来负责显示控制,而STM32只剩下OBD任务。通过这种方式,我可以让它以最大速度读取数据块,并通过RS232向ESP报告它们,然后让它显示数据。
! Q2 w( I1 i& A, R# P, R2 u8 s$ c1 a" Q8 J; y4 F- ^  Y
9561641490806327343.jpg
4 p* {1 k) A1 K  ~& l& e 5270491490806824346.jpg
) R5 S6 k, `' Y' a
) D) n$ b5 C/ [" F! @1 V5 |
收藏 评论3 发布时间:2018-11-9 15:01

举报

3个回答
mzy2364 回答时间:2018-11-9 16:54:37
好东西
疯de_恒 回答时间:2018-11-9 18:24:46
没看懂。
TLLED 回答时间:2018-11-10 10:51:06
OBD的数据协议是自己解码,还是使用OBD模块来采的

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版