基于STM32的环境监测控制系统设计*

2023-01-03 13:38李明泽崔海青谢俊伟齐鹤黄彦章
数字技术与应用 2022年12期
关键词:温湿度单片机服务器

李明泽 崔海青 谢俊伟 齐鹤 黄彦章

1.中国民航大学空中交通管理学院;2.中国民航大学电子信息与自动化学院

为了更好地应对现代工业化工作环境的多样性和复杂性,实时有效地监测场景的环境参数,及时获取其最新数据,本系统设计了一种基于STM32的环境监测控制系统。该系统以STM32F103ZET6单片机为主控芯片,以无线通信模块作为传输介质,集成多种传感器设备(包括温度传感器、红外线传感器模块、气体源传感器等),并制作出可移动的环境监测控制系统,将采集到的环境信息实时上传至服务器端平台供使用者查询使用。经过测验,本系统可以全天候实时上传数据信息,由中心平台集中管理,辅助监控者获取目标场景信息进行判断。

现代工业化生产生活中,诸如居室、实验室、工厂车间、电力机房等场景的环境安全问题逐渐成为人们关注的焦点。无论是大型企业、小型公司和商场,还是居民区室,人民对高质量的生活提出了要求,而且保障人员和财产安全亦是重中之重,要时刻放在心上,满足用户需求[1]。针对当前市场销售情况,市面大多采取分离式的传感器监测单元获取室内烟雾、火灾,温度等环境参数,在出现险情时发出声光等警报信号,提醒室内人员撤离[2]。至今存在着监测设备大多国外化,先进性和自主性未能得到保障,企业和政府在该领域投入力度不够,产品质量参差不齐,使用标准不规范等[3]。

然而室内并不会一直都有人值守,互联网时代的到来和网络技术的完善,为改进环境监测和预警播报提供了新的技术支撑。本系统采用了集成式的硬件终端监测装置采集数据,利用STM32中央微处理器可以提高监测的精度[4],同时使用无线通信技术传输数据至云平台,传输、记录和展示信息,高效准确地完成警报信息的发布。

1 系统整体框架

本研究实现了一种环境监测控制系统。系统总体框架如图1所示。该系统运用物联网技术将监测端与接收端联系起来,在监测端用STM32单片机作为控制核心,控制多个传感器的数据收发和初级处理,利用无线通信技术WiFi,实时快捷地将收集到的环境参数发送到服务器接收端,通过后台管理平台呈现到管理人员面前,实现对监控区域环境信息的实时监控。

图1 系统总体框架Fig.1 Overall framework of the system

2 系统硬件部分设计

2.1 微控制器

为了适应室内多样的监测环境,使本控制系统能够满足搭载多个传感器、降低使用功耗、合理地利用流量资源、开发和可操作性简单等需求,本系统的监测终端采用控制板STM32F103ZET6为核心,是基于Arm Cortex-M3内核的32位单片微型计算机,具备睡眠、停机和待机模式,可以在要求快速启动、多频次多类型唤醒和功耗低三种需求中达到合理的平衡。具有高性能、低成本、低功耗等特点[5],适用于实际应用过程中室内环境参数信息多频次唤醒数据上传,同时可以向外扩展硬件功能,开发系统配套的硬件和软件。

该微处理器具有3个12位模数转换器、转换电压范围在0V~3.6V之间,拥有双通道12位D/A转换器、13个通信接口、12通道DMA控制器和112个I/O端口,可用于连接外设定时器、USART、SPI、ADC和DAC等接口,方便使用。控制核心板的主控芯片和外围电路如图2所示。

图2 主控芯片和外围电路Fig.2 Master chip and peripheral circuitry

2.2 温湿度传感器

鉴于火灾的多发性,本设计采用的是对环境温湿度较为灵敏的DHT11温湿度传感器来反映室内温湿度的变化过程,此传感器的电路图如图3所示。DHT11是温湿度集于一体的数字型传感器,内含电阻式测湿元件和NTC测温元件。采用单总线协议与STM32单片机进行通信,每次单片机读取DHT11传感器的数据时,一次性读取40次,利用DATA进行STM32和DHT11的数据传输,在第一次发送信号时,将模式从低耗向高速转变。此传感器所能测量的温湿度范围比较广泛,温度和湿度的测量范围、分辨率和进度如表1所示,且内部达40Bit的湿度和温度数据可一次性传给单片机,数据采用校验方式,有效保证数据传输的准确性[6]。DHT11相较于其他的同类传感器,功耗很低且价格廉价,其工作电压为3.3V~5V,工作平均最大电流为0.5mA。

