数据安卓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.

Sharktech云服务器35折年付33美元起,2G内存/40G硬盘/4TB流量/多机房可选

Sharktech又称SK或者鲨鱼机房,是一家主打高防产品的国外商家,成立于2003年,提供的产品包括独立服务器租用、VPS云服务器等,自营机房在美国洛杉矶、丹佛、芝加哥和荷兰阿姆斯特丹等。之前我们经常分享商家提供的独立服务器产品,近期主机商针对云虚拟服务器(CVS)提供优惠码,优惠后XS套餐年付最低仅33.39美元起,支持使用支付宝、PayPal、信用卡等付款方式。下面以XS套餐为例,分享产品配...

Spinservers:美国圣何塞机房少量补货/双E5/64GB DDR4/2TB SSD/10Gbps端口月流量10TB/$111/月

Chia矿机,Spinservers怎么样?Spinservers好不好,Spinservers大硬盘服务器。Spinservers刚刚在美国圣何塞机房补货120台独立服务器,CPU都是双E5系列,64-512GB DDR4内存,超大SSD或NVMe存储,数量有限,机器都是预部署好的,下单即可上架,无需人工干预,有需要的朋友抓紧下单哦。Spinservers是Majestic Hosting So...

IMIDC(rainbow cloud):香港/台湾/日本/莫斯科独立服务器特价,闪购大促销,最低30usd/月起

imidc怎么样?imidc彩虹网路,rainbow cloud知名服务器提供商。自营多地区数据中心,是 Apnic RIPE Afrinic Arin 认证服务商。拥有丰富的网路资源。 在2021年 6.18 开启了输血大促销,促销区域包括 香港 台湾 日本 莫斯科 等地促销机型为 E3係,参与促销地区有 香港 日本 台湾 莫斯科 等地, 限量50台,售罄为止,先到先得。所有服务器配置 CPU ...

安卓4.4.4为你推荐
solutionssb存在问题的应用软件名单(2020年第四批)支持ipad支持ipad三星苹果5photoshop技术什么是ps技术ipadwifiIpad怎么用移动无线上网canvas2html5创建两个canvas后,怎么回到第一个canvas联通版iphone4s苹果4s怎么分移动版联通版电信版?micromediaMacromedia Fireworks 8是什么东西,怎么用?
国内免费空间 虚拟主机mysql 河北服务器租用 上海vps 工信部域名备案 ipage 512m unsplash 七夕快乐英文 域名和空间 免费高速空间 优酷黄金会员账号共享 服务器是干什么用的 外贸空间 韩国代理ip 什么是web服务器 镇江高防 谷歌搜索打不开 美国主机侦探 hosts文件修改 更多