STM32实验室环境安全监控系统探讨

时间:2022-09-21 15:00:11

  STM32实验室环境安全监控系统探讨

摘要:为保证实验室人员的人身和财产安全,设计了实验室环境安全监控系统,系统由服务端、设备端、客户端构成。服务端可划分为前置服务器和后置服务器;设备端选取STM32F103ZET6作为核心处理器,通过ESP8266无线传输模块实现温湿度传感器、烟雾传感器、一氧化碳传感器数据上传;客户端采用Qt实现系统用户管理功能、实验室环境数据实时监测功能、传感器历史数据查看功能。通过测试,在网络节点范围内可以对数据进行高效采集并传输至云服务器,每30s对客户端的传感器数据进行更新。用户可以通过客户端远距离查看实验室监测数据,能够更加快捷地发现实验室出现的各种安全问题。

关键词:实验室;安全监控系统;服务器;传感器;客户端;STM32

近年来,随着信息管理水平的迅速提高,传统的实验室管理模式已不能满足实际需要[1]。传统的高校实验室环境监测数据无法得到统一的信息化监管,实验室的物理环境仍需要依靠人工管理,消耗了很多人力和物力[2]。随着物联网技术的发展,云服务器、网络技术使得环境数据收集有了更好的设计方案。本文将基于云服务器、网络通信技术、STM32嵌入式技术等对实验室环境安全监控系统进行设计。本系统共分成三个模块:云服务端模块、客户端模块、设备端模块。云服务端可划分为前置服务器和后置服务器[3]。前置服务器用于对设备端、客户端的数据进行提取分析,后置服务器用于提取和更新SQLite3数据库[4]的内容。设备端使用STM32F103ZET6[5]作为核心处理器,采用DHT11温湿度传感器[6]采集温湿度、MQ-2烟雾传感器[7]采集烟雾数值、MQ-7一氧化碳传感器[8]采集有毒气体数值,通过ESP8266无线传输模块[9]将三个环境传感器检测到的实验室环境数据上传。客户端运用Qt5.10.1作为开发环境实现系统用户管理功能、环境数据实时监测功能、传感器历史数据查看功能。本系统每30s对客户端的传感器数据进行实时更新,且用户可以远距离查看实验室监测数据。

1实验室监控系统总体设计

本系统由服务端、设备端、客户端构成,系统总设计框图如图1所示。本系统服务端是建立在云平台的,可划分为前置服务器和后置服务器。前置服务器[10]采用EpollSocket技术、线程池技术、IPC通信技术、TCP通信技术等,用于对设备端、客户端的数据进行提取分析。后置服务器主要负责业务处理,用于提取和更新SQLite3数据库内容并实时保存。两个子服务器之间以共享内存作为进程间通信工具。本系统客户端使用Qt5.10.1界面开发软件作为开发环境,用于与服务器进行通信,获取云端服务器数据库内容;采用MVC[12]框架实现登录注册、获取传感器实时数据和历史数据等功能。本系统设备端是以HMI串口触摸屏[13]作为主控制器,用户可以查看HMI串口触摸屏所显示的实时传感器数据。设备端以单片机STM32F103ZET6芯片作为中央处理器,主控制器与中央处理器之间的通信靠USART串口完成。环境数据由DHT11温湿度传感器、MQ-2烟雾传感器、MQ-7一氧化碳传感器监测。无线通信系统由ESP8266WiFi模块构成。

2系统服务端设计

本系统前置服务器负责设备端和Qt客户端之间的TCPSocket[14]通信。通过EpollSocket的I/O复用实现对客户端、设备端的连接通信对应的Socket套接字进行保存。前置服务器封装的线程池模块负责对接收到的数据包进行解析,并存入共享内存,同时监听并接收后置服务器对业务处理完毕后所写入共享内存的数据。本系统服务器选用的IPC通信工具是共享内存。本系统云服务器将共享内存区按照结构体大小的1000倍进行创建,划分成1000个块结构体,其中共享内存首地址Shm_addr指针作为共享内存判断的起始点。本服务器会开辟一个线程用于判断共享内存起始点内是否为空,倘若为空则不读取数据;如果判断索引内容为有效数值,则提取出来跳入下一个结构体块循环执行,直到下一个块为空。共享内存可以存储1000个结构体,在全部接收完毕之后会将其清空,保证下一次前置服务器和后置服务器之间的交互能够正常运行。共享内存存储方式如图2所示。图2共享内存存储方式本系统的后置服务器负责对SQLite3数据库信息进行提取和更新。封装线程池对各个业务对应的共享内存提取数据并进行增删改查的操作。后置服务器结构如图3所示,后置服务器也会使用共享内存与前置服务器进行IPC通信。在后置服务器结束当前对数据库数据的提取和更新后,会向前置服务器提供其所需要的内容。前置服务器共有以下三个功能模块:(1)读取业务包:读取共享内存中的业务包。(2)业务回调函数:根据业务包的类型,进行相应的业务处理。(3)数据库函数:根据业务的需要对数据库进行读写访问。本系统使用的是SQLite数据库,通过后置服务器管理User_Info和Sensor_Info两个表格。用户在执行登录注册模块时后置服务器将会对User_Info表进行是否存在用户的判断或者添加。用户在获取实时传感器数据和读取历史传感器数据时后置服务器将会对Sensor_Info表进行读取和存储操作。本系统数据库中关于用户数据和传感器数据表结构如图4所示。

