基于Android的车辆状态监测系统设计

2021-08-23 05:18:16汤春球邓飞宇曾豪杰
数字制造科学 2021年2期
关键词:油耗蓝牙驾驶员

汤春球,邓飞宇,曾豪杰

(武汉理工大学 机电工程学院,湖北 武汉 430070)

在互联网技术不断更新进步,大数据、云计算等技术飞速发展的背景下,车联网技术[1]由“万物互联”的概念中衍生而来。作为实现车联网技术的关键一环,车辆状态的远程监测日益兴起。Zaldivar较早地将Android智能手机用于车辆状态监测[2],从而验证了Android手机用于车辆状态监测的可行性。目前市面上已存在基于OBD(on-board diagnostics)系统的手机APP,但大多数都只能利用手机蓝牙,通过OBD系统读取车辆的基本信息并在移动端显示,并没有实现车辆的远程监测,并且对于数据的处理较浅。

笔者设计了一种基于Android的车辆状态监测系统,结合OBD系统、蓝牙通信、无线网络等技术,实现了对车辆的远程监测,同时利用服务器中存储的数据对车辆油耗、驾驶员驾驶行为作出分析和评估,对车联网技术的发展有着积极意义。

1 系统概述

笔者所设计的监测系统由车、ELM327、Android移动客户端、远端服务器、Web前端5个部分构成,整体结构如图1所示。

ELM327蓝牙适配器通过汽车上的16针OBD接口安装在汽车上,Android移动客户端(即Android智能手机)通过蓝牙与ELM327建立连接,进而以ELM327作为桥梁与车辆OBDⅡ进行交互。Android客户端通过发送不同的指令来获取车辆ECU(electronic control unit)中储存的车辆状态信息,如发动机转速、车速、空气流量、节气门位置及DTC(diagnostic trouble code)故障码等信息。客户端APP会结合手机自身的GPS(global positioning system)、陀螺仪等传感器对获取到的数据进行相应的处理和分析,继而将车辆的实时状态信息通过可视化界面展示给驾驶员;同时,客户端APP会通过无线网络以HTTP请求的方式与远端服务器进行数据交互,以完成数据上传、查询历史轨迹等操作。服务器布置在云端,它作为数据的处理和存储中心,同时服务于Android客户端和Web客户端(浏览器)。远程人员可以通过Web浏览器与服务器进行交互,从而查询车辆的实时状态信息,进而完成对车辆的实时监测。

2 OBD-Ⅱ系统

OBD是目前绝大多数汽车都配备的车载诊断系统,当前最新的标准为OBD-Ⅱ标准[3],该标准具有统一的16针接口,以及统一的诊断指令。

2.1 OBD-Ⅱ诊断模式

目前,支持OBD-Ⅱ标准的通信协议有很多,由于采用的标准是相同的,因此对于用户而言无论是数据的传输模式还是诊断模式都是通用的。OBD-Ⅱ系统的诊断模式有9种,如表1所示,其中最常用的就是模式1和模式3。

表1 OBD-Ⅱ系统的诊断模式

在诊断模式中,诊断指令由模式编号和PID(parameter identification)组成,模式编号为01到09,分别对应9种诊断模式,而PID在不同的模式下会有不同的定义,以模式1为例,其部分常见PID如表2所示。若要获取车辆发动机转速,则发送“010C”指令给ELM327蓝牙适配器即可,其中“01”代表诊断模式为模式1,“0C”代表PID。ELM327蓝牙适配器接收到“010C”指令后会与车辆CAN网络进行数据交互,进而将响应数据返回给Android客户端,以“010C”指令为例,返回的数据格式为“410CXXXX”,其中“410C”表示为“010C”请求下的返回数据,后两个字节“XXXX”为发动机转速的十六进制表示值,按照公式解析后便可得到车辆的发动机转速值。

表2 模式1下部分常见PID及其解析公式

2.2 故障码

在OBD-Ⅱ系统中,模式3主要用来请求排放相关的动力系统诊断故障码(DTC),用户可以利用故障码对车辆故障进行诊断。一般情况下,用户会先发送“0101”指令来获取车辆故障码的个数,若故障码个数大于0,则发送“03”指令来获取故障码值。

故障码由5个字符组成,其中前两位是一个字母和一个数字的组合符,后3位是数字。字母数字组合为B0-B3、C0-C3、P0-P3、U0-U3,分别对应车身、底盘、动力系统和网络通信。每个故障码对应一个车辆的故障,如“P0131”表示O2传感器电路电压低。

2.3 数据获取

获取OBD数据,首先要建立Android客户端与ELM327蓝牙适配器之间的蓝牙连接。Android SDK中对开发者提供有操作蓝牙设备的API,开发者只需要调用相应API便可操作本机的蓝牙设备[4]。本系统采用经典蓝牙,Android端作为客户端,使用ELM327(服务端)的MAC地址发起连接,从而获得BluetoothSocket套接字,进而与OBD系统进行蓝牙数据交互。

