Computer Science and Application
Vol.07 No.02(2017), Article ID:19725,8 pages
10.12677/CSA.2017.72013

Research and Implementation of Vehicle Real-Time Monitoring System Based on Android

Lina Xu, Hua Ye*, Peng Tao

School of Automation, Southeast University, Nanjing Jiangsu

Received: Jan. 29th, 2017; accepted: Feb. 13th, 2017; published: Feb. 16th, 2017

ABSTRACT

Auto-remote monitoring has been a necessary condition to ensure people’s normal safety along with the wide application of automobile as a mean of transport. In this paper, a real-time monitoring system based on Android is put forward to realize the real-time monitoring and fault diagnosis of the automobile. And the monitoring system for mobile phone, computer and automobile is designed for vehicle owners and garages. The real-time monitoring system is composed of three parts which are remote monitoring terminal, Android client and OBD vehicle diagnosis interface. Android client accesses to vehicle status information and DTC down using the phone BLUETOOTH and OBD vehicle diagnostic interface communication. While on the other hand, car’s state information is uploaded to the cloud server up using INTERNET. The remote monitoring, remote fault diagnosis and maintenance of the vehicle can be then realized by remote web landing.

Keywords:OBD-II, Android, Remote Monitoring, Protocol Analysis

基于Android的汽车实时监测系统的 研究与实现

徐丽娜,叶桦*,陶鹏

东南大学自动化学院,江苏 南京

收稿日期:2017年1月29日;录用日期:2017年2月13日;发布日期:2017年2月16日

摘 要

汽车作为代步和运输工具已进入千家万户,实现汽车远程监测是保证人们正常出行的必要条件。本文就实现汽车实时监测和故障诊断,提出了基于Android的汽车实时监测系统,设计面向车主和汽修厂的手机、电脑、汽车一体化的监测系统。本文设计的汽车实时监测系统由远程监控端、Android客户端、OBD车载诊断接口三个部分构成。Android客户端向下利用手机Bluetooth和OBD车载诊断接口通信,获取汽车状态信息和DTC;向上利用Internet,将汽车状态信息上传到云端服务器。通过远程Web端异地登陆,实现汽车的远程监控和远程故障诊断及维修。

关键词 :OBD-II,Android,远程监控,协议解析

Copyright © 2017 by authors and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

http://creativecommons.org/licenses/by/4.0/

1. 引言

随着人工智能的发展,汽车已经代替脚力,成为出行的主要交通工具之一。一方面,汽车在不同行业的应用越来越广泛;另一方面,随着电子技术在汽车上的应用范围不断增大,汽车的稳定性、安全性、灵活性和人工智能都有了明显的改善。但同时带来了汽车故障种类多、故障琐碎不易察等问题 [1] 。相比于传统的机械故障,电子控制系统的故障小且隐蔽,能造成整个系统的瘫痪,带来了汽车维修工作的新挑战。

自1996年起美国所有车辆制造商采用OBD-II标准 [2] ,车辆诊断技术越来越标准。OBD-II系统 [3] 将汽车运行过程中的故障状态以故障码DTC的形式存在汽车的ECU组件中,汽车检修人员利用汽车通用故障诊断接口读取DTC,极大地方便了汽车故障排查和检修。但是大部分汽车不携带远程传输模块,所以维修人员的故障诊断受到时间和空间的限制,给客户和维修人员带来不便。随着INTERNET技术的发展,以及智能手机的普及,本文基于Android智能手机,利用智能手机的Bluetooth、GPS、Internet等技术,开发一款面向车主和故障维修人员的基于Android的远程诊断系统。

2. 总体框架

基于Android的手机客户端利用蓝牙和基于K总线和CAN总线的OBD-II通用汽车诊断接口ELM327通信,传输DTC故障码和汽车实时状态。Android通过OBD协议解析,对收到的数据进行分析、处理。通过Android强大的UI界面设计,把处理过的汽车运行信息和DTC以图表的形式呈现给客户。同时手机APP把获得数据存储到本地的同时上传到远程服务器端。设计基于BS模式的远程监控Web端,利用AJAX与服务器建立通信传输用户指令和获取新的数据并加载页面,展示给用户,同时故障维修人员可以在远程登陆,帮助用户维修汽车,实现手机、电脑、汽车一体化的实时监测系统。整个系统结构见图1所示。

图1所示,整个系统结构分为两个部分,第一部分由汽车、OBD通用诊断接口和Android手机构成,通过解析OBD-II协议,设计与OBD通用诊断接口通信的Android客户端。第二部分由服务器和

Figure 1. Overall framework

图1. 总体框架

Web前端构成,利用手机端上传到服务器的汽车记录,设计实现对汽车的远程监控。

3. Android客户端

