远程空气品质监测系统的设计与实现*
2021-07-28李影王波
李影 王波
(仰恩大学工程技术学院,福建泉州 362014)
0 引言
近年来,我国在空气质量治理方面下了很大的力气,也取得了非常可喜的成绩,据生态环境部的统计数据,2020年1月至12月全国337个地级及以上城市平均优良天数比例为87.0%。大环境空气质量变好的同时,人们也开始关注小环境的空气质量,比如新买的汽车、新装修的房子等[1]。目前,室内空气质量检测主要依赖专业机构,市场上出售的室内空气质量检测设备功能简单,不能满足用户的需求。本文设计了一款适用于室内环境的空气质量检测系统,该系统可以检测CO2、甲醛、TVOC、PM2.5等数据,并可以通过智能手机远程查看检测数据。
1 研究概述
本文设计了一款空气质量检测系统,该系统适用于室内、车内等小空间的空气质量检测检测数据包括CO2、甲醛、TVOC、PM2.5、PM10、温度和湿度。系统分为硬件设计、服务器设计、oneNET物联网平台、微信小程序设计四个主要部分。
系统的硬件部分使用了STM32F103C8T6单片机,数据检测使用的是七合一空气质量检测传感器,配有4.3寸可触式屏幕,检测数据可以直接显示在硬件显示屏上。服务器用于存储检测数据,oneNET物联网平台用于与微信小程序之间进行通信。在硬件的设计中还加入了时钟和本地天气功能。本系统的硬件部分仅有4cm×3cm×3cm,可以摆放在桌面等地方,如果不需要检测环境数据时,还可以做天气、时钟和温湿度计使用。
2 技术路线
2.1 单片机技术
本文选用了STM32F103C8T6单片机小系统板。单片机是指一个集成在一块芯片上的完整计算机系统[2]。因为其体积小、处理能力比较强的特点,被广泛的用在各类电子产品上,现代生活中所用的每件电子和机械产品中几乎都会集成有单片机的存在。
2.2 云平台
本文使用oneNET云平台。物联网云平台是近年来发展起来的物联网云端解决方案。云平台提供了大量的API接口,可以将检测装置检测到的数据上传到平台上。相比于传统的服务器技术,云平台对开发者更加友好。
2.3 微信小程序
本文开发了“检测控制系统”微信小程序[3]。根据《2019-2020微信就业影响力报告》公布的数据,截至2020年第一季度,在即时通信软件排名方面,微信及WeChat排名全球第三、中国第一,微信及WeChat的合并月活跃帐户数达12.025亿。基于以上情况的分析,使用微信小程序作为移动监控端,要要优于APP。微信小程序有着与APP相似的功能性,在APP上能够实现的功能,在微信小程序上也可以完成,并且小程序具有不占用手机内存的最大优势。
3 空气检测系统的实现
空气质量检测系统的核心检测部件是TW70ST七合一传感器,控制器采用STM32F103C8T6,Wi-Fi模块将设备连接本地的Wi-Fi信号,并将检测数据传输到服务器中。用户在微信小程序中搜索并关注“检测控制系统”,就可以通过关键字远程查看监测数据。系统架构图如图1。
图1 空气质量监控系统架构图Fig.1 Air quality monitoring system architecture diagram
3.1 主要硬件设备介绍
3.1.1 STM32F103C8T6微控制器
STM32是一款基于ARM Cortex-M内核系列的32位的微控制器,因为其低价位、高性能、低功耗又易于开发等特性,被广泛应用于智能化设备。
3.1.2 TW70ST七合一传感器
本系统选用TW70ST七合一传感器,这是一款数字串口输出传感器模块,可采用RS485数据总线和UART TTL两种输出模式,适用于空气质量监测,灵敏度和精确度都较高。
3.1.3 DMG48270C043_03W 4.3寸可触屏幕
本系统选用4.3寸或触屏幕,在界面的设计上分两屏显示。在主界面设计时钟、本地天气预报设置按钮等功能,在监控界面设计6分隔,用以显示CO2、甲醛、TVOC、PM2.5、温度、湿度。两个界面通过滑动触屏可以方便切换。
3.1.4 ESP8266串口Wi-Fi模块
ESP8266串口Wi-Fi模块用于连网,读取用户。用户将设备连入本地Wi-Fi信号,系统可以将检测到的环境数据通过Wi-Fi模块上传到oneNet服务器上,在Wi-Fi配置上,本系统设计了网页连接和微信连接两种方式方便用户使用。
3.2 数据通信技术要点
3.2.1 硬件端屏幕设计
硬件端的数据采集不依赖于网络,无论设备是否登录成功,都会定时获取传感器和时钟的数据、触摸屏的数据交互(发给触摸屏显示的数据内容和解析触摸屏下发的指令内容)。在硬件端安装了水银开关,用于检测屏幕方向,如果检测到水银开关变化长达一秒,就进行对应的屏幕翻转(发指令给触摸屏)。
3.2.2 连网设计
空气质量监控系统的硬件部分配有Wi-Fi模块,当设备通电后,先进行基本的外设、数据和模块初始化。初始化结束以后,如果之前有连接过Wi-Fi(配过网),那么会自动再次连接该Wi-Fi(这部分ESP8266内部自动完成的),检测到ESP8266连接Wi-Fi成功时,设备开始控制ESP8266设置为透传模式,连接心知天气服务器接口,进入透传,进行GMT时间获取写入时钟芯片,以及携带密钥进行获取指定地址的天气状况。获取结束以后,退出透传退出连接,重新连接oneNET的EDP协议端口,进入透传,携带在OneNET服务器注册的设备ID和API-KEY发起登陆请求,登陆成功以后需要定时发起心跳请求,用于告知OneNET服务器设备依然在线保持连接,如果超时也自动被OneNET强制下线,被强制下线的设备需要重新发起登录。
登陆成功以后,定时发起心跳请求,以及上传数据,每6秒退出一次透传,以便检查连接的Wi-Fi状态,即连接的Wi-Fi名称信号强度,检查完立刻重新连接端口恢复透传。如果收到来自OneNET下发的指令(自定义的指令),则解析指令内容,如果是定义好的,那么就去执行对应的指令内容,比如更换天气城市。
3.2.3 微信通信设计
微信小程序和硬件之间无法直接通信,所以需要有个物联网的服务器,本项目选用了OneNET物联网平台。小程序和硬件的通信,是经过OneNET服务器,在OneNET服务器上创建产品申请以后,会有设备ID和API-KEY,小程序只需要根据OneNET的EDP端口开放的API接口,携带这两样进行HTTP或者HTTPS通信就可以查看设备上传的数据、设备是否在线、下发给该设备指令。
公众号由于不支持开发,也无法直接和OneNET通信,所以通信则是公众号把用户消息转发到自建的服务器,服务器处理完以后根据处理结果和该用户绑定的设备情况,转发给OneNET服务器,OneNET服务器检查如果设备在线,那么就转发给设备,根据处理结果应答到服务器,我的服务器根据OneNET应答结果处理后转发给公众号(微信公众号的服务器),最后显示在用户的手机微信上。
4 空气检测系统测试
4.1 硬件端的监控效果
将硬件端设备通电后,先进行网络配置。网络配置有微信配置和网页面配置两种方法,按照提示信息进行配置既可。硬件设备连接Wi-Fi的成功后,就可以在微信小程序端查看检测数据。如果没有连接Wi-Fi,则只能在硬件端查看空气质量监控数据,如图2、图3所示。
图2 监控界面Fig.2 Monitoring interface
图3 主界面Fig.3 Main interface
4.2 公众号查询效果
用户需要关注“检测控制系统”公众号,在消息栏中输入“获取设备帮助”,可以看到帮助信息;根据帮助信息,可以使用语音或文字指令查询监测数据,如图4所示。
图4 手机端获取监测数据Fig.4 Obtaining monitoring data from the mobile phone
5 结论
本文设计了一款空气质量检测系统,该系统基于STM32单片机,具有实时检测空气质量、显示时间、日期、天气预报、用户使用智能手机远程读取监测数据的功能,适用于室内的空气质量检测。本产品的主要特点是可以通过手机小程序读取检测数据,这是市场上现有的空气质量检测设备所没有的功能。本系统同样适合用在室外的环境中,将通信模块换成GSM功能的扩展模块,就可以解决需要Wi-Fi信号的缺点,可以不受环境限制,用于更多的场景[4]。在后续的研究中,拟增加GSM无线应用及检测报警功能,以增加产品的功能性及适用性。