物联网车载多层次监测报警系统设计

2018-11-06 05:21任志英刘福光王禅同张宇杰陈其胜
关键词:温湿度车载报警

任志英,刘福光,王禅同,张宇杰,陈其胜

(1. 福州大学机械工程及自动化学院,福建 福州 350116; 2. 福建源光电装有限公司,福建 福州 350002)

0 引言

随着汽车的日益普及,由车内环境影响引起的安全事故屡见不鲜. 人员滞留车内,当氧浓度、温湿度等环境指标长时间超过人体适宜的范围时,容易出现缺氧、脱水、受热受寒等生理问题,尤其是对于缺乏判别能力、行动不便的弱势群体,更需要进行监测和保护.

凯迪拉克公司的SRX系列前排车顶装有乘客侦测功能,当车主关闭车窗离开,而车内仍留有可移动物体时,车辆便会发出鸣响和亮灯警告,提醒车外人员[1]. 但其报警形式单一,发出警报后,车外人员获取求救信号后无法联系车主,施救亦十分困难. 文[2]提到主动救助的方法. 当车门上锁后自行启动,若检测出环境异常,控制器发出指令控制车内空调通风系统和车窗升降系统,使车内与外界进行空气交换,解决车内环境问题. 其主要问题在于,该装置的自主救援需与车的锁止系统、通风系统、车窗升降系统连接,驱动电路也要借助车本身,需要对车的电路进行改装连接,改装车的成本很高且存在影响其他电子设备的隐患. 在救助时打开车窗,会造成其他安全隐患, 如陌生人抱走车内儿童、财物,难以广泛应用. 因此设计一款简单便捷可监控车内环境的装置,并实现与手机相连有着深远的工程意义.

1 系统结构与监测层次

1.1 系统总体结构设计

图1 车载监测报警系统总体结构图 Fig.1 Structure diagram of vehicle monitoring alarm system

车内监测报警系统的总体结构如图1所示,由车载传感器基础模块、OneNet平台、服务器、终端APP四个部分组成. 其中车载传感器模块包括监测各环境指标的传感器、传统显示报警装置及GPRS通讯模块,实现监测、数据发送和报警功能. OneNet平台储存、处理接收的数据,提供应用平台API接口,实现与其他平台的连入. 在服务器平台上,可以通过接入OneNet平台,搭建自己所需的监测应用,提供个性化的监测报警服务. 终端APP从OneNet平台获取数据,并通过服务器平台嵌入个性化的应用,实现通过手机、平板等终端可以随时随地查询和监测[3-5].

1.2 监测层次设计

系统层次设计需要综合各项参考指标,在多种方案中选取最优方案. 本研究采用AHP层次分析法进行建模和评判. 设目标G为选取层次最优方案; 评价指标为Si, 其中应用可扩展能力为S1,价格为S2,数据存储管理能力为S3; 设备选方案为Pi, 其中传统只含车载报警装置的方案为P1, 含车载装置并利用第三方数据平台并自主开发应用的方案为P2,含车载装置且自主搭建平台及应用的方案为P3.

在本系统中,各评价指标重要程度不同,应用可扩展能力最重要,而数据存储能力较不重要,因此设置指标权重并构造判断矩阵A.

(1)

进行列向量归一化及行向量求均值后,得到权向量:w=(0.63 0.26 0.11)T,并得到向量乘积:Aw=(1.96 0.8 0.32)T.根据最大特征值计算式得到最大特征值:

(2)

各层次都需要一致性检验,本系统的参考指标为n=3个,而三阶随机一致性指标RI=0.52. 根据一致性指标(CI)计算公式,得到其值:

(3)

(4)

同样计算权向量、最大特征值,并检验该层次的一致性. 经验证,均满足一致性要求. 并得到三个方案的权矩阵:

(5)

图2 监测层次设计图Fig.2 Monitoring level design