数据获取的流程如下:①移动端发送AT指令,初始化设置ELM327[5];②发送OBD指令,查询车辆OBD系统所支持的PID;③根据第二步的PID,发送对应的OBD指令,从而获取OBD数据;④移动端将数据按标准协议解析处理,之后通过HTTP请求的方式打包上传至服务器,并存储在MySQL数据库中。

3 系统功能模块设计

本系统的核心就在于,采集车辆OBD数据,并通过Android移动端、服务器、Web前端、数据库对数据进行处理,以此实现系统的功能。

3.1 车辆动力系统状态监测

Android移动端将获取到的OBD数据在本地按照标准协议进行解析,并将处理过的数据打包上传至服务器。同时移动端会利用EventBus[6]事件发布/订阅框架,将解析后的数据从子线程传递给UI主线程进行UI显示,将引擎负荷、冷却液温度、燃油压力、发动机转速等动力系统数据展示给车主,供其参考。除此之外,Web前端以移动端上传至服务器数据库中的实时数据为基础,将车辆当前的行驶状态以网页的形式展示给远端人员,以供其对车辆进行远程监测和管理。

系统对某些OBD数据设置阈值,以此对驾驶员的不规范驾驶或车辆异常状态做出预警提示。如将冷却液温度的阈值设置为100 ℃,若超过阈值,则系统会给出“冷却液温度过高”的预警提示;将发动机运行时间的阈值设置为4小时,若超过阈值,则系统会给出“疲劳驾驶”的预警提示。除此之外,系统Web前端会利用Echarts[7]绘制发动机转速、车速等数据的变化曲线图,用以监测车辆状态的变化情况。

3.2 故障诊断

系统读取储存在车辆ECU中的故障码,并利用自定义的TroubleCodes类来定位故障码所对应的故障原因,提高车主或维修人员的维修效率。除此之外,维修完毕后,可通过移动端发送“04”指令来消除车辆的故障码和熄灭故障指示灯。

3.3 结合万有特性的油耗分析

车辆的瞬时油耗可以通过OBD指令“015E”直接获取,然而并不是所有的汽车都支持PID“5E”,若不支持则需要利用已知的数据进行计算得到瞬时油耗。首先要获取车速(简写V,PID为0D,单位为km/h)和进气空气流量(简写MAF,PID为10,单位为g/s),计算过程如下:

(1)计算单位时间内发动机所耗燃油质量FCPS(fuel consumptionper second):

FCPS=MAF/AF

(1)

(2)计算发动机的燃油消耗率EFR(engine fuel rate):

EFR=(FCPS×3 600)/(ρ×1 000)=

(MAF×3.6)/(AF×ρ)

(2)

(3)计算发动机百公里油耗FCPHK(fuel consumptionper hundred kilometers):

FCPHK=(EFR×100)/V=

(MAF×360)/(AF×V×ρ)

(3)

式中:AF为空燃比,在理想状态下,每燃烧一克燃油需要14.7克的空气;ρ为汽油密度,通常为0.70-0.78 g/cm3。

发动机万有特性曲线是具有多参数的特性曲线[8],其横坐标为发动机转速,纵坐标为扭矩或平均有效压力,图中画出许多等油耗率曲线和等功率曲线,可以直观地反映出车辆的经济性随发动机转速和负荷的变化关系,其中油耗率最小的等油耗率曲线区域称为经济区。在万有特性曲线中,点越高,对应的发动机负荷率越大,而在一般情况下,发动机的负荷率越小,油耗就越高。这是因为汽油机的负荷是由节气门来调节的,节气门开启度越小,活塞下拉时所要克服外界大气压力做的功就越多,这会大大消耗能量,因此油耗便会上升。基于上述万有特性的特点,系统可以将获取的OBD数据中的发动机实时转速、节气门位置、引擎负荷,与万有特性曲线中的经济区的工作转速和扭矩进行对比,引导驾驶员在条件(包括外界路况、驾驶技术等条件)允许的情况下,尽可能将车辆发动机的工作状态控制在经济区的范围内。这样不仅可以保证发动机在一个良好的工作状态下,以延长发动机的寿命,而且可以减少油耗,从而获得更好的燃油经济性和汽车动力性。

3.4 驾驶习惯评估

云端服务器的数据库中存储着大量的与车辆相关的历史数据,如OBD数据、车辆位置信息、Android移动端的传感器采集到的信息(如加速度)等状态数据[9]。服务器可以选取某一车辆在某一时间段的状态数据,对数据进行处理分析,从而得到该车辆驾驶员的驾驶习惯,进而对其进行评估,以此辅助驾驶员在驾驶过程中保持良好的驾驶习惯。根据数据库中已有数据,可得到的驾驶习惯评估标准主要分为以下几个:

