核心提示:之前我给BJ40弄了个自动化控制系统,加装自动大灯,遥控远程点火等功能遥控用的是超外差433模块。这有个缺点,就是没法知道车辆的实时状态。去年冬天有一回,远程点火没点着,车在楼下停得较远。发动机有没有正常启动也听不见。相当于车钥匙一直开在on档,结果把电瓶电耗完了。看不到实时状态,这点太不好了。琢磨...
之前我给BJ40弄了个自动化控制系统,加装自动大灯,遥控远程点火等功能遥控用的是超外差433模块。这有个缺点,就是没法知道车辆的实时状态。去年冬天有一回,远程点火没点着,车在楼下停得较远。发动机有没有正常启动也听不见。相当于车钥匙一直开在on档,结果把电瓶电耗完了。看不到实时状态,这点太不好了。琢磨了一下,要是能用手机控制,APP上显示车辆实时信息多好。这肯定要读取车辆bd接口数据。以前我玩的stc89c51是不行了,前些日子没事看了看stm2的视频。感觉也不难,51直接操作寄存器,而stm32资源太多,要用库函数,得换个观念。看了几天发现stm32确实资源丰富功能强大。一个c8t6片子上就不仅有dc(以前用的ne555电路完全可以淘汰了),还有3个串口,1个can,cn接口就是汽车obd的标准通讯方式。还有wm呼吸灯直接用程序控制,再不用费劲焊一堆电阻电容元件了,以前用89c51还弄两单片机,现在一个小stm32f103c8t6全搞定。
和普通车一键点火一样,点按打开acc和on,长按一秒以上自动点火,点火前会检测obd是否连接正常,正常才可点火。
车辆启动正常后显示发动机转速和水温,5分钟后自动熄火,一般情况下五分钟足够冬季大早上热车了。
菜单里有个 console控制台,可以输入指令,设置系统或者观察运行情况。设备如果数据发生变化,即刻将最新数据推送到手机app,数据采用json格式。
连接app的wifi模块有的有人科技的一款,宝上买的。
主板布局大概这样
主板上一个stm32f103c8t6最小系统,一个wifi模块,一个gps模块。一个can收发器
这是个光耦隔离电路,TJA1051芯片做cn数据收发,读取车辆OBD数据就靠它做发,之前的模块心存侥幸没做电隔离,结果烧了两个,tja1051是5v供电,而stm32是3.3v,电平不一样,虽然sm32的can收发接口耐5,还是不要这么做,勉强能用运行也不稳定,后来加了6N137光耦隔离,工作很稳定。