android obd编程,【图】DIY Android手机应用通过OBD读取行车电脑信息
现在有多手机的智能驾驶应用程序,通过一个盒子,就能够让手机连接汽车并读取速度、温度、油耗、故障码等各种信息,为用户带来大便利。其实,这样的应用程序,有兴趣的话,也可以自己制作。
首先,要有硬件能够将手机连接到汽车。这样的硬件,目前用的较多的一种基于ELM327芯片的OBD适配器。可以网购到多使用ELM327的OBD转蓝牙适配器,价格从几十元到几百元的都有,选择一款适合的就了。
东风风神S30的OBD接口在方向盘左下方,有个盖子打开就能看到,将买到的OBD适配器插这个接口,按下适配器的电源开关,看见电源指示灯亮之后,它就工作了。
在制作自己的程序之前,可以先用现成的程序测试下不用。手机应用市场有大量的这类程序,例如车况检测大师、Torque等,这里以Torque为例来测试,软件的使用方法我就不在这里复制粘贴了,网有多教程。安装之后,先打开手机蓝牙,盒子配对,一般初始配对码1234。配对成功之后,再运行Torque软件,将自动检测各种协议,风神S30通信成功后,界面如下
可以读出转速、速度、水温、油门开度等信息,如果不需要DIY的话,也可以直接用这类软件,清故障码、统计油耗,或者设置成HUD模式(镜像显示),放在前挡玻璃下作为HUD使用(手机屏幕亮度不够,白天基本看不清)。
如果觉直接用现成程序太繁琐,或者多功能用不,想尝试自己动手的乐趣,那么可以自己DIY程序,目前我只测试了使用Android手机,通过ELM327连接风神S30的情况,把经验共享给大家,其他的手机、适配器车型需要大家自己摸索了,在多资料都可以网找到的。
Android手机通过蓝牙OBD适配器通信的,想汽车通信,也要从蓝牙通信入手,Android的开发包自己就带了一个蓝牙聊天的例程BluetoothChat,基于它修改就可以了。查阅资料后,只用修改一处就可以连接适配器了。BluetoothChatService.java第53行改成这样
然后编译、安装到手机,选择“Connect a device - Insecure”,选择配对的OBD适配器,就能连接了。
因为ELM327适配器通信协议,要求每条命令都用回车("")结束,所以要再改一处。BluetoothChat.java第217行,加一句,如下
再次更新手机程序,连接之后,先发送"ATZ"重置适配器,然后再发送各种命令,就可以读取需要的车辆信息了,比如010C读取发动机转速,010D读取车速等等,更多的命令,可以参考这里(http://en.wikipedia.org/wiki/OBD-II_PIDs),这套命令的学名叫作OBD II PID。
图,010C读出来的转速0BCA换算出来就754rpm。风神S30使用的比较通用的OBD II PID命令。
到这里,自己制作Android手机程序风神S30汽车通信就成功了,大家可以按照自己的需求爱,制作自己喜欢的手机应用,加入更炫的界面更强的功能。
android obd编程,【图】DIY Android手机应用通过OBD读取行车电脑信息相关推荐
- opengl android 纹理贴图 代码,Android 使用opengl es的纹理贴图白屏问题请教。
各位大侠好: 我在使用open gl es的做显示的时候,发现一个问题,请各位帮助一下,谢谢. 环境:opengl es 1.x,2D的模式显示纹理图片. 在LG-P990,HTC-C510E上显示附 ...
- Android智能手机编程笔试题,android智能手机编程
spContent=为什么学习Android手机编程?自己适合学Android开发吗?零基础能学习吗?学Android应该学哪些技术呢?本课程以"任务驱动"为中心,"用中 ...
- android不支持USB怎么办,安卓手机通过USB连接不上电脑怎么办
安卓手机通过USB连接不上电脑怎么办 当我们将手机和电脑用数据线连接起来,但是电脑上面并没有连接成功,这是应该怎么办呢? 一.方法/步骤 1.点开你的手机,找到[设置]选项,点开设置. 2.在设置的最 ...
- android 截长图 方法,Android实现截屏与截长图功能
本文实例为大家分享了Android实现截屏与截长图功能展示的具体代码,供大家参考,具体内容如下 Demo在GitHub的地址:ScreenShoot 在Android开发中,有时候会遇到需要截屏分享到 ...
- android 网络编程面试题,Android面试题整理
Android方面: 3.内存优化(内存泄漏.内存溢出),如何查找内存泄漏,如何优化 内存泄露:是指程序在申请内存后,无法释放本应该被回收的内存.内存泄露的堆积就会导致内存溢出. 内存溢出:是指程序在 ...
- android五子棋编程教程全集,android简单自定义View实现五子棋
本文实例为大家分享了android自定义View实现五子棋的具体代码,供大家参考,具体内容如下 先说一下吧,android的自定义View就是自己实现一个类去继承View,实现其中的方法,这里面我最感 ...
- android多媒体编程题库,android 仿猿题库答题UI
需要做类似猿题库答题板效果,网上没有找到Android的,就自己写一个,浮层上滑底层UI跟着改变的UI public class DragLinearLayoutextends LinearLayou ...
- android.9背景图变形,Android聊天背景图片变形解决方案
Android聊天背景图片变形,一般是由于键盘引起的.可以参看StackOverFlow解决的地址:外链网址已屏蔽 我这里用的也是参考这里的方法: 解决方法很简单: 1.在AndroidManifes ...
- android智能手机编程考试答案,Android智能手机编程形考作业
任务1:案例讨论 通过修改和优化案例代码的方式修改和优化本单元的"简单计算器"案例. 本次活动不限定方向,你可以: 阐述设计思路: 添加新的计算器功能,如添加正弦函数.余弦函数的计 ...
最新文章
- CentOS 6.3(x86_64)下安装Oracle 10g R2
- java离群值,监视-衡量Java中单线程复杂算法的最佳宏基准测试工具/框架是什么?...
- 人工智能时代的数据中心该怎么建?腾讯给出了自己的答案
- bootstrap的弹窗剧中_jquery – 如何让BootPrap(Plugin)的ClockPicker出现在Bootstrap Modal弹出窗体中?...
- leetcode-- 124. 二叉树中的最大路径和
- 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](3)
- ENSP配置 实例四 默认路由配置
- 队列、函数-多线程 线程队列的实现-by小雨
- 从文件系统迁移到ASM上
- 通过AT指令实现ESP8266模块和TCP服务器的数据传输
- 我的IC之旅——资深芯片设计验证工程师成长——“胡”说IC工程师完美进阶
- 解决苹果电脑OS X 10.8.5或10.7.5 老版本系统升级问题
- node mysql菜鸟教程_Node.js Web 模块
- linux oracle ora-12162,oracle ORA-12162: TNS:net service name is incorrectly specified
- tensorflow获取中间变量参数值
- Google员工的工作环境
- POP3 SMTP 协议分析
- excel的lookup函数
- Django DTL 加减乘除求余
- android删除自带应用程序,安卓手机自带软件怎么卸载?无需root卸载安卓手机自带软件方法...