图3 温湿度传感器电路图Fig.3 Temperature and humidity sensor circuit diagram

DHT11的技术参数如表1所示。

表1 温湿度传感器参数Tab.1 Anomaly detection results of different models

2.3 烟雾传感器

采用MQ-2型烟雾传感器来检测环境数据,该传感器的电路图如图4所示。此传感器的特点是高灵敏性,短暂时间内快速响应恢复,并且它的灵敏度会随着气体浓度的不断增加而越发灵敏,元件的电阻值会不断地变小,并且此传感器受温湿度变化影响较小,而且稳定性较为优良,使用寿命长。此外,它具有广泛的探测范围,可以探测液化气、丙烷、甲烷、丁烷和氢气等多种气体,稳定性良好,寿命长且驱动电路简单,适于家庭和工厂的气体泄漏监测和安全保障预警[7]。传感器将采集到的模拟信号输入到单片机中进行处理,由单片机的模数转换程序将其转换为数字信号值输出,进而获得环境气体浓度ppm值。

图4 烟雾传感器电路图Fig.4 Smoke sensor circuit diagram

模拟输出电压值公式为:

MQ-2烟雾传感器探测浓度范围如表2所示。

表2 烟雾传感器探测气体浓度范围Tab.2 Smoke sensors detect the range of gas concentrations

2.4 一氧化碳传感器

本设计采用MQ-7传感器来测量一氧化碳,该传感器实物图如图5所示。此一氧化碳传感器随着气体浓度的增加其元件电阻不断减小,传感器的电导率也随着增大,传感器越发灵敏。该传感器在环境条件无一氧化碳气体影响或未达到所设阈值时,该传感器输出高电平;当环境一氧化碳浓度超过设定阈值时,该传感器输出低电平。也正是如此,STM32单片机可以监测一氧化碳的高低电平来监测环境一氧化碳含量。该传感器具有较长的使用寿命和可靠的稳定性,通过采集空气中的模拟气体信号输入单片机内进行模数转换,进而输出数字信号。主要应用于家庭气体泄漏报警装置、工业用一氧化碳元器件以及便携式的气体检测器的生产制作过程中。

2.5 二氧化碳传感器

本设计采用的是SGP30数字型传感器,该传感器的电路图如图6所示,它所测量的气体包括两种,二氧化碳与可挥发气体TVOC。SGP30搭载多个金属氧化物传感元件,输出的信号具有完全校准功能,相对于其他单一的二氧化碳传感器有着抵抗外界污染气体的能力,有着优良的使用寿命和稳定性,使得其较多的应用在工厂、智能家居和居室等场景中。TVOC—总挥发性有机物,是一项衡量空气质量好坏的重要指标,SGP30传感器同样也能监测TVOC。该传感器在正常温度和湿度分别为5℃~55℃和4~20g/m3时表现最佳。它可以监测空气中CO2和TVOC气体的含量多少并上传至处理系统对此做出分析,达到预警的目的。

图6 二氧化碳传感器电路图Fig.6 Carbon dioxide sensor circuit diagram

二氧化碳浓度对人体影响如表3所示:

表3 二氧化碳浓度影响Tab.3 Effects of carbon dioxide concentration

2.6 语音模块

语音报警模块采用JQ8900-16P芯片,选用SOC方案进行集成,涵盖了一个16位的MCU,以及一个专门面向音频解码的ADSP,采用硬解码的方式,保证了系统的稳定性和音质。该芯片把SPI-FLASH直接模拟成U盘,可预先把语音文件拷贝到模块内,省去了传统语音芯片需要安装上位机以更换语音的麻烦。具有7个触发I/O口,最多支持19段语音触发播放,满足对不同危险进行报警的需求。对于用户来说,该系统支持指定时间段复读,可实现30级音量调节,有利于将报警信息更好地传递给用户。该模块实物图如图7所示。

图7 语音模块实物图Fig.7 Physical diagram of the voice module

2.7 巡航小车

