数据安卓4

安卓4.4.4  时间:2021-02-22  阅读:()
2017年第26卷第6期http://www.
c-s-a.
org.
cn计算机系统应用ResearchandDevelopment研究开发271安卓平台中OBD车辆数据的采集及上传系统①廖海林,李优新,叶绍翔,朱正佳(广东工业大学信息工程学院,广州510006)摘要:提出了一种车辆数据采集与上传方案,通过安卓平台的蓝牙模块与车辆上OBD模块进行信息交互,从而实现对车辆数据的实时监测,并通过互联网把采集到的数据上传到基于JEE搭建的web服务端,在服务端通过对数据的分析和统计,最终在web端实现图表展示.
该方案具有低成本、操作性强、效率高、维护简易等特点.
关键词:蓝牙;OBD;互联网;服务端OBDDataAcquisitionandUploadingSystemforVehicleonAndroidPlatformLIAOHai-Lin,LIYou-Xin,YEShao-Xiang,ZHUZheng-Jia(SchoolofInformationEngineering,GuangdongUniversityofTechnology,Guangzhou510006,China)Abstract:Akindofschemeforvehicledataacquisitionanduploadingisproposedinthispaper.
Andthereal-timemonitoringisimplementedonthebasisofdataexchangebetweenBluetoothmoduleoftheandroidplatformandOBDmoduleonthevehicle.
Moreover,thecollecteddataisuploadedtothewebserverwhichisbuiltonJEE.
Andthenthedataareshowedintheformofchartsontheweb-sideafterdataareanalyzedandprocessedontheserver.
Theschemehasalotofadvantagessuchaslowcost,strongoperability,highefficiencyeasymaintenanceandsoon.
Keywords:bluetooth;OBD;internet;server1引言车联网(InternetofVehicles)是车内网(CAN/LIN)、车际网(V2V/V2I)与车载移动互联网(INTERNET)"三网"融合的智能系统.
据福布斯官方网站报道,2015年中国共售出2460万辆汽车,涵盖乘用车、卡车及客车,同比上涨4.
7%.
在《2015-2020年中国车联网行业市场全景调研与投资策略分析预测报告》中显示:随着我国汽车保有量和产量的不断增长,到2020年销售量将突破5000万户,2014-2020年车联网用户的年均增幅有望达到33.
48%,行业渗透率超过20%.
车联网需要实时采集车辆内部的数据,传统方法是采用RS-232、RS-485通过CAN总线对车辆系统内部数据通信[1],从而实现数据实时性的采集,显示终端都固定在车辆上.
而随着车载诊断系统OBD-Ⅱ(OnBoardDiagnostics)[2,3]的出现,显示终端以随身携带的方式出现在人们的面前.
同时OBD-Ⅱ不仅仅再是监控车辆尾气的排放,也能获取发动机控制单元(ECU)、变速箱控制单元(TCU)等各个控制单元的数据,甚至还可以满足车辆故障检测、诊断的功能.
OBD-Ⅱ主要侧重稳定性、及时性和智能性,这样才导致OBD模式车联网的兴起.
另一方面,传统的车载系统一般采用ARM系列的CPU,基于微软的WinCE操作系统,只具有导航、收音机、蓝牙免提和DVD等基本功能.
而随着基于开源的谷歌Android操作系统的崛起,并处于互联网和大数据的时代,使得Android操作系统在车载系统具有非常大的发展.
正是安卓平台的智能化和网络化,能使OBD数据与网络进行交互.
本文的技术方案正是基于以上背景提出的通过对车辆数据信息的采集,实现安卓智能平台和远程服务端可以实时获取车辆数据信息.
①收稿时间:2016-09-21;收到修改稿时间:2016-11-10[doi:10.
15888/j.
cnki.
csa.
005809]计算机系统应用http://www.
c-s-a.
org.
cn2017年第26卷第6期272研究开发ResearchandDevelopment2系统架构设计2.
1系统结构与原理本系统的总体设计方案如图1所示,主要由车辆的OBD模块,安卓平台,服务器和web端四个部分构成.
其工作原理是首先在OBD接口上插装一个兼容ELM327的OBD检测仪;接着安卓平台通过蓝牙与OBD检测仪进行通信,通过串口应答方式,获取机动车传感器的数据,并在安卓平台上显示;然后安卓平台通过互联网,实时地把数据上传到服务端,服务端同时把数据保存到本地的数据库当中,并对其进行相应的数据分析和统计;最后通过web端访问服务器,从而实现图表的显示.
图1系统总体设计方案示意图2.
2安卓平台模块结构安卓平台采用了模块化的设计方式,如图2所示.
主要由无线通信模块,蓝牙模块,GPS模块和安卓应用软件模块组成.
其中无线通信模块通过4G网络或者无线网络把采集到车辆数据传输到服务端;蓝牙模块主要是与车辆OBD接口进行数据交互的;GPS模块用来获取车辆的实时地理位置信息(经纬度);应用软件模块是实现了与用户进行交互的界面和车辆采集数据的显示.
2.
3OBD相关技术OBD的全称是On-boardDiagnostic,车载诊断系统.
第二代OBD系统以16pin母口的J1962连接器作为标准接口,其通信协议由不同汽车厂商决定.
OBD-Ⅱ的服务是通过模式号(Mode)和参数号(PID)组合确认的[2].
本系统主要使用模式01和模式03,其中模式01为车辆传感器的实时数据,模式03用于请求车辆排放相关的故障码信息.
根据ISO-15031-5协议,例如想请求发动机转速,则该模式号为01,参数号为0C.
图2安卓平台模块结构图2.
4数据传输格式本文数据传输格式使用JSON(JavaScriptObjectNotation).
JSON是一种轻量级的数据交换格式,比起XML,其主要优势在于它的体积小,在网络传输的时候可以更省流量.
一般JSON数据是以键-值对的集合形式表示,比如对象person用JSON格式来表示:{"id":"1","name":"Liaohailin","sex":"male"}.
本文使用第三方开源库Jackson进行Java对象和JSON数据之间的转换,这样使得JSON数据格式容易阅读,解析速度快且占用空间更少.
比如上面的person对象并不需要以键-值对集合形式来表示,只需要把数据在Person.
Class类封装好并实现序列化,这样就可以进行数据传输了.
3软件系统开发设计3.
1OBD系统通信在本系统中,安卓平台设备与ELM327检测仪通过蓝牙连接[4],使用蓝牙SPP(SerialPortProfile)协议[5],实现蓝牙设备间进行数据的传输.
ELM327是一款标准OBDII汽车引擎系统诊断检测仪,支持安卓(Android)、塞班(Symbian)、PPC(WindowsMobile)、WinXP(32位)、Win7(32位)等操作系统.
结合本系统的车辆检测软件,能读取汽车各传感器数据,实时检测汽车状态.
为确保安卓平台设备与ELM327正确建立连接,程序流程如下[6]:(1)程序启动后,先检查安卓平台是否支持蓝牙,不支持就在LogCat日志打印信息,并关闭检测软件,关键代码如下:mBluetoothAdapter=BluetoothAdapter.
getDefaultAdapter();if(mBluetoothAdapter==null){Log.
e(TAG,"bluetoothisnotavailable");2017年第26卷第6期http://www.
c-s-a.
org.
cn计算机系统应用ResearchandDevelopment研究开发273finish();}(2)检查蓝牙是否处于打开状态,如未打开,通过Intent发起打开蓝牙设备的请求,关键代码如下:if(!
mBluetoothAdapter.
isEnabled()){Intentintent=newIntent(BluetoothAdapter.
ACTION_REQUEST_ENABLE)startActivityForResult(intent,REQUEST_BLUETOOTH_ENABLE);}(3)如果有匹配的蓝牙设备,直接点击连接;如果没有,则点击"搜索设备",系统将开始查找蓝牙设备.
在搜索新设备时创建了一个BroadcastReceiver,并注册了两个事件,分别是BluetoothDevice.
ACTION_FOUND和BluetoothAdapter.
ACTION_DISCOVERY_FINISHED,最后将搜索到的新设备添加到ListView中,并注册了点击事件,以进行蓝牙设备的配对.
关键代码如下:IntentFilterfilter=newIntentFilter(BluetoothDevice.
ACTION_FOUND);this.
registerReceiver(mReceiver,filter);IntentFilterfilter=newIntentFilter(BluetoothAdapter.
ACTION_DISCOVERY_FINISHED);this.
registerReceiver(mReceiver,filter);3.
2车辆数据采集ELM327的指令类型分两大类:一类是AT指令[2],可以复位芯片,设置通信参数等功能;另一类是OBD指令,是以ASCⅡ码表示的16进制数.
目前汽车车型可能只支持SAEJ1979协议和ISO-15031-5协议中的部分模式号和参数号,但是所有车辆都必须支持Mode01,PID00指令,该指令返回车辆在01模式下支持的所有PID.
所以,在获取车辆数据前,先发送"0100\r",获取车辆ECU所支持的PID集合,成功返回6个16进制数"4100xxxxxxxx".
前两个字节用于确认请求码,剩下的四个字节按二进制数展开,每一位代表一个PID,1表示该PID可以读取,0表示不能读取.
根据ISO-15031-5协议得知PID05表示发动机水温数据,安卓平台发送"0105\r"请求,假设返回"410567",水温数据在协议中设置的补偿为(X-40),返回数据中67的十进制数为103,所以车辆水温为103-40=63摄氏度.
3.
3车辆数据上传本系统在安卓端把采集的数据封装好,再利用开源的Jackson工具包把封装好的类进行序列化,通过HTTP协议上传到服务端[7];在服务端利用Jackson工具包把数据进行JSON解析,然后通过JDBC操作数据库.
首先去官网下载Jackson工具包,有3个jar包需要下载:jackson-core-2.
2.
3.
jar(核心jar包)jackson-annotations-2.
2.
3.
jar(该包提供Json注解支持)jackson-databind-2.
2.
3.
jar(1)安卓端关键代码如下:ObjectMapperom=newObjectMapper();om.
writeValue(conn.
getOutputStream(),OBD_data);(2)服务端关键代码如下:ObjectMapperom=newObjectMapper();OBD_Datadata=om.
readValue(request.
getInputStream(),OBD_Data.
class);4系统测试与分析4.
1安卓平台功能测试在安卓平台使用eclipse4.
2作为开发工具,利用Java语言进行代码的编写.
参考郭霖的《第一行代码-Android》制作UI界面[8],最终在安卓设备可以查看车辆实时速度、发动机转速、行驶里程等数据,还可以显示百度地图功能.
显示界面如图3所示.
图3安卓平台显示界面4.
2JEE平台测试本系统的Web服务器基于J2EE[9]采用Tomcat搭建,并使用MVC模式开发,数据库选用MySQL5.
6.
计算机系统应用http://www.
c-s-a.
org.
cn2017年第26卷第6期274研究开发ResearchandDevelopment服务器完成数据存储、用户管理及故障分析等功能.
下面进行的是模拟调试,完成对数据库的操作,在web端显示用户在每日24h时间段内的驾车平均速度,如图4所示.
图4web端24小时驾车平均速度图5结语本系统通过对车辆OBD数据的采集,实现数据在安卓平台上显示和通过互联网上传数据到服务端,并实现数据的存储和分析,最后通过web端实现基本的图表功能.
本文设计方案简单易行,开发成本低,拓展性强,加上安卓系统不断地发展,为后续相关项目的研究开发打下了基础.
参考文献1宋雪桦,潘波,黄继梅.
汽车电控制单元CAN-RS232-USB诊断与通讯模块研制.
微计算机信息,2006,(22):226–228.
2ELM327DS.
OBDtoRS232Interpreter.
ElmElectronics-CircuitsfortheHobbyist.
3三木.
OBD端口的商业价值有没有含金量.
音响改装技术,2015,(3):52–57.
4MeseguerJE,CalafateCT.
DrivingStyles:Asmartphoneapplicationtoassessdriverbehavior.
2013IEEESymposiumonComputersandCommunications.
IEEE.
2013.
535–540.
5黄立梅,陈彤.
一种基于安卓蓝牙和OBD接口的车辆监测与控制方法.
汽车实用技术,2016(4):104–105.
6李小敏.
基于Android智能手机的汽车诊断系统的研究与实现[硕士学位论文].
青岛:中国海洋大学,2014.
7徐健,王涛.
HTTP/1.
1分析.
西南师范大学学报(自然科学版),2004,29(2):316–319.
8郭霖.
第一行代码-Android.
北京:人民邮电出版社,2014.
9马聪,王璞.
基于OBDII&EOBD的机动车监测系统分析与设计.
计算机工程与应用,2016,52(1):233–238.

