项目介绍
目前新能源车中的混动汽车,由于又有电的部分,也有传统燃油车部分,又由于厂家目前是偏向电车的构造,所以很多数据显示不全,如发动机转速这些实际是不给显示的,还有厂家对于电机转速这块也是隐藏的,很多只显示功率和车速信息。所以我们通过OBD-II接口,可以获得很多信息。
硬件介绍
主要是一个串口转CAN接口的模块,用这个主要是树莓派没有CAN接口。
树莓派5,主要功能是运行QT然后通过QT的串口数据传输,可以通过OBD接口拿到行车数据。
少不了一个OBD接头,只要接上CAN线,电源我们也可以考虑使用,给树莓派供电需要。
软件介绍
软件主要是移植串口转CAN的功能,内部有一些配置,使用的是AT指令,比较方便,主要是配置三个东西,一个是CAN数据的波特率,两个是信息滤波,不然串口这就是收的数据比较多,需要处理很多。我们直接过滤掉,然后只获取我们通过OBD协议回传的数据的帧。
波特率配置,现在新能源车速率到500Kb/s了所以要调整,初始化时修改了。
滤波器功能开启,对串口要求就很低了。
CAN模块初始化一个是波特率,这个默认我们就不设置新波特率了,要设置CAN总线波特率,后面就是设置滤波,过滤掉其他回复帧。
重要的回读,底下的dta就是判断回读数据的。
主要功能就是用定时器,不断发OBD协议,然后回复过来解析。
以上就是整个代码架构了。
功能展示图及说明
主要页面是用到了两个框,用来显示发动机转速,这也是新能源车未显示功能,通过这个功能我们可以知道发动机是否工作,还有就是时速功能。水温等数据考虑直接用Label来显示了。
这是目前通过CAN调试器发送的。实际演示看我视频。
视频
【《2024 DigiKey 汽车应用创意挑战赛》树莓派OBD行车数据获取】
见附件