总层次权矩阵W为:W=wthree·w=(0.22 0.42 0.36)T, 可得方案二的权重值最大,应选择含车载报警装置并利用第三方数据平台,自主开发应用. 通过系统总体结构的设计,监测层次分为三级. 如图2所示,第一级普通层是传统的声光报警,发生危险时提醒车周围的人员进行施救. 第二级平台层是通过API接口连接OneNet平台,形成专用的服务平台,提供个性化的监测报警服务. 同时可进一步扩展,当用户规模扩大后,通过第三方专门管理数据、监测报警,提供商业化定制服务. 第三级移动层,车主及有关人员可通过终端APP查询数据、接收警报信息,同时可使用服务平台提供的个性化服务. 从而实现多层次的监测报警.

2 系统软件设计

根据监测层次的设计[4, 6],本系统软件由车载装置(普通层)、平台层、移动层及其通讯部分组成. 其中硬件部分的组成包含如下: 1) 开发平台: Arduino Uno R3; 2) 传感器: DHT11温湿度传感器、Grove-Gas Sensor(O2)、HC-SR501热释电人体红外传感器、Base Shield V2 Grove传感器扩展板; 3) 通信及显示模块: SIM900A、LCD1602、PCF8574IIC/I2C转换模块、LED等.

2.1 车载装置程序设计

装置首先进行波特率、ArduinoI/O端口及执行器的初始化. 热释电传感器检测到车内有人后,会输入高电平“1”,退出检测循环,继续执行. 获取到氧浓度、温湿度数据后,经过模数转换,将数据显示在LCD显示器上. 同时,判断各检测指标是否超过设定的阈值,如超出则接通车载报警. 用GPRS通讯方式,进行车载装置与平台的连接. 在完成车载系统初始化后,需要对GPRS网络进行附着和参数设置.

2.2 平台连接及数据上传

完成数据采集、处理及GPRS附着后,通过平台支持的RestFul API方式进行车载装置与平台的连接,该框架仅支持Http的POST方法. 根据json格式[7],车内采集到的氧浓度、温湿度参数,应分为三条数据流与三个数据点,在子函数中,应将输入的参数包装成json格式,其形式如下:

sprintf(blank, "{"datastreams":[{"id":"%s", "datapoints":

[{"va lue":%s}]}]}", data_name, data_value);

其中: data_name为数据流名称(氧浓度、温湿度),data_value为实测数据. 并撰写POST报文,完成对发送主体的编写,形式如下:

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

strcat(buffer, *device_id*);

strcat(buffer, "/datapoints HTTP/1.1rn");

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

strcat(buffer, *API_KEY*);

strcat(buffer, "rn");

strcat(buffer, "Host:");

strcat(buffer, *Server*);

strcat(buffer, "rn");

sprintf(tmp, "Content-Length:%drnrn", strlen (text));

strcat(buffer, tmp);

strcat(buffer, blank);

Serial.write(buffer);

构建完成json格式的数据流和POST报文,利用终端设备与PC应用之间的连接与通信的指令,即AT指令中的CIPSTART、CIPSEND、CIPCLOSE与主体编写的指令共同发送子函数,实现与平台服务器的连接与数据发送. 经过调试,成功实现网络附着、与服务器平台的连接与数据发送.

2.3 应用层的设计与实现

2.3.1 应用层的数据获取

为实现应用层远距离监测、控制车载装置的目的,APP需要借助网络通讯,从平台获取车载设备发送至服务器的数据信息. 通过Http协议的GET方式,获取服务器中以Json格式上传、存储的数据. 根据标准接口.net,编写URL请求如下,实现网络连接.

URLurl = new URL(*website*+" /devices/" + *DeviceID* +"/datastreams/" + *command*);

HttpURLConnection link = (HttpURLConnection) url.openConnection();

link.setRequestMethod("GET");

link.setRequestProperty("api-key", *ApiKey*);

为获取氧浓度、温湿度数据信息,编写了Togetvalue子函数加以实现. 程序中output变量是从服务器中获取到的Json格式的返回信息,由于包含无用信息,无法直接利用进行数据处理. 定义Json对象为datablock,通过分析返回信息,发现所需要的数据流信息包含在第一层“data”中,而具体数值信息包含在“data”层的下一层,即第二层“current_value”中. 通过一层层的剥离分解,得到氧浓度、温湿度数值. 完成子函数编写后,APP在子线程中调用Togetvalue函数,获取新的环境参数数值,而在主线程中更新UI.

2.3.2 Webview实现应用嵌入