(1)急加速、急刹车。系统可以通过传感器或计算速度变化率得到加速度来判断驾驶员是否进行了急加速或急刹车操作。设置加速度大于3 m/s2时为急加速操作,加速度小于-10 m/s2时为急刹车操作,系统可以分别统计某一时间段内驾驶员进行急加速操作和急刹车操作的次数,并分别设置阈值。若急加速操作的次数超过阈值则说明该驾驶员急加速操作的次数过多;若急刹车操作的次数超过阈值则说明该驾驶员急刹车操作的次数过多。频繁的急加速操作,不仅会加剧发动机内部零件的磨损,而且会影响车辆行驶的稳定性,同时会加大燃油的消耗;频繁的急刹车操作,不仅会对刹车装置造成损害,以致其寿命降低,而且会加剧轮胎的磨损,同时会给车上人员带来极差的体验。因此,无论是急加速,还是急刹车,都是不良的驾驶习惯。

(2)加速踏板位置变化。Android移动端可以通过OBD系统直接采集到车辆的加速踏板位置信息(PID为49),若OBD系统不支持PID“49”,也可以通过获取绝对节气门位置(PID为11)来间接反应加速踏板位置。通过计算某一时间段内加速踏板位置的平均变化幅度来判断该时间段内车辆加速踏板位置变化的大小。对平均变化幅度设置阈值为10%,若超过阈值,则说明加速踏板位置变化大,反映出驾驶员不能很好地控制加速踏板、平稳给油,从而影响到车辆行驶的平稳性,是一种不良的驾驶习惯。

(3)油耗控制。系统可以获取到某一时间段内从OBD系统采集到的发动机转速信息,结合发动机的万有特性曲线,统计车辆的发动机转速处在经济区转速区间的时长,并计算其与该时间段总时长的时间占比。对时间占比设置阈值,若小于阈值,则说明驾驶员在驾驶汽车的过程中,并不能很好地将汽车的行驶状态控制在经济区范围内,这样会增加燃油消耗和尾气排放量,是一种不良的驾驶习惯。

(4)疲劳驾驶时间。根据《中华人民共和国道路交通安全法实施条例》规定,连续驾车超过4 h,即为疲劳驾驶。疲劳驾驶会严重影响驾驶员对车辆的控制,是造成交通事故的主要原因之一。系统会根据从OBD系统采集到的发动机运行时间来判断驾驶员是否疲劳驾驶及疲劳驾驶的时间,以此来评估驾驶员是否规范驾驶。

(5)故障驾驶距离。Android移动端可以通过OBD系统直接采集到车辆在故障灯亮起后行驶的距离(PID为21),优秀的驾驶员在车辆出现故障后,会尽可能早地处理,避免发生事故。因此可以通过车辆在故障灯亮起后行驶的距离,对驾驶员的驾驶习惯做出评估。

根据以上5个评估标准,结合云端服务器中的大量数据,对驾驶员的驾驶习惯做出评估,同时可以生成评估报告推送至用户的Android移动端,以供驾驶员逐步纠正不良的驾驶习惯。

4 Android移动端部分UI展示

用户登录移动端APP并通过蓝牙连接车辆后,可以在“参数”界面查看车辆当前的状态信息,如图2所示。普通用户可以查看“普通参数”中的数据了解所驾车辆的当前状态。如,通过油耗曲线中实际油耗曲线与理想油耗曲线的差距,判断车辆当前的油耗经济性;通过故障码判断车辆当前存在的故障等。专业人员可以查看“专业参数”中的专业车辆状态参数,如引擎负荷、空气传感器流量、绝对节气门位置等,对车辆状态从专业角度进行更为全面的了解。

图2 移动端“参数”界面

用户可以从个人信息界面进入驾驶习惯评估界面,Android客户端会根据选择的时间向服务器发送请求,并根据响应生成评估报告,效果如图3所示。

图3 驾驶习惯评估实现效果

5 结论

利用Android智能手机与车辆OBD系统进行数据交互,并将数据通过无线网络上传至云端服务器中,以实现对车辆的远程监测及故障诊断,实现了车-手机-电脑的一体化,同时,结合万有特性对车辆的油耗进行分析。以服务器数据库中存储的大量车辆状态信息为基础,将数据进行处理后,可按照一定的标准对驾驶员的驾驶习惯进行评估。

猜你喜欢
油耗蓝牙驾驶员
不谈油耗 只讲运动 试驾第十一代思域e:HEV
车主之友(2022年5期)2022-11-23 07:22:20
蓝牙音箱的直线之美
工业设计(2022年7期)2022-08-12 13:18:58
基于高速公路的驾驶员换道意图识别
驾驶员安全带识别方法综述
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
降低内燃装卸机械油耗措施的探讨
双管齐下 YarisL致享综合油耗测试
车迷(2017年12期)2018-01-18 02:16:10
紧急:蓝牙指尖陀螺自燃!安全隐患频出
玩具世界(2017年8期)2017-02-06 03:01:38
起步前环顾四周是车辆驾驶员的义务
公民与法治(2016年4期)2016-05-17 04:09:26