室内有害气体云端监测系统设计
2019-01-02吕斌,孙玉国
摘 要: 设计了一种基于STM32F103C8T6单片机的室内有害气体云端监测系统。硬件部分包括环境参数感知单元、报警与控制单元、无线数据传输单元;软件部分包括云服务器设计,数据库交互,监测界面设计。硬件部分采用ESP8266的透传模式进行wifi传输,并使用Json打包技术保证数据的准确性和完整性。云服务器端使用jsonToBean对json包进行解析,并使用Springboot和mybatis框架对接收数据进行控制和处理,前端采用http协议和thymeleaf模板实时展示数据库存储的数据。
关键词: 有害气体检测;无线数据传输;云服务器;数据库
中图分类号: TP311 文献标识码: A DOI:10.3969/j.issn.1003-6970.2019.12.035
本文著录格式:吕斌,孙玉国. 室内有害气体云端监测系统设计[J]. 软件,2019,40(12):158162
Design of Cloud Monitoring System for Indoor Hazardous Gases
LV Bin, SUN Yu-guo*
(School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093)
【Abstract】: A cloud monitoring system for indoor hazardous gases based on STM32F103C8T6 microcontroller is designed. The hardware part includes the environmental parameter perception unit, the alarm and control unit, the wireless data transmission unit, and the software part includes the cloud server design, the database interaction, and the monitoring interface design. The hardware portion uses ESP8266's transmission mode for wifi transmission and uses Json packaging technology to ensure the accuracy and completeness of the data. The cloud server uses jsonToBean to parse the json package, controling and processing the receiving data using the Springboot and mybatis frameworks, with the front end using http protocols and thymeleaf templates to present the data stored in the database in real time.
【Key words】: Harmful gas detection; Wireless data transmission; Cloud servers; Database
0 引言
隨着人们生活水平日渐提高,室内装饰材料及家具的污染是目前造成室内空气污染的主要方面,主要包括甲醛、苯、甲苯、乙醇、氯仿等有机蒸 气[1-4]。同时,室内烹饪与吸烟的燃烧产物具有致癌性。因此,如何可靠、及时、安全地监测出有毒有害气体,并及时为监测人员提供决策依据显得尤为关键。
为了解决上述问题,提出了有害气体云端监测系统的设想,该系统是将传感器、无线通信技术、计算机软件编程等技术融为一体,以科学的方法监测有害气体浓度值变化。云平台可以保证24小时对应用服务的运维监控,公共外网可以实现随时随地
对服务器端进行http请求,并查询数据库。云平台具有多地域、全方位、立体式、智能化的IT运维监控的特点[5]。本文借助云平台搭建了一套全方位发挥作用的高效、准确、实时的有害气体云端监测 系统。
1 整体设计框图
有害气体浓度检测报警系统框图如图1有害气体监测系统所示:系统由一个负责与PC机通信的主机节点和多个采集数据节点模块组成检测网络,每个数据采集节点通过MQ系列的气体传感器采集甲醛气体、CO等气体浓度数据。整个监测系统主要由监测终端模块、WiFi模块、数据处理单元、主机
服务器和远程云服务器构成。
数据处理单元接收各采集节点传输来的数据,接收到数据之后,微处理器MCU对有效数据进行处理,并送至PC服务器和云服务器。在浏览器中输入网址即可。
将室内环境参数实时显示给用户。同时,当室内的有害气体浓度高于设定的安全值时,数据处理单元会对数据进行分析并触发报警系统,以便降低有害气体带来的危害。
图1 有害气体监测系统
Fig.1 Hazardous Gas Monitoring System
系统软件部分基于javaSocket编程,结合springBoot框架,在云端部署了一套java代码,可以随时随地通过url访问检测到的气体浓度,服务器监测端如图2所示。
图2 服务器监测端
Fig.2 Server Monitoring End
2 系统硬件设计
硬件设计部分由5部分组成,分别为环境参数感知单元、人机交互单元、无线数据传输单元、报警与控制单元和数据处理单元,如图3系统硬件设计示意图所示。
本系统检测的气体分别为一氧化碳、甲醛、甲烷、油烟和空气质量传感器。传感器选择MQ系列的半导体气体传感器,因为其反应速度快,结构简单、检测灵敏度高的特点[6],能够保证参数获取的精准性和稳定性。 室内有害气体经由传感器感知的电压值,传递给数据处理单元的MCU接收处理,进行相应的AD转换。然后,在MCU内部经修正、分析、判断后,按照空气质量的标准判定出空气质量的评价等级,若数据超过一定指标,则立即发出声光报警同时,MCU通过wifi模块,将数据传送给java服务器端主程序。
2.1 环境参数感知单元
环境感知单元由气体传感器组成,分析比较了以下四类传感器的优缺点后,选择了半导体气体传感器半导体气体传感器具有结构简单、检测灵敏、反应时间短以及成本低廉等优点[7]。
本系统选择了MQ系列的半导体传感器,分别为一氧化碳(MQ7)、甲醛(MQ135)、甲烷(MQ4)、油烟(MQ-5)。
2.2 报警与控制单元单元
报警与控制单元的气体浓度报警阈值参考国家室内统计监管标准GB50325设计完成[8],具体指标如表1室内空气质量标准一览表所示。
表1 室内空气质量标准一览表
Tab.1 List of indoor air quality standards
气体名称 标准值/(mg/m3) 气体名称 标准值/(mg/m3)
甲醛 0.08 氨 0.20
PM10 0.15 苯 0.11
二氧化硫 0.50 一氧化碳 10
二氧化氮 0.15 二氧化碳 1260
蜂鸣器驱动电路由蜂鸣器、电阻和三级晶体管构成。使用STM32的定时模式设置参数,产生翻转电平,使蜂鸣器的周期为400 us。其后,通过晶体管组成的放大电路让蜂鸣器工作。收集到的气体浓度信号由數字处理单元的A/D转换为数字信号,由处理单元分析处理,判断相应气体浓度是否符合正常范围。若超出表2所述范围,输出电压驱动蜂鸣器警报。
2.3 无线数据传输单元
无线通信技术选用wifi传输技术,成本低、覆盖范围广、速度快[9]。无线数据传输单元选择ESP8266模块。
在ESP8266模块的串口透传功能下有3种工作模式[10],如表2所示。
表2 ESP8266透传的3种工作模式
Tab.2 Three modes of operation for
ESP8266 transmission
模式 充当角色 作用
STA模式 路由器 通过互联网对设备远程控制
AP模式 热点 直接与模块通信
STA+AP模式 共存 共存
本系统使用STA+AP模式,进行数据透传。数据处理单元将处理好的数据进行json格式打包,发送给java服务器。
3 系统软件设计
服务器端采用socket网络编程,接收Esp8266发送的json包,实现对远程数据进行解析、处理和实时查询、历史数据查询等功能。
相较于传统的C/S模式,本文采用了B/S模式。云服务端采用springboot微服务框架和mybatis实现了一个统一的http数据请求接口服务。在此基础上,采用了thymeleaf前端开发框架对数据请求页面进行布局和渲染。软件设计系统整体框图如图3所示。
图3 系统软件设计框图
Fig.3 System Software Design Frame
3.1 云服务器端设计
本文STM32单片机与服务器之间的交互通讯采用java socket网络编程来实现。如果把单片机作为客户端,网络上的两端通过一个单向的连接,即客户端向服务器实现数据的传递,这条链路的java服务器端称为Socket[11]。在Java环境下,套接字Socket主要是指基于TCP/IP协议的网络编程,一个Socket由一个IP地址和一个端口号唯一确定。依据TCP协议,在浏览器-服务器模式架构的通讯过程中,服务器的Socket动作如下:
(1)服务器端,自行设置一个端口来实例化一个 ServerSocket对象,这个端口号一般选择8080以上的闲置端口号。端口设置完毕后,服务器就开始时刻监听这个端口从wifi模块发送来的连接请求。
(2)调用ServerSocket的accept方法,开始监听从端口上发来的连接请求[12]。
(3)利用accept方法返回的客户端的Socket对象,进行读写IO的操作。
通讯完成后,关闭打开的流和Socket对象。Socket通信模型如图4所示。
图4 socket通信模型图
Fig.4 Socket communication model diagram
服务器程序使用阿里巴巴开发的开源fastjson jar包对json格式的数据进行实体类转换,如图5所示并存入数据库。
图5 json数据存储展示图
参考文献
[1]Cincinelli A, Martellini T. Indoor Air Quality and Health[J].
Atmospheric Environment, 2017, 14(11): 4535-4564.
[2]Afshari A, Anderson H R, Cohen A, et al. WHO guidelines for indoor air quality: dampness and mould[M]. World Health
Organization, 2009.
[3]藺雪芹, 王岱. 中国城市空气质量时空演化特征及社会经济驱动[J]. 地理学报, 2016, 71(08): 1357-1371.
[4]吴娜. 甲醛气敏元件研制及灵敏度特性研究[D].大连理工大学, 2006.
[5]何东, 宁文慧. 基于云服务器和Zig Bee无线传感网络的茶园远程监控系统的设计[J]. 安徽农业科学, 2018, 46(10): 189-190.
[6]马戎, 周王民, 陈明. 气体传感器的研究及发展方向[J]. 航空计测技术, 2004, 04: 1-4.
[7]闫军. 工作区有害气体检测的五种常用传感器[J]. 仪器仪表与分析监测. 2001, (2): 6-7.
[8]徐骜博. 室内空气质量检测系统的研究[D]. 黑龙江大学, 2016.
[9]夏少波, 许娥. 无线传感器网络WSN探究[J]. 通信技术, 2010, 08: 0018-0020.
[10]程传明, 王平, 施文灶, 等. 有害气体监测中无线传感网络节点的设计与实现[J]. 电子测量技术, 2009, 01: 154-157.
[11]CameronWalker, Mlehae1OSullivan, TimothyThomPson, A mixed-integer approach to Core-Edge design of Storagearea networks[J]. Computers & Operations Research 34(2007): 2976-3000.
[12]方腾飞, 魏鹏, 程晓明. Java 并发编程的艺术[M] . 北京: 机械工业出版社, 2015.
[13]陈瑞. 基于springBoot高并发Java Web开发模式[J]. 软件开发与应用, 2019, 4(009): 27-30.
[14]杨慧. 基于Spring MVC与iBATIS框架的企业工单管理系统的设计与实现[D]. 北京: 中国科学院大学(工程管理与信息技术学院), 2015.