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

OBD2油耗表

[复制链接]
丿灬幸灬 发布时间:2018-11-9 15:01
拿起一个STM32F103,一个ILI9341和一个ELM327 OBD BT来监测油耗' F$ Q9 U. P% _
diagram.jpg , _. j) y8 [+ k; E! r! u* q+ p& M: _) y
描述5 l/ d" z) @0 H/ V4 S1 ?( T
* q, b7 z% f: X$ E3 L% N2 t
我的车没有车载电脑,但我想监测油耗。& R- ~# M! K! ?
  x+ y4 ]  g8 [+ ~* d0 Q
我尝试过使用ELM327蓝牙加密软件(中国版),但是加密软件不支持从OBD总线读取燃料数据所需的所有AT命令。) w: [7 |% Z8 F+ n: A

* D# Y3 B# u0 o, D. C1 j所以我找到了一个KW1281 arduino库,移植/改进/修改它到STM32运行arduino IDE,并添加了ILI9341代码。) u& m7 ~" R% [, H$ c
1114621490705683078.jpg
/ y. }& f$ i& i, ]: F: v5 q1 `2 Q 2368141490705712996.jpg ; g: v, C$ e0 g. k5 [
细节! ?. u; y: b8 j7 O

* A: ?# Q9 z* B# o/ O; w9 X2 _# u8 k这个项目的第一个尝试是使用ELM327蓝牙。$ r% L. j! L5 a; q+ f; R
& D" V0 j& v2 t# Y+ r
但是我发现ELM327提供的OBD信息是不够的。它只提供速度、转速、水温和其他一些传感器读数。
" X  c2 v4 E$ M# ?
2 U3 |. K" O% Z$ ~  B+ s: f但与燃料消耗无关……  P0 A- \6 [; l$ f; A' x4 u1 V

8 K2 p. Y6 E- d3 ~. d# D
! _' S; v! f8 s; W- a- P* U然后我转向另一种方法:“如果我可以直接驾驶OBD巴士呢?”2 f; X( P& ~8 u  B
6 C" n! [( }6 r' p# k

' A( o9 J  k6 n6 l4 u5 v2 c8 E因此,我使用arduinos在网上搜索OBD实现,并找到了这个网页(OBD2_KW1281)描述非常好的KW1281协议(使用我的奥迪A4),并有arduino的代码!好了!, V! g6 g* r- V7 n
9 \. t8 {- c! h$ E' C; w7 y4 {* P

9 s1 ~6 A9 o, D: ^4 s* p/ l2 M我将STM32与arduino IDE结合使用,它收集了三个方面的优点:良好的性能、低廉的价格和大量可用的库/代码。你可以在stm32duino上查看& h! }+ {- U8 Z
* x/ ^( v- E& [4 D3 A7 Z6 Y7 T6 B
5826911490705744148.jpg
; @! {; W+ _" X' ?% ]; @组件* ?* d: ]( r) x9 r( [( [
8 ~8 y* q: J# J& o+ W+ c
1×STM32F103  微处理器、微控制器、DSPs /微控制器(MCUs)
1 A7 {# Z- g2 T) i# @/ w! t8 k. j! v/ b* f+ Z
1×ILI9341    2.8英寸320x240 TFT液晶显示屏6 @+ O; x+ Q  g5 A* a5 j6 K
, s3 t7 {9 M7 G4 p; t  E
1×ELM327蓝牙适配器    OBD2到蓝牙加密
8 A7 H$ H6 Q/ a" v. `( j
+ @8 K/ x8 s7 `- E# H0 n8 n1×MCP9801   传感器/温度,温度
5 x# j$ }4 x+ D' _' J
% R4 o  U  M! N; l6 h* V) v1×ESP8266    可能用它作为TFT驱动…
* r# e! F. o9 A% K! w; d" @" h; t2 J) h" h" w# q3 D

. w& V  {' |0 ]: y5 K- pUART信号
/ Z& K' Y: p1 x5 S/ `9 e2 X: K& K: g$ h; z- T- q$ ?+ V

4 O: b3 [+ U& _3 e" g2 `, E我在ODB适配器上做了手脚,设法得到了一个NPN晶体管,集电极通过电阻器连接到5V轨道上,并将UART TX线连接到基座上。然后将收集器连接到驱动K-Line的NPN的基础上。
1 F& S( O) v1 V
2 D, o" u3 l7 H) f3 m) a4 _1 O0 }& r
这样我就不需要中断反转“东西”来破坏UART计时。' _! N& G$ G" L2 c) I9 _8 c
+ v! S+ p9 t# ]4 Y: l
1 k. S! E& H+ p/ X+ C* ?
( j" @6 N2 [3 a  _# J1 A
ESP8266准备好了
) g7 ^4 S/ `' x! ^! o
! j( y! O4 z; S8 X1 H  h我终于准备好了一个新的布局,并定义了通信“API”。: V2 q6 u5 |& B, g" I+ d, p

0 T3 q  b5 Y7 F& L
( |. u, P0 N! ?& O' G! M* T我的目标是一个具有二进制格式的ID、值和校验和的结构,但是现在,为了便于调试,我制作了一个包含所有ASCII值的简单API: 、、<\n>。/ N3 x  D, E0 k. [

5 V2 g* g1 d, _2 x. N( b  E4 t
. c0 {$ R& T1 ]: B3 A通过这种方式,我可以输入一个串行控制台并手动设置值,检查是否一切正常。2 z4 w) t5 g/ O8 O5 s; ]* A
# h) P3 P  A  |$ k1 l. X4 v
2 K: `$ }6 L- `. o6 j
现在我必须获得STM32代码,以便将相应的值发送到这个API。
# f6 d6 g" h2 p, Q( R. `" H) B; |. \9 R
  r; s, v1 p: o8 h( h
另外,我还没能做到这一点,但我将测试在PC上OBD通信超过90公里/小时的标志与软件运行。如果它起作用,那代码上没有bug,如果不是,我可能不得不重新考虑整个事情……: I- @! ?! g$ R' \3 ~# P" n  B

5 }7 ?: I: w4 G5 S( X( [: C- u# v. C) Y9 E# N
为什么是90?
* i& J  [- Y3 k
$ F9 F( Z$ P5 n8 x6 d( y因此,我设法在车上安装了一些电缆,并将k线控制信号从OBD适配器传输到仪表板。这样我就可以开车去看展览,而不会看不见路了!!!安全驾驶!6 J* W0 I. _! T
# R! F; t' I! b5 q/ c( P' \2 J8 ^
然后我上路了,一切都很好。偶尔在这里和那里重新连接,但一切似乎都很好。5 w; z' a8 i+ `6 q  O
8 j5 [5 N7 k' M8 [
但当我进入高速公路,一切都变得疯狂!我注意到在90公里/小时后OBD似乎停止响应。% u+ @, O+ |  q2 B

, a: j# W; c) n" o% O8 C当我回到90以下时,它会重新连接,一切正常。
! [- m6 l/ ^* [2 X/ ~
0 m9 G# |  F% I9 L8 v* p3 G# j2 p! r
代码不是很优化,因为我读取了OBD值(3次),然后我更新了显示器,也读取了温度传感器,也用它更新了显示器。这大约需要130+90=220毫秒。据我所见,我在笔记本电脑上使用了迷走神经网络软件,并捕捉到了控制信号,当软件空转时,它会向ECU来回发送ACK帧。因此,通信和ECU之间的220毫秒可能太长,可能会中断连接。还需要进一步调查……
8 `8 Z! a1 w+ L5 |& f' O
# U( M# F" H$ k# ^/ }& t/ @  v; I1 I, x( W
但是我计划添加一个ESP8266来负责显示控制,而STM32只剩下OBD任务。通过这种方式,我可以让它以最大速度读取数据块,并通过RS232向ESP报告它们,然后让它显示数据。
/ ]- J9 p, O( N( L, I8 J* f4 F( T" b
9561641490806327343.jpg " p# E, k9 i1 }( b, w3 h0 h; _: N
5270491490806824346.jpg
7 \& K* F& }/ i& ?& r& c% [7 L- {  f4 o% P" G* i/ K+ V" m
收藏 评论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 手机版