本实验采用具有优良转向性能,可以全向移动的麦克纳姆小车[8],它可以沿着预定轨迹路线或者接受上层服务器指令控制运行,具有极大的灵活自由度,方便在指定目标位置或全面搜查场景时采集环境参数信息。小车将实时运动方位和环境空气数据获取,由空间方位和气体浓度成对组成的轨迹序列,通过循环神经网络、ADC转换器和环境监测传感器聚类完成异常检测,同时将对异常指标气体进行规划寻源轨迹。

3 系统软件部分设计

3.1 主程序流程

本系统通过Keil软件对硬件终端进行指令输入和编程,实现控制核心板对传感器的控制使用和初始条件配置,进而实现本系统的环境监测功能,之后通过WiFi无线传输模块建立与云平台之间的联系,实现管理人员实时监控目标环境信息的作业。主程序流程图如图8所示。

图8 主程序流程图Fig.8 Main program flowchart

3.2 WiFi通信

本设计采用的是ESP8266物联网通信模块,为成本较低的无线设备,它适用于TCP/IP协议和MQTT协议[9]。该模块的工作电压为3V~3.6V,电流为500mA以上,工作温度范围:-40℃~125℃,可以保证在极端环境下安全可靠地进行工作。此外,装置占用更少的空间可以更好的契合PCB板。Esp8266作为WiFi模块,由于此模块拥有连接网络进行无线透传的能力,通过输入AT控制指令就可以来完成相应的动作。ESP8266 强大的片上处理和存储能力,使得可通过GPIO口集成传感器及其他应用的特定设备,具备最低的前期开发和运行中最少地占用系统资源的特点。

ESP8266除了传统的串口烧录方式,还支持云端升级的方式来更新固件。只需将新版固件上传至服务器,在ESP8266联网的情况下,服务器会推送更新消息到用户,用户可自行选择是否升级。对于项目有极大的便捷。ESP8266通信模块芯片和外围电路图如图9所示。

图9 ESP8266通信模块芯片和外围电路图Fig.9 ESP8266 communication module chip and peripheral circuit diagram

传感器采集到环境数据后,通过串口发送至ESP8266模块,将数据以AT指令的形式发送至服务器数据库中。当环境数据异常时,管理者可以远程控制设备解决隐患或预处理,如“AT+MIPLWRITE”为下行写操作请求消息,服务器下发写数据操作,即从平台下发数据到终端,模组收到服务器数据后,将通过串口上报该消息。

在进行信息配置时“ref”代表硬件设备实例ID;“msgid”代表消息ID;“Objid”代表Object ID;“insid”代表Instance ID,如果为1,需要读取该Object下的所有资源;“Resid”代表Resource ID,如果为1,需要读取该Instance下的所有资源;“type”代表待写入的数据类型;“len”代表本次报文写入的数据值长度;“value”代表写入的数据值,当value为1时。即打开Objecct ID对应的电气设备,比如小灯,空调,空净化器,加湿器等设备;当value为0时。即关闭。

单片机接收(平台发送)数据格式如下:

当完成设备的远程控制操作,需要给服务器端反馈,不然会造成操作无效或延时,如“AT+MIPLWRITERSP”为下行写操作请求回复,该命令用于MCU完成相应Write操作后,向平台回复 Write 操作结果。

在进行信息配置时,“ref”代表硬件设备实例ID;“msgid”代表收到的“AT+MIPLWRITE”消息携带的msgid;“result”2代表操作正确完成、11代表Bad Request、12代表Unauthorized、13代表Not Found、14代表Method Not Allowed。服务器接收后返回ok,即发送成功,则本次远程操控完成。

其命令格式如下:

3.3 小车轨迹程序设计

小车根据随动气体浓度的变化情况,预训练时空偏移向量,通过rnn(循环神经网络)预测下一个时空点检测气体的浓度概率分布,计算和实际气体浓度概率分布的kl离散度,kl越小异常成分越高。则说明小车轨迹偏离气体源的轨迹方位误差越小,

执行代码如下:

python data_preprocessing.py

python data_loader.py

python pre_embedding.py

python main.py

python predict.py

经过对环境数据变化率的分析,得到气体源的模拟方位,输出时空坐标轨迹的格式为:hour_location hour_location

[1]6_10101 7_10094 8_10096 9_10102 10_10097

[2]6_10094 8_10103 10_10101 11_10103 11_10095 14_10097

[3]12_10094 12_10094 12_10097 13_10096 13_10094 14_10097 16_10096 18_10102

轨迹、气体变化综合检测部分数据如下:

