基于物联网的多层次车载监测救援系统的设计

2020-02-01 15:23穆向阳周思迪张嘉伟刘浩王博通李磊
现代计算机 2020年34期
关键词:温湿度车载报警

穆向阳,周思迪,张嘉伟,刘浩,王博通,李磊

(1.西安石油大学大学电子工程学院学院,西安710065;2.西安石油大学大学,陕西省油气井测控技术重点实验室,西安710065)

0 引言

汽车作为日常生活出行的重要交通工具,与车内人员的安全紧密联系在一起,当有人员发生交通事故(尤其是在郊外)无法自救以及被困或长时间滞留车内,在无代理人施救以及车内环境(尤其是温湿度)超过人体承受范围的情况下,容易因未能及时施救而造成危及生命安全的严重后果。尤其是对行动不便、缺乏基本判别能力的弱势群体,对于他们,更需要采取周到的监测与救援保护措施。

由刘元提出的通过无线蜂窝网络GSM与GPS对车辆进行定位与报警[1],解决了对车辆进行定位的问题,但其报警的通道仅仅是发送短信,并未真正意义上达到“物”连“网”,且形式很单一。凯迪拉克推出的SRX系列,其前排车顶后视镜后方带有乘客侦测功能,当该功能启动时,如果车主关闭门窗离开,而此时车内仍留有可移动的物体(例如小孩),车辆便会发出鸣笛和亮灯警告,提醒车主注意[2]。但这种报警方式比较传统,在车内小孩睡着情况下,并不会触发报警,即使最后小孩醒了也被侦测到了,而此时车主已不在车附近,根本听不到报警,车外人员即使听到报警也无法联系车主,所以施救就相当困难。

针对于此,本设计是一款集报警救援于一体的车载装置,并与物联网、手机移动端实现互联,以Wi-Fi控制模块作为装置的数据传输模块与单片机相连,使用开源硬件Arduino单片机作为控制器,并使用中国移动公司旗下的OneNet作为物联网平台来实现数据与手机移动端二者共享,以GPRS模块作为手机通信模块。

1 系统总体结构设计

本文设计了一种基于物联网的车辆监控系统。设计分为以下几个部分:

(1)车载终端(下位机)。车载终端设备包括:微处理器(MCU)、热释电红外和温湿度传感器、GPS、GPRS模块等。主要有定位、通信等功能。

(2)无线数据上传。无线数据通信作为控制中心与各监测模块进行信息交换的枢纽,在本次设计中选用GPRS无线数据网通信系统。

(3)监控中心(上位机)。监控中心采用一台普通的计算机或者手机。本次设计采用OneNet平台作为监控中心平台,计算机或手机App(设备云),采用这些模块的好处是可以利用其上网功能,在平台界面上可以进行简单的信息查询并带有地图的操作界面,可显示车辆实时位置,包括经纬度等。最终实现上下位机之间的通讯。监控系统示意图如图1所示。

图1 监控系统示意图

2 硬件介绍及设计

本研究硬件部分主要包括:本地监测单元、SIM900A通信模块、Arduino UNO主控器、报警单元。预设传感器报警条件(超过设定阈值)和碰撞条件(模拟开关打开),且和GPS通过数字串口连接来实现主控器与其之间的数据传输;SIM900A和手机端分别通过HTTP(POST)协议和HTTP(GET)协议与OneNet云实现数据透传和获取;一旦系统确认发生碰撞或有人滞留车内,就会触发GPRS模块向家人手机发送求救电话/信息以及本地声光报警,从而告知家人和周边人员前去救援,最终实现多层次的报警救援。硬件系统结构如图2所示。

图2 系统硬件结构

2.1 监测层次设计

本研究监测单元由DHT11温湿度及HC-SR501红外热释电传感器组成。DHT11温湿度传感器具有体积小、功耗低,信号传输距离远(可达20米以上)等优点[3],它是一款含有已校准数字信号输出的单线制串行接口复合传感器。将DHT11温湿度传感器与一个高性能8位单片机相连接,在湿度校验室中进行精确校准,可以有效地监测车内高温或低温环境因素,具有品质卓越、超快响应、抗干扰能力强等优点。