3系统设备端设计

本系统采用单片机STM32F103ZET6芯片作为设备端的中央核心处理器,该芯片的两个USART接口分别与HMI电容串口触摸屏、ATK-ESP8266无线通信模块连接,以完成数据的接收和发送。通过DTH11温湿度模块的Data引脚与PB6引脚相连,完成单片机与温湿度模块的检测数据交互。图3后置服务器结构图4数据库表结构本系统终端节点硬件设计采用了DHT11模块采集温湿度数值、MQ-2模块采集烟雾数值、MQ-7模块采集一氧化碳数值以及HMI显示屏显示传感器采集的环境数据。DHT11传感器包括电阻式湿敏元件和测温元件,将STM32F103ZET6的PG_11引脚与DHT11芯片的DATA引脚相连接。DHT11接3.3V的电压,GND接地,NC悬空。上电后,DHT11采集数据并将数据通过DATA口进行数据传输,PG_11口负责接收数据,由此完成对环境温湿度数据的采集。DHT11模块原理如图5所示。图5DHT11模块原理本系统采用的MQ-2烟雾传感器的AO引脚与STM32F103ZET6的PA_1口相连,通过STM32的ADC模数转换测得实际值。MQ-2传感器模块的输出方式分别为数字量和模拟量输出方式。原理如图6所示。图6MQ-2模块原理本系统采用的MQ-7一氧化碳传感器的AO引脚与STM32F103ZET6的PA_0口相连,原理如图7所示。图7MQ-7模块原理无线模块ESP8266共有AP、STA、AP+ASP三种模式。本系统采用STA模式,将设备端作为单个客户端,使用AT指令连接手机热点和云服务器,实现了设备端与云服务器之间的通信。本设计使用的显示器采用的是TJC3224K024_011型HMI电容串口触摸屏,HMI电容串口触摸屏的RXD引脚、TXD引脚与单片机STM32F103ZET6芯片的USART2串口相连,实现了单片机与HMI显示屏的数据通信。

4系统客户端设计

本系统客户端是查看传感器采集信息的应用程序,采用MVC框架,使用Qt、C++语言编写。

4.1Qt登录注册功能模块

本系统客户端登录注册功能是对数据库的User_info表进行操作,User_info表结构见表1所列。当点击登录的时候,客户端会发送此时所输入的登录账号和密码给服务器,服务器通过与服务器内部的User_info表进行比对,若查询到相同的结构,说明此用户是存在的,则同意该客户端进行登录。

4.2Qt传感器数据查询显示模块

本系统客户端传感器数据查询共分为两个功能模块:(1)用Qlabel类显示接收到的传感器监测的实时数据;(2)通过QListWidget和QListWidgetItem的配合实现传感器监测的历史数据的查看功能。用户可以选择日期并查看当天所记录的数据。本功能是对数据库的SenSor_Num表进行操作,SenSor_Num表格式见表2所列。当登录成功后,客户端会收到来自服务器的当前传感器数据显示包;并且每30s就会再次收到传感器数据包更新后客户端界面显示的数据内容,同时会把这些数据存入数据库,以实现客户端历史数据查看功能。

5系统设计调试

5.1硬件测试

将DHT11模块、MQ-7模块、MQ-2模块分别与STM32F103ZET6的PG_11、PA_1、PA_0连接,使用FlyMCU完成程序调试和下载后,给模组上电。通过HMI模块显示屏可看到各项测试结果分别如图8、图9、图10所示。图8温湿度数据显示图9烟雾指数显示图10一氧化碳指数显示

5.2软件测试

当用户选择查看日期时,前置服务器会收到数据包并进行解析。如图11(a)所示,前置服务器显示用户想要查看的日期为2021年4月13号当天所采集的传感器数据信息;将此信息写入共享内存,供后置服务器读取该结构体信息;在后置服务器完成一系列操作后,将会收到关于后置服务器提取数据库信息的结果。用户选择查看日期后后置服务器提取共享内存数据并进行解析。如图11(b)所示,后置服务器会根据收到的日期对数据库进行一一搜索,将搜索到的信息存入链表并逐一发给前置服务器;再由前置服务器从共享内存提取结构体数据包,并将历史记录数据包发往客户端。图11服务器历史数据查看功能显示

6结语

本文设计了基于STM32的实验室环境安全监控系统,实现了通过传感器采集数据并通过ESP8266模块发送至云服务器,用户通过登录客户端可以查看现场数据。本设计主要实现如下功能:(1)ESP8266与EpollSocket服务器交互通信;(2)WindowsQt客户端与EpollSocket服务器交互通信;(3)云前置服务器与后置服务器IPC通信;(4)后置服务器对数据库的提取和更新;(5)DHT11温湿度传感器、MQ-7一氧化碳传感器、MQ-2烟雾传感器的数值采集;(6)Qt客户端用户登录注册功能、Qt客户端传感器数据和历史数据查看功能。经过测试,结果表明本文设计的基于STM32的实验室环境安全监控系统基本实现了以上功能;在网络节点范围内可以对数据进行高效采集并传输至云服务器,每30s对客户端的传感器数据进行更新。用户能够及时地发现实验室可能出现的各种安全问题。

作者:薛文辉 李仁铭 潘宇浚 郑何 武永华 单位:福建江夏学院 电子信息科学学院