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

宝塔面板批量设置站点404页面

今天遇到一个网友,他在一个服务器中搭建有十几个网站,但是他之前都是采集站点数据很大,但是现在他删除数据之后希望设置可能有索引的文章给予404跳转页面。虽然他程序有默认的404页面,但是达不到他引流的目的,他希望设置统一的404页面。实际上设置还是很简单的,我们找到他是Nginx还是Apache,直接在引擎配置文件中设置即可。这里有看到他采用的是宝塔面板,直接在他的Nginx中设置。这里我们找到当前...

物语云-VPS-美国洛杉矶VPS无限流量云windows大带宽100M不限流量 26/月起

物语云计算怎么样?物语云计算(MonogatariCloud)是一家成立于2016年的老牌国人商家,主营国内游戏高防独服业务,拥有多家机房资源,产品质量过硬,颇有一定口碑。本次带来的是特惠活动为美国洛杉矶Cera机房的不限流量大带宽VPS,去程直连回程4837,支持免费安装Windows系统。值得注意的是,物语云采用的虚拟化技术为Hyper-v,因此并不会超售超开。一、物语云官网点击此处进入物语云...

远程登录VNC无法连接出现

今天有网友提到自己在Linux服务器中安装VNC桌面的时候安装都没有问题,但是在登录远程的时候居然有出现灰色界面,有三行代码提示"Accept clipboard from viewers,Send clipboard to viewers,Send primary selection to viewers"。即便我们重新登录也不行,这个到底如何解决呢?这里找几个可以解决的可能办法,我们多多尝试。...

安卓4.4.4为你推荐
深圳市富满电子集团股份有限公司urlcss设置media支持ipaditunes备份怎样用itunes备份iphonegoogle中国地图谷歌卫星地图中文版下载在哪下??win7关闭135端口win7系统 怎么关闭135 445 端口 修改注册表 创建IP安全策略 也试过 就是关不了 还望高手指教firefoxflash插件安装火狐浏览器后,老是提示安装flash player?迅雷下载速度为什么 迅雷下载速度太慢win7还原系统win7如何一键还原电脑系统怎么操作
免费网站空间申请 cc域名 高防服务器租用qy 日志分析软件 密码泄露 商务主机 创梦 免费mysql ftp教程 赞助 服务器是干什么的 稳定免费空间 福建铁通 hkt 永久免费空间 登陆qq空间 创速 深圳主机托管 新疆服务器 塔式服务器 更多