面向室内环境的便携式甲醛和总挥发性有机物监测系统
2022-04-14杜英魁杨国栋张首星原忠虎
杜英魁,杨国栋,李 娟,张首星,孙 博,原忠虎
(1.沈阳大学信息工程学院,沈阳 110014;2.沈阳大学体育学院,沈阳 110014)
0 引言
已有研究表明,居室装修导致的室内空气污染会对人体健康造成严重的危害。当甲醛浓度高于0.08 mg/m,会直接对眼睛、肝脏和肺部产生严重影响,甚至会导致血癌。总挥发性 有 机 物(total volatile organic compounds,TVOC)如苯类挥发性有机物,主要来源于各种建筑材料、家具、涂料、壁纸和黏合剂等。世界卫生组织国际癌症研究机构公布的致癌物清单中,甲醛和苯为一类致癌物。
室内的甲醛和TVOCs的监测,主要有离线监测和在线监测两种方式。离线监测方式依据《室内空气质量标准》(GB/T 18883-2002)国家标准,甲醛采用苯酚试剂分光光度法测定。TVOCs采用气相色谱仪分析,成本高、监测周期间隔大。在线监测方式是利用电化学和半导体传感器,进行甲醛和TVOCs浓度实时连续监测,具有长时监测和成本极低的突出优势。
本文设计了一种结构紧凑的甲醛和总挥发性有机物浓度无线监测终端,以ESP-12F模组为核心器件,将数据采集、显示和无线传输等功能进行了一体化集成设计,有效降低了终端体积和功耗。一键式网络连接设计,则极大地简化了用户网络设置过程。
1 监测终端的硬件设计
1.1 ESP-12F模组
ESP-12F模组的几何尺寸仅为24 mm×16 mm×3 mm,如图1所示。内置WIFI前端和高性能的32位MCU。
图1 ESP-12F模组
该模组支持UART、I2C、PWM、GPIO等多种模式。支持80MHz和160MHz主频,支持IEEE 802.11 b/g/n协议,具有完整TCP/IP协议栈,集成板载天线。支持RTOS。
该模块能耗极低。深度睡眠保持电流仅为10 uA,关断电流小于5 uA,待机状态消耗功率小于1 mW,唤醒时间小于2 ms。本文能耗控制采用睡眠模式。
1.2 甲醛和总挥发性有机物浓度传感器
传感器采用DS-HCHO-20电化学和半导体双模集成数字式传感器,几何尺寸为29 mm×14 mm×9 mm,如图2所示。内置电化学和半导体双模块,内置数据处理单元采用双模块修正经验算法,兼容TVOC标定曲线,不同温度和湿度环境数据自动修正,UART通信模式。
图2 DS-HCHO-20传感器
1.3 集成设计
设计了下载电路和复位电路,以ESP-12F为核心模组,进行了无线监测终端的硬件系统集成,如图3所示。利用ESP-12F模组GPIO端口的状态,配置CPU的运行模式,实现了程序下载和运行之间的模式切换。复位电路用于保证系统处于确定状态,并从初态开始工作。
图3 终端系统组成
数据显示方面,则采用0.91寸低功耗OLED液晶屏。ESP-12F模组通过GPIO模拟IIC时序驱动屏幕显示。依据《民用建筑工程室内环境污染控制规范》(GB50325-2001)国家标准,利用采集到的甲醛和总有机挥发物浓度数据,自动进行空气质量的优、良、差三级评价和显示,用户可据此判断甲醛和总有机挥发物的浓度是否处于安全水平。
2 通信协议
2.1 心跳机制
设计了心跳机制。周期性地查询当前端云网络通信状态,以解决长时间断网条件下的长链接更新以及云端无效链接请求的资源消耗问题,不仅能够保证云平台监控系统有效地得到各节点的网络连接状态,也大幅降低了云端网络通信资源消耗。
这个用于周期性查询网络状态的数据帧由起始符、询问标识符和设备识别码组成。除了设备识别码唯一之外,其他位的数据是统一的。
2.2 应答机制
应答包设备识别码与上传数据通信协议设备识别码相同,主控芯片通过解析云平台下发的应答包判断数据是否上传成功。同心跳包类似,应答包也包含起始字符、标识符和设备识别码,同时应答包还包括接收时间和BCC校验码。
2.3 设备登录通信协议
云平台依据该协议判断设备是否登录成功否则,中断后续操作。登录帧里除起始字符、命令标识字符、设备识别码之外还增加有数据单元长度、数据单元内容两个数据段。
2.4 设备校时通信协议
用于保证数据上传时带有的时间戳的正确性。硬件终端开机后对RTC功能进行初始化设置,使能PWR时钟和后备寄存器,配置RTC的时钟源并使能RTC时钟。设置分频系数和时钟格式、初始化时间和日期。
2.5 数据上传通信协议
数据上传通信协议,如表1所示。由基础的起始字符、命令单元、设备设别码、数据包里特有的数据加密方式、数据单元长度、可扩展数据单元、校验码组成。
表1 数据上传的数据包结构和定义
3 终端片上软件设计
片上软件设计,包括数据采集模块、手机配网模块、网络数据传输模块和网络连接状态监测模块组成。片上软件的执行流程如图4所示。
图4 片上软件流程
ESP-12F模组内嵌的ESP8266芯片SDK采用基于“内核回调”编程方式。对于轮询任务和监测状态,无法采用常规单片机的“主循环”编程方式实现,需要依靠用户任务或定时器回调函数来完成。本文采用定时器回调函数方式。
3.1 数据采集模块
初始化硬件定时器。内核将调用硬件回调函数,在回调函数中通过串口问询传感器,并通过串口接收中断处理传感器采集的数据。
对数据进行解析后,首先将数据通过OLED屏幕进行实时显示,再根据数据通信协议进行打包,通过数据传输模块,上传至云端。
3.2 配网模块
设置网络连接状态监测软件定时器,读取flash中已保存的路由信息然后自动连接。在软件定时器回调函数中设计网络连接状态监测函数,若网络连接成功,则关闭软件定时器并设置TCP连接,开启网络数据传输软件定时器。若网络连接失败,则开启手机配网。
采用“Smartconfig”方式,通过APP或微信公众号进行配网。开启sniffer模式,扫描所有开启的路由器。通过手机UDP组播发送加密SSID和PASSWORD信息。ESP8266抓取并解密SSID和PASSWORD信息,从而连接路由。
3.3 网络数据传输模块
系统连接路由成功后,将配置网络信息,通过服务器IP地址或域名信息连接服务器。同时,开启网络数据传输软件定时器,在软件定时回调函数中调用打包的传感器采集数据通过网络发送给服务器。
利用TCP连接的接收回调函数,接收服务器的报文信息,判断服务器连接状态和接收信息,若发送失败则重新发送,直至连续第3次发送失败即放弃本次发送。若因服务器断开TCP连接,则设备将通过TCP连接的成功断开回调函数。
3.4 网络连接状态监测模块
监测终端对云平台的网络链接状态主动监测。设备上电或复位之后,设备首次连接已保存路由信息时的状态监测。
若无路由信息或路由信息改变时,将由网络连接状态监测任务启动设备配网模式,通过闪屏的方式告诉用户需要通过手机APP进行配置有效的网络。
首次监测网络连接状态后,将关闭网络连接状态监测软件定时器,由更为可靠的硬件定时器监测网络连接状态,若发现网络连接失败,立即开启配网模式。软件定时器基于内核任务和内核资源实现。通过软件定时器和硬件定时器的嵌套使用轮询监测,能够有效保了网络连接的可靠和CPU资源的合理分配。
云平台对监测终端的网络链接状态主动监测。云平台根据心跳机制,周期性主动向监测终端发送心跳包,解析并判断网络连接状态。在本文中,设置最大间隔为30 s,最大间隔实践内,若未收到终端发送的心跳包,云端认为网络中断,自动删除该终端节点的网络长链接数据,终端状态设置为设备下线。
4 软件设计
4.1 APP软件设计
基于Vue轻量级渐进式框架和Apache Cordova插件混合开发。具有对终端甲醛检测仪的数据可视化分析、设备配置管理以及用户管理等功能。采用Vue-Router、Vue-x、local Storage、Session Storage等插件,实现页面路由跳转配置,完成对用户信息、设备信息以及组件的状态管理和存储。利用proxy Table代理解决前端开发的跨域问题。
使用AJAX请求后端服务提供的API接口,从而得到JSON格式的监测数据。基于ECharts图表库,进行数据可视化分析的图形化表达。通过AppVersion、FileTransfer、FileOpener2等插件,完成APP软件的版本号读取、文件下载、打开文件等软件安装步骤以及在线升级功能。
4.2 云平台设计
基于SpringBoot微服务框架,主要实现对终端甲醛检测仪的登录处理以及对采集数据的处理。基于TCP协议,云端与终端依据自定义数据通信协议来实现数据传输以及业务下发。云端微服务平台主要包括两个部分:
(1)网关微服务。基于Netty高性能技术框架开发,实现对无线监测终端节点的高并发接入,数据存储于Redis高速缓存数据库。
(2)应用后台微服务。采用Spring、Spring MVC以及My batis plus等后端Web技术搭建,主要实现对数据以及终端设备的CRUD业务逻辑编写,为客户端应用程序提供基于HTTP/IP协议的RESTful API接口。其中,后端监控微服务执行流程,如图5所示。
图5 后端监控微服务执行流程
5 实验测试
5.1 无线监测终端离线数据采集测试
采集终端运行测试内容是模组定时问询传感器,并解析传感器的数据,并在OLED屏幕上实时显示。硬件电路实物,如图6所示。
图6 终端硬件电路实物
终端功能测试结果,如图7所示。
图7 监测终端功能测试结果
5.2 网络通信测试
网络通信测试主要包括:设备连接路由是否稳定可靠、配网功能是否有效、网络连接成功之后网络数据传输是否可靠且稳定。通信实验的测试过程包括以下几个部分。
(1)上电重启设备,测试是否能够主动重连有效路由。
(2)若路由信息修改或无有效路由,测试设备是否进入配网模式且配网是否成功。
(3)当连接路由成功之后,测试向云端的数据上传是否成功。
如图8所示,串口调试助手显示的TCP接收回调函数中接收的服务器应答信息,表明了无线监测终端数据上传成功。
图8 网络数据传输测试结果
数据上传成功后,APP页面监测数据实时显示和图形可视化分析页面,如图9所示。
图9 APP软件的数据显示页面
6 结语
本文研发了一种面向室内环境安全的便携式甲醛和总挥发性有机物监测系统,以ESP-12F模组为核心器件,通过数据采集、显示和传输功能的一体化集成设计,有效降低了终端功耗。跟据自定义数据通信协议所开发的一键配网和远程监控等软件功能,则有有效简化了用户操作过程。