hosteons:10Gbps带宽,免费Windows授权,自定义上传ISO,VPS低至$21/年,可选洛杉矶达拉斯纽约

hosteons当前对美国洛杉矶、达拉斯、纽约数据中心的VPS进行特别的促销活动:(1)免费从1Gbps升级到10Gbps带宽,(2)Free Blesta License授权,(3)Windows server 2019授权,要求从2G内存起,而且是年付。 官方网站:https://www.hosteons.com 使用优惠码:zhujicepingEDDB10G,可以获得: 免费升级10...

腾讯云轻量应用服务器关于多个实例套餐带宽

腾讯云轻量应用服务器又要免费升级配置了,之前已经免费升级过一次了(腾讯云轻量应用服务器套餐配置升级 轻量老用户专享免费升配!),这次在上次的基础上再次升级。也许这就是良心云吧,名不虚传。腾讯云怎么样?腾讯云好不好。腾讯云轻量应用服务器 Lighthouse 是一种易于使用和管理、适合承载轻量级业务负载的云服务器,能帮助个人和企业在云端快速构建网站、博客、电商、论坛等各类应用以及开发测试环境,并提供...

易探云:香港物理机服务器仅550元/月起;E3-1230/16G DDR3/SATA 1TB/香港BGP/20Mbps