cardno,loss

be4fqkgr66n89gdna5cg,0.000996691407635808

be4d5d0r66n89gdldnj0,0.0009965329663828015

be4ct7or66n89gdl8760,0.000997029128484428

be4d12or66n89gdlat3g,0.0010041424538940191

be4d4ogr66n89gdldac0,0.0009971902472898364

be4fdogr66n89gdn0rh0,0.0009968323865905404

be4crt8r66n89gdl79cg,0.0009975525317713618

3.4 服务器平台

服务器端用于实现监测环境信息的体现和数据历史回溯的功能,采用MQTT协议将数据上传至云平台,通过验证核实进入获取信息,利用曲线图的方式展现当前环境变化情况[10]。此外,服务器管理人员也可以利用操作指令向硬件终端发布命令。

4 实际测试

将硬件终端接上外部电源,通电后待其与服务器建立连接后,观测此时的正常情况下的环境数据,如下为服务器端数据截取部分:

2022-05-12 04:07:17pm -- push dataArray|[

{"at":1652342831246,"imei":"860618043200078","type":1,"ds_id":"3304_0_5700","value":36,"dev_id":760513321},

{"at":1652342831246,"imei":"860618043200078","type":1,"ds_id":"3303_0_5700","value":25,"dev_id":760513321},

{"at":1652342831273,"imei":"860618043200078","type":1,"ds_id":"3325_0_5700","value":470,"dev_id":760513321},

{"at":1652342831887,"imei":"860618043200078","type":1,"ds_id":"3316_1_5700","value":1.12,"dev_id":760513321},

{"at":1652342831901,"imei":"860618043200078","type":1,"ds_id":"3316_2_5700","value":2.15,"dev_id":760513321}]。

Value为各传感器数值,ds_id则为传感器类型。从中可观察到在2022年5月12日下午的04时07分17秒,湿度(3304)为36%,温度(3303)为25℃,二氧化碳浓度(3325)为470ppm,一氧化碳电压输出(3316_1)为1.12V,烟雾电压输出(3316_2)为2.15V。

5 结语

基于STM32单片机和服务器等物联网技术,开发设计了环境监测控制系统,系统设计结构完备可用,稳定可靠,可以全天候监测室内环境信息,方便快捷地传输数据信息,有利于提前获知室内信息,减少室内危险灾害对人员财产的损失。此外,通过多种传感器集成开发设计,使之成为一个独立的可以同时监测多种环境参数的设备,提高了判断的准确性。

引用

[1]毛剑武.居住建筑物联网室内健康环境实时监测系统构建和运用[J].四川水泥,2021(3):69-70.

[2]陈志飞.可燃有毒气体报警仪系统设置现状及应用探讨[J].安全、健康和环境,2020,20(3):12-15.

[3]王强.新时期我国室内环境检测的发展现状与思考[J].绿色环保建材,2020(3):62-63.

[4]高纪男,高治军,韩忠华.室内有害物质监测与控制系统的设计[J].电子设计工程,2022,30(11):89-93+98.

[5]刘德铁.基于STM32F103ZET6智能梯控系统的设计与实现[D].广州:华南理工大学,2019.

[6]王志宏,白翠珍.基于DHT11的实验室多点温湿度报警系统设计[J].山西电子技术,2011(4):45-46.

[7]蔡俊豪,曹广忠,彭业萍,等.基于CC2530与CC3200的室内环境监测系统设计[J].现代电子技术,2019,42(10):71-74+78.

[8]张晓,张楠楠.基于麦克纳姆轮和Arduino的避障小车设计[J].现代电子技术,2022,45(4):30-34.

[9]丘源,经本钦,李精华.基于ESP8266WiFi模块和MQTT协议的物联网传感节点设计[J].物联网技术,2019,9(6):24-26+29.

[10]崔文岩,康明,梁书溢,等.基于LoRa的室外环境监测系统设计[J].物联网技术,2022,12(6):16-19.

猜你喜欢
温湿度单片机服务器
温湿度控制器在回收砂冷却系统中的应用
基于单片机的SPWM控制逆变器的设计与实现
通信控制服务器(CCS)维护终端的设计与实现
基于DSP的多路温湿度监测系统
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
基于温湿度控制的天气预测装置
中国服务器市场份额出炉
蒸发冷却温湿度独立控制空调系统的应用
得形忘意的服务器标准