Android客户端是该诊断系统的信息源,利用Bluetooth与通用汽车诊断接口ELM327通信,解析OBD协议并对解析的数据进行分析、处理、显示和上传。Android客户端的设计包括蓝牙通信、数据库SQLite设计、协议解析和UI设计四部分。客户端设计流程图见图2所示。

3.1. 蓝牙通信

Bluetooth分为BLE和支持SPP协议的普通蓝牙,目前智能手机蓝牙均支持蓝牙4.0协议。虽然BLE低功耗蓝牙具有耗电量低、传输速度快等特点,但因其不适合长时间、多数据的可靠传输,本设计中采用的数据透传蓝牙是传统的支持SPP协议的蓝牙。

3.2. 协议解析

目前生产的所有主流汽车上都配备有OBD并预留出OBD车载接口,OBD-II是国际统一的车辆故障码定义。车载OBD可以监测多个系统和部件,包括汽车的排放控制系统、燃油控制系统、转速系统、氧传感器等 [4] ,获取数据并存储在OBD中。通用汽车诊断接口ELM327和车载OBD接口连接,获取OBD中的数据并通过自身蓝牙把数据传输到上位机。

ELM327作为目前主流的OBD通用故障诊断接口,可自动识别所有的OBD-II诊断协议及与其兼容的通讯协议。具有蓝牙和USB两种连接方式,分别与电脑和手机蓝牙通信,实现:

1) 清除故障代码,并关闭发动机故障报警指示灯;

2) 读取发动机实时运行数据;

3) 读取通用故障诊断代码(DTC),并显示其定义。

在本设计中以Android作为ELM327的上位机,获取透传的OBD数据,解析OBD通信协议。

OBD数据传输流见图3所示:

OBD-II协议中定义的数据格式 [5] 见图4所示:

车载OBD的ECU工作在9种模式下,在每种工作模式下支持不同的PID,每种PID值代表汽车部件不同状态信息,包括发动机冷却液温度、故障码DTC等,所以对OBD的请求和数据解析分为两个步骤 [6] :

Step1:向OBD设备请求一种工作模式下的PID支持并接收设备响应,表1表2所示。

Figure 2. Flow chart of android client

图2. 安卓客户端流程图

Figure 3. Data transmission flows of OBD

图3. OBD数据传输流

(a) SAE J1850, ISO 9141-2和ISO 14230-4所采用的格式(b) ISO 15765-4(CAN)所采用的格式

Figure 4. OBD Message Formats

图4. OBD消息格式

Table 1. Request current powertrain diagnostic data request message (Pattern 01)

表1. 请求当前模式下的PID支持(01模式)

Table 2. Request current powertrain diagnostic data response message (Pattern 01)

表2. 当前模式下PID支持的响应信息(01模式)

Step2:向OBD设备请求一种工作模式下多种PID数据并接收数据,见表3表4所示。

OBD支持多种通信协议,不同的汽车制造商采用不同的OBD通信协议,为了提高通用性,本设计支持12种车载OBD通信协议 [5] 。

在Android端APP内有“设置”功能,用于蓝牙选择和OBD协议选择,用户可根据车型自由选择通信协议。若用户不了解车型所使用的OBD协议时,也或设置“auto”由ELM327自动匹配,具有较强的灵活性和通用性。

3.3. 数据库SQLite设计

SQLite是一个遵守ACID的关系型数据库管理系统,作为一个开源的轻量级数据库,其设计目标是应用于嵌入式设备。目前主流的Android设备均采用SQLite作为本地数据库,本设计中使用SQLite缓存用户行车记录。表是数据库的基本存储单元,一个表就代表一类具有实际意义的对象,用户不能通过对象来访问数据,但是可以通过表来访问数据,Android端行车记录表见表5所示。

3.4. Android端UI设计

Android端解析OBD协议并对解析的数据进行分析、处理、存储最终显示给用户。Canvas绘制仪表盘,实时显示汽车转速、发动机温度等信息。利用重力传感器实时显示汽车运行方向,查询行车记录、汽车故障码等信息,实现汽车-手机-用户一体化 [7] [8] 。Android端设计见图5所示。

4. 远程监控端

设计以HTML为页面骨架,CSS决定页面样式,JavaScript决定页面行为 [9] 。采用单页面应用,降低了服务器渲染页面和页面文件传输的负担,减少网络资源的占用;通过AJAX技术,与服务器进行部分数据交互而非刷新整个页面,实现页面异步更新。

Table 3. Request current powertrain diagnostic data request message (Pattern 01)

表3. 请求当前模式下的PID (01模式)

Table 4. Request current powertrain diagnostic data response message (Pattern 01)

表4. 当前模式下PID值的响应数据(01模式)

Table 5. The table of driving records

表5. 行车记录表

Figure 5. The UI design of Android

图5. Android端UI设计

4.1. 单页面应用和响应式设计

