基于透传云的小型空气质量实时监测系统
2021-07-31赵晓庆闫卓宜刘世兵
赵晓庆,闫卓宜,刘世兵,刘 波
(山东工商学院 信息与电子工程学院,山东 烟台 264005)
0 引 言
近年来,校园、小区等小环境内的空气污染愈发严重,对人们的日常生活造成了极大危害,快速部署小型空气质量监测系统对有害气体进行监测尤为重要[1]。目前大部分空气质量监测系统采用的方法是部署包括自建服务器在内的一整套独立系统[2],但针对区域内的空气监测,采用该方法存在系统部署难、维护成本高等问题[3]。
随着工业物联网的快速发展,互联网和云平台技术成为解决小环境内空气质量监测的重要手段之一[4-6]。借助云平台管理监测节点和监测数据,快速部署小环境内空气质量监测系统,构建“端-网-云-用”智能结合的网络集聚生态。
本文基于透传云平台设计了一种小型空气质量实时监测系统,可实时监测小环境内的可吸入颗粒物(PM2.5)、总挥发性有机物(TVOC)、甲醛(CH2O)、等效二氧化碳(eCO2),设备便携且监测误差小。系统通过传感器采集局部区域内有害气体的浓度,利用低功耗无线传输技术将监测值发送至接入的云端服务器,采用浏览器及移动APP客户端对数据进行实时显示,不受地区限制。
1 透传云
1.1 云平台
云平台是以互联网为核心,面向物联网开发者、软件开发者和企业客户的物联网软硬件平台。云平台提供多种接入协议和方案,完成硬件设备与云端的数据交互;提供自动处理和存储数据等服务,实现零编程处理;提供客户端二次开发接口,可实现数据快速应用。
云平台种类繁多,目前国内市场上应用较多的有QQ物联、机智云、百度智能云、阿里云、中国移动OneNET和有人透传云等。QQ物联必须关联手机QQ客户端,进行用户与设备、设备与设备之间的互联互通,对脱离QQ软件的用户而言使用不便[7];机智云在进行移动客户端开发时,手机和硬件设备必须连接同一网络,对使用不同网络的用户而言使用不便[8];针对小环境空气质量监测,百度智能云、阿里云、中国移动OneNET的使用和维护费用较高;有人透传云独立于其他软件,避免了网络共用,能有效降低研发成本,在小型物联网监测领域具有更好的应用前景。
1.2 透传云基本原理
透传云是有人物联网技术有限公司打造的一站式云服务系统[9],其核心是面向用户和设备的云组态模块,可自动进行数据处理和存储,并提供多种设备接入协议和用户开发接口,实现设备与云平台和用户与云平台的交互。云组态模块的基本工作原理如图1所示。
图1 云组态模块的基本工作原理
1.2.1 设备通信协议
为适应不同的应用场景,透传云可采用GPRS/2G/3G/4G、NB-IoT等组网方式,及CoAP、LoRaWAN等接入协议和方案,将设备快速接入云平台。CoAP主要适用于NB-IoT方式组网,LoRaWAN主要适用于LoRa方式组网。
1.2.2 客户端通信协议
透传云平台提供API,以便用户与云平台交互。API基于超文本传输安全协议(HTTPS)和消息队列遥测传输协议(MQTT),提供包括登录、设备管理、数据点管理、实时数据访问、数据流订阅/推送等访问接口,实现云平台与用户之间的业务逻辑。
2 空气质量监测系统架构
基于透传云的空气质量监测系统由监测终端、透传云和客户端组成,系统架构如图2所示。系统依据云组态原理,将采集的数据通过通信模块组帧上传至云端;客户端从云服务器获取数据,实现云端与用户交互,并实时显示监测信息。
图2 空气质量监测系统架构
监测终端以GD32作为微处理器,通过单片机定时机制以较高频率收集数据,经过数据滤波处理,以较低的频率在LCD显示屏显示。终端采用PM2.5粉尘传感器收集固体颗粒的浓度值,采用VOC模组传感器收集TVOC、eCO2和CH2O等有毒气体的浓度,并通过UART串口将数据发送给NB-IoT模块。
NB-IoT属于低功耗广域网,和其他组网方式相比,具有成本低、覆盖能力广和连接能力强等优点。本系统选择有人公司出品的WH-NB75模块作为NB-IoT通信模块,该模块内嵌通信接口,可自动封装、上传数据至透传云服务器。
客户端使用透传云提供的API接口,实现Web和移动APP客户端对监测终端的信息管理和实时数据管理。云平台与客户端之间采用JSON格式进行数据请求交互。
3 设备连接透传云
依据设备通信协议提供的解决方案,可以方便地完成接入配置。通过配置设备信息,设置通信参数等,将监测因子、监测终端和网络加入云服务器,并通过有人透传云定制的Modbus协议设计数据帧,将数据封装后传送至透传云。
3.1 接入配置
接入配置包括对监测因子数据、监测终端信息以及网络传输模块参数的配置。配置监测因子数据完成监测气体的接入,在数据管理中添加数据模板,其中数据点信息即监测因子信息,需根据设计的数据帧进行配置,如图3所示。配置监测终端完成设备的接入,在设备管理模块中添加若干设备,其中必须包含1个设备号为1的从机,并关联上述数据点名称。配置WH-NB75模块,完成网络传输模块的接入,该模块内嵌3种工作模式,与CMD指令模式和简单透传模式相比,CoAP透传模式具有固定的收发机制,操作简单,可自动完成数据传送过程中的协议转换等。选择此模式,将CoAP服务器地址默认为117.60.157.137,目标端口默认为5683,下载模块的传输参数后,该传输模块将自动重启完成初始化。
图3 监测因子数据配置界面
3.2 数据帧
采集的数据依据透传云支持的Modbus协议设计数据帧,该协议为有人扩展指令(非Modbus RTU标准,仅适用于设备与透传云网络通信的规则)[10]。
Modbus协议请求数据帧格式见表1所列,Modbus协议响应数据帧格式见表2所列。
表1 Modbus协议请求数据帧格式
表2 Modbus协议响应数据帧格式
3.3 数据采集上传
微处理器通过UART串口将数据传送给WH-NB75模块,该模块读取采集的浓度值,并将数据封装成表1所列数据帧,以10 s间隔上传给服务器,流程如图4所示。
图4 数据采集上传流程
4 客户端的设计与实现
客户端通信协议提供登录、信息显示、订阅和推送等接口,所有的API均需通过身份认证才能继续实现接口功能。获取认证信息必须去有人透传云官网注册账户,该账户作为登录模块的请求参数进行身份认证,验证成功后得到用户通行证token。
4.1 登录模块
登录模块是系统入口,将用户名和密码作为请求参数发送至用户登录接口https://cloudapi.usr.cn/usrCloud/user/login,返回的数据包含状态码和token等,token有效期为2 h。本系统采用Cookie方法将token值保存在本地浏览器端,解决HTTPS协议出现的“短连接”问题,实现流程如图5所示。移动APP客户端的登录模块与Web客户端的实现原理基本相同,不同之处是对“短连接”问题的处理,移动APP客户端将token缓存在SQLite数据库中[11]。
图5 登录模块流程
4.2 监测终端显示模块
监测终端显示模块利用2个接口实现:设备接口获取设备信息,数据点接口获取监测因子信息。设备信息获取需将token作为请求参数发送至设备接口https://cloudapi.usr.cn/usrCloud/dev/getDevs,返回数据包含设备id、在线状态和设备类型等信息,需在token的有效期内将其解析并实时显示,实现流程如图6所示。数据点接口的调用与设备接口相同。移动APP客户端的监测终端显示模块与Web客户端模块的实现原理基本相同,不同之处是对返回信息的处理。在SQLite数据库中,建立2个表分别存储设备信息和数据点信息,存储时采用单例类方法解决访问服务器时因相同数据多次下载造成的时效低下等问题。
图6 设备信息实现流程
4.3 数据显示模块
数据显示模块实现监测因子浓度值的实时显示。有人透传云提供订阅机制,可自动推送信息,实现流程如图7所示。API提供客户端与服务器建立连接认证的USR_Connect接口、订阅某台设备解析数据后的USR_SubscribeDevParsed接口,以及一系列回调函数,包含连接回调USR_onConnAck、订阅响应回调USR_onSubscribeAck和接收数据点变化推送USR_onRcvParsedDataPointPush等。移动APP客户端与Web客户端的实现原理相同,可实现多参数的实时监测和显示。
图7 数据显示模块流程
5 系统测试
选择山东工商学院东校区进行系统功能测试,将监测终端分别部署在室内、交通主干道、食堂附近和新铺设塑胶跑道的操场进行有害气体的实时采集,每个节点的直线距离超500 m。图8所示为监测终端LCD显示界面,图9所示为移动APP客户端数据显示界面,图10所示为Web客户端数据显示界面。监测终端采集和显示功能均正常。
图8 监测终端LCD显示界面
图9 移动APP客户端数据显示界面
图10 Web客户端数据显示界面
终端设备接入正常,NB-IoT模块和有人透传云通信正常,客户端能够从云服务器端获取信息并正常显示。
每隔1 h对室内环境进行1次监测,通过对比标准仪器与本系统采集的4种污染因子的浓度值,对系统的监测精度进行检验,实验数据见表3所列。
由表3可知,通过对几组数据的监测,CH2O的浓度值相对误差最大不超过0.19%,TVOC的浓度值相对误差最大不超过0.30%,eCO2的浓度值相对误差最大不超过0.02%,PM2.5的浓度值相对误差最大不超过0.46%。系统最大相对误差不超过0.46%,满足系统1%监测精度的要求。
表3 实验数据对比
6 结 语
设计并实现了基于透传云的小型空气质量实时监测系统,可以对街道、校区等日常生活的小环境进行实时有效的在线监测。系统监测终端借助接入协议通过基础模式自动连接透传云,实现了底层设备与物联网云端的数据交互,Web客户端和移动APP客户端从云服务器获取数据并进行实时展示,实现了监测系统的快速搭建。该系统为解决区域内小型监测系统部署难、平台开发慢、维护成本高以及经济效益低等问题提供了一种选择,具有一定的借鉴意义。