易探云怎么样?易探云(yitanyun.com)是一家知名云计算品牌,2017年成立,从业4年之久,目前主要从事出售香港VPS、香港独立服务器、香港站群服务器等,在售VPS线路有三网CN2、CN2 GIA,该公司旗下产品均采用KVM虚拟化架构。目前,易探云推出免备案香港物理机服务器性价比很高,E3-1230 8 核*1/16G DDR3/SATA 1TB/香港BGP线路/20Mbps/不限流量,仅...

安卓4.4.4为你推荐
atmosphereios11usergoogleAssumegraph三星iphone支持ipad图书馆学、情报学期刊投稿指南联通版iphone4s联通版iPhone4s 用联通3G卡好还是移动的好360chrome360的chrome浏览器进程有点多哦???googleadsencegoogle adsense打不开怎么办css选择器CSS中选择器包括 A,超文本标记选择器 B,类选择器 C,标签选择器 D,ID选择器
香港加速器 godaddy域名转出 北京双线机房 me空间社区 phpmyadmin配置 福建铁通 跟踪路由命令 太原联通测速 web应用服务器 学生服务器 杭州电信宽带 美国主机侦探 cx域名 ipower e-mail asp简介 neicun 装修瓦工招聘 网易轻博客 新浪轻博客 更多