除了获取当前的氧浓度、温湿度信息外,APP应提供历史数据查询、更人性化观察等功能. 在平台层完成功能、应用的制作后,通过APP去获取、嵌入这些应用. 以间接访问方式实现应用的嵌入,方法是建立一个新的html文件,将平台应用代码嵌入到该html文件mypage中.

2.3.3 APP框架

APP界面的整体布局采用底部导航栏加主体显示界面的框架结构,底部导航栏由三个部分组成,分别为数据、详细和关于. 数据一栏的主界面中主要是由温度、湿度及氧气浓度三个数据构成,详细栏通过图表形式实时监测数据变化,关于一栏主要显示制作人员等其他信息.

图3 应用布局程序流程图Fig.3 Application layout flowchart

底部导航栏通过Fragment来实现,首先定义APP主体布局文件,外层分别设置一个FrameLayout和一个LinearLayout, 在线性布局下层分别用三个RelativeLayout放组件,再下一层,用一个小的LinearLayout,里面分别放置ImageView和TextView,并通过修改布局参数使之上下排列.

第二步需要写三个Fragment的布局文件,根据导航栏上三个不同的部分分别写具体需要的布局. 数据栏Fragment布局写一个LinearLayout,内部三个TextView分别用来显示温度、氧浓度和湿度三个数据,此外还需要一个用来承担刷新作用的Button来刷新数据. 详细栏的图表通过WebView功能来实现,同样需要先在详细栏的Fragment布局下写一个LinearLayout,内层写一个WebView和Button.

布局完成后就需要来写Fragment的实现类,分别创建三个格式为java的类文件,其主体文件为下图程序,由于数据栏与详细栏分别用到了数据获取和WebView功能,具体的实现方法流程图如图3所示. 图3程序为关于一栏的实现类,其实现方法就是让自定义的Fragment继承Fragment来重写onCreateView(),用View view = inflater. Inflate (R.layout.fg3, container, false); 来加载fg3(即关于一栏的布局文件).

最后需要编写MainActivity即主程序来实现整个程序的运行,主程序的逻辑需要实现: 点击底部导航栏,其中导航栏内图片以及文字的切换,显示对应的Fragment通过点击完成; 前面选中的状态重置、导航栏内图片以及文字切换.

3 试验阶段

在搭载完所有模块并分模块测试完成后,进行了系统整体测试. 在网络附着成功并检测到有人存在后,各个传感器采集所需环境信息,并将其显示到LCD显示屏上. 系统经过逻辑判断,对比各参数与阈值范围后,针对正常、氧浓度不足、温度过低过高等不同的环境情况,LED灯组显示不同的颜色,加装蜂鸣器能起到提醒周围人员的作用. 系统同时在每一次程序循环中发送环境信息至服务器平台.

服务器平台可以稳定地接收到车载装置发送的环境信息,如图4所示. 平台层可以进行大量数据处理、存储的工作,并与设计的应用层对接,提供数据与相关应用. 平台层作为中转站,可以扩展成为第三方监测中心,提供个性化服务. 移动终端APP可收到监测报警信息,随时更新数据,并使用应用查询历史数据与图标观察,如图5所示.

图4 平台层历史数据图Fig.4 Historical data figure of platform layer

图5 移动终端APP界面 Fig.5 Mobile terminal APP interface

4 结语

基于车载监测报警的客观需求,结合物联网技术,系统通过车载装置、服务器平台和移动终端APP实现了多层次的监测报警,避免了对载体车辆、周围环境的影响,增加了监测报警的针对性,克服了传统车载报警装置的局限性. 同时,服务器平台与APP可进一步扩展,形成专门管理、处理数据的第三方机构,为车主提供个性化的定制服务.

猜你喜欢
温湿度车载报警
一种车载可折叠宿营住房
基于AT89C51的数字型蚕用温湿度计的设计
高速磁浮车载运行控制系统综述
基于DSP的多路温湿度监测系统
基于温湿度控制的天气预测装置
LKD2-HS型列控中心驱采不一致报警处理
智能互联势不可挡 车载存储需求爆发
蒸发冷却温湿度独立控制空调系统的应用
2015款奔驰E180车安全气囊报警
基于ZVS-PWM的车载隔离DC-DC的研究