2号引脚用于微处理器与DHT11之间的通讯和同步,通信一次时间4ms左右,由MCU发送一次开始信号后,DHT11接收到开始信号并发送响应信号,送出数据并触发一次信号采集,如果没有接收到主机的开始信号,DHT11不进行湿温度采集。

图4为热释电传感器的内部结构,由滤光片、热释电探测元和前置放大器组成,HC-SR501的原理图如图3所示,由LHI778采集红外信号,OP1将信号放大,再由C3耦合至运放OP2进行第二级放大,将输出信号V2由COP1和COP2构成的双向鉴幅器处理,检出有效触发信号Vs去启动延迟时间定时器,最终得到输出信号Vo。

输出延迟时间Tx为:

Tx≈24×103VR9C6

触发封锁时间Ti为:

Ti≈40×R10C7

由于默认灵敏度达7m,与实际设计不符,故调节VR6改变第二级运放的放大倍数来调整传感器的灵敏度。调节VR9改变延迟输出时间,通过多次测试,当A=2.5时,检测灵敏度最低,约为3m,且延迟时间为5s时可将传感器调整达到最佳符合状态。

图3 HC-SR501原理图

2.2 GPRS通信模块

GPRS通信模块在车载监测救援系统中的主要作用是与监控中心进行通讯。本研究采用U-BLOX NEO-6M模组,通过MCU把车辆相关数据发送给GPRS通信模块,通过无线通信方式将定位信息发往监控中心,监控中心可以准确地对目标车辆进行跟踪和监控。

GPS定位基本原理如图5,根据高空卫星的瞬间位置作为起算数据,通过在地面安置GPS接收器,计算从某一t时刻开始,GPS信号从卫星到达接收器的时间Δt(i=1,2,3,4)确定以下四个方程式:

图4 GPS定位基本原理图

其中,x、y、z和Vt0为未知参数,di=cΔti(i=1,2,3,4),di(i=1,2,3,4)表示卫星到地面接收器的距离;c为GPS信号的传播速度(即光速);Vti(i=1,2,3,4)分别为卫星1~卫星4的卫星钟的钟差,(卫星星历提供);Vt0为接收机的钟差。由以上四个方程即可解算出待测点的坐标x、y、z和接收机的钟差Vt0。

2.3 报警单元

SIM900A与U-BLOX系列GPS配套工作,实现室内百度APIIP定位与室外GPS定位双定位模式与短信电话报警功能,保证系统高可靠性。SIM900A与UBLOX GPS统一使用TTL电平的串行协议与MCU之间进行数据通信传输。Arduino UNO实时接收通信模块传回的定位信息,并打包存储,在安全气囊或者监测到车内有人滞留的情况下,通过AT指令集控制SIM900A模块,以短信模式加载GPS信息并拨打报警短信电话到家人手机上,同时LED灯与有源蜂鸣器实现系统及时提醒使用者的预防性与引起周围群众注意的警示性,保证报警的可靠性、信息的准确性。

3 软件设计与测试

3.1 系统程序简介

系统主程序设计流程图如图5所示。程序运行开始,进行波特率、Arduino I/O端口及GPRS的初始化。考虑到定位信息的重要性,故首先对读取GPS帧数据进行循环判断,当成功定位后(非INVALID),对经纬度数据进行解析;再执行获取温湿度和热释电数据等其他数字口数据信息;之后GPRS模块连接OneNet平台,完成数据上传;当热释电传感器检测到车内有人,立即退出检测循环并执行声光报警和短信电话提示;同样,当车辆的安全气囊模拟开关打开后同样会触发电话短息报警。最终完成系统的自动监测报警求助。由于本次设计的关键在于GPS与GPRS能否及时响应触发事件,功能分析如图5所示。

图5 系统主程序设计流程图

3.2 GPS数据的获取和解析

通过NMEA-0183协议获取需要的帧数据GPRMC,并从中将经纬度信息解析出来。其主要程序流程如图6所示,在对GPS初始化后首先对其进行数据有效性的判断,当确定数据为有效后需要对获取的信息进行GPMRC帧数据判断和解析,由于GPMRC句型基本格式为:$GPRMC(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)*hh(CR)(LF),其中需要获取的经纬度信息为(3)~(6),通过采用函数strstr(),memcpy()来从该语句中提取两个逗号地址间的数据信息,并将相应数据存放于Save_Data结构体下[4]。