本设计中采用以JavaScript和AJAX为基础的单页面应用设计,单页面设计即用户在网页上的所有操作都在同一个页面进行。其最大的优势是符合用户操作习惯,使得用户在网页上的操作类似于桌面应用,有较好的时效性和可移植性。在实现前后端分离的同时,降低了服务器对渲染页面和文件传输的负担,减少了网络资源的占用,加快了网络请求的响应速度。

为了兼容不同尺寸的浏览设备如手机、平板电脑,本设计采用基于BOOTSTRAPT的响应式设计 [10] ,可让页面布局识别不同设备的分辨率和大小并自动调整,保证良好的用户体验的同时,兼容不同尺寸和不同类型的浏览器。

4.2. AJAX数据交互

前端页面渲染的数据来源是后台服务器,本设计采用AJAX [11] ,实现数据的异步更新。JavaScript向服务器提出请求并加载动作,整个过程不阻塞用户。AJAX保证浏览器和服务器之间异步传输数据,使得页面根据用户请求向服务器请求少量数据而非整个页面,AJAX构建流程见图6所示。

AJAX的工作原理是在在用户和服务器之间加了—个中间层(AJAX引擎),实现数据的异步更新。除此之外,AJAX引擎可以替代本地服务器处理用户的数据验证和数据请求,在需要从本地服务器读取数据时由AJAX引擎代为向服务器提交请求,得页面根据用户请求向服务器请求少量数据而非整个页面。AJAX与后台交互数据采用AJAX get()方法从服务器端加载数据,通过AJAX post()方法从服务器端加载数据以及向服务器端传输数据。

4.3. Web端界面设计

以BOOTSTRAPT作为页面框架渲染界面,JAVASCRIPT执行页面用户行为,AJAX实现异步页面刷新,实现用户随时随地远程获取汽车状态信息、历史故障码和行车记录的远程监控端。既有利于车主实时掌控汽车状态信息,维修人员也可远程登录客户账户,实现远程汽车检修。设计的Web端界面见图7所示。

Figure 6. The flow chart of AJAX

图6. AJAX构建应用程序流程图

Figure 7. The design of web

图7. Web端界面设计

5. 结论

本设计利用智能手机完善的数据处理能力及自带无线、蓝牙等通信功能的优势,并结合INTERNET技术,将汽车的实时检测扩展到远程监控。实现了基于Android的汽车实时监测系统与OBD通用诊断接口ELM327通信,通过对OBD-II协议的解析,可实时获取汽车故障码和状态信息,存储到本地数据库并同时传输到远程监控端。用户不需要购买额外设备,只需在手机上安装APP便可以实现汽车的实时远程监控和故障诊断,并实现故障维修人员的远程维修。系统具有较大的市场应用前景。

文章引用

徐丽娜,叶 桦,陶 鹏. 基于Android的汽车实时监测系统的研究与实现
Research and Implementation of Vehicle Real-Time Monitoring System Based on Android[J]. 计算机科学与应用, 2017, 07(02): 109-116. http://dx.doi.org/10.12677/CSA.2017.72013

参考文献 (References)

  1. 1. 袁卫波. 基于CAN总线的车辆在线故障诊断系统[D]: [硕士学位论文]. 西安: 长安大学载运工具运用工程专业, 2012.

  2. 2. Zaldivar, J., Calafate, C.T., Cano, J., et al. (2011) Providing Accident Detection in Vehicular Networks through OBD- II Devices and Android-Based Smartphones. IEEE 36th Conference on Local Computer Networks (LCN).

  3. 3. Lin, J., Chen, S., Shih, Y., et al. (2009) A Study on Remote On-Line Diagnostic System for Vehicles by Integrating the Technology of OBD, GPS, and 3G. World Academy of Science, Engineering and Technology, 56, 435-441.

  4. 4. OBD Solutions. http://www.obdsol.com/

  5. 5. ELM327: OBD to RS232 Interpreter. Download from http://www.elmelectronics.com/

  6. 6. International Organization for Standardization, “ISO 15031-5: Road Vehicles—Communication between Vehicle and External Equipment for Emissions-Related Diagnostics—Part 5: Emissions-Related Diagnostic Services”, 2006.

  7. 7. 明日科技编著. Android从入门到精通[M]. 北京: 清华大学出版社, 2012.

  8. 8. 苏雅. 基于Android智能手机的人员定位系统的开发与实现[D]: [硕士学位论文]. 南京: 东南大学, 2014.

  9. 9. 颜一鸣. Web前端项目开发实践[M]. 武汉: 中南大学出版社, 2015.

  10. 10. 舒后, 熊一帆, 葛雪娇. 基于Bootstrap框架的响应式网页设计与实现[J]. 北京印刷学院学报, 2016, 24(2): 47-52.

  11. 11. 冯振兴. Ajax技术在Web系统中的应用研究[D]: [硕士学位论文]. 北京: 北京林业大学, 2008.

*通讯作者。

期刊菜单