将获取的经纬度及传感器数据通过通信模块上传至OneNet物联网平台,等待报警处理。

图6 GPS帧数据解析流程图

3.3 GPRS与OneNet平台连接及短信电话发送

完成数据采集、处理后,通过平台支持的HTTP协议进行车载装置与平台的连接将数据以POST(透传)的方式发送到OneNet云服务端,根据JSON格式,在建立通信后,上下位机通过数据流(stream)的方式进行通信[5],将车内采集到的GPS参数及温湿度参数分为三条数据流(streams)与三个数据点(datapoints),并在子函数中将输入的参数封装成JSON格式。

其中,sensor_id_temp为数据流名称(温湿度、经纬度),value_str为实测数据。并准备HTTP报头,完成主体发送,部分程序如下:

strcat(send_buf,"POST/devices/");

strcat(send_buf,device_id_temp);

strcat(send_buf,"/datapoints HTTP/1.1 ");

strcat(send_buf,"api-key:");

strcat(send_buf,API_VALUE_temp);

strcat(send_buf," ");

strcat(send_buf,"Host:");

strcat(send_buf,OneNetServer);

strcat(send_buf," ");

sprintf(tmp,"Content-Length:%d ",strlen(text));//计算JSON串长度

然后在上述基础上构建完成JSON格式的数据流和HTTP报头,利用终端设备与PC应用之间的连接与通信的AT指令:CIPSTART、CIPSEND、CIPCLOSE、CIPSHUT,实现与平台服务器的连接与数据发送。本次设计中所用到的关于SIM900A模块的AT命令如下面的代码所示。每条AT命令执行后都要有相应的状态返回。

经调试,成功实现网络附着、与服务器平台的连接及数据发送,同样利用AT指令集实现报警短信发送及电话拨打,考虑到短信内容为中英文且字符数多,因此采用短信的PDU模式,实现的关键步骤如下:

Serial.println("AT+CMGF=0");//PDU模式

Serial.println("AT+CMGS=34");//PDU模式下短信内容字符数

Serial.print("0891***FF01");//第一条短信内容为车内有人,请求救援!

Serial.write(0x1A);//将短信发送出去

Serial.println("ATD137***9535;");//电话拨打

3.4 测试结果

完成了系统软硬件的搭建后,对系统进行调试,设置好家人手机号码并在SIM900A卡槽插入SIM卡,让测试者使用车载装置进行了功能测试。当将测试者被锁在车内,经热释电传感器检测后,首先会触发蜂鸣器和LED灯发出10次的声光报警,随后设定的家人手机会收到发出的带有OneNet的URL链接报警短信和求救电话;当打开安全气囊的模拟开关后,同样会收到求救电话和短信;如图7-9所示,在收到报警短信后,打开地址链接进入OneNet的页面可以直接在百度地图上查看测试者的位置、时间及车内环境数据[6],此时,家人可根据这些信息及时选择合适的营救措施,及时地避免了不必要的人员和财产损失。

图7 发生滞留与碰撞短信

图8 报警电话

图9 OneNet云端 手机页面

4 结语

基于车载监测报警救援的客观需求以及结合物联网技术,系统通过车载装置、OneNet云平台和移动端相结合实现了多层次的监测报警救援,针对车主的安全保护采取多重监测措施,同时避免了对车体的影响,提高了监测报警的针对性,克服了传统车载报警装置单一的局限性。实验证明,系统可实现车辆精确定位、对人员滞留及车辆碰撞情况自动报警、救援通信等功能,该设计成本不高,性能较好,符合现实需求,可为汽车用户提供安全出行保障,具有较高的市场价值。

猜你喜欢
温湿度车载报警
一种智能化电热处理炉用温湿度传感器的变送器
某车载提神香氛功效验证及应用
一种车载可折叠宿营住房
文物展柜内环境温湿度的调控与监测
云南所有高铁动车唯一车载杂志
蛋鸡育雏育成舍环境控制技术
小心,墙纸在报警
鞋子摆放透露的信息
SA2型76毫米车载高炮多视图
死于密室的租住者