基于物联网实验室环境远程监测系统的研究

2021-12-01 07:41麻小娟陈世亮党建林
计算机测量与控制 2021年11期
关键词:温湿度烟雾湿度

麻小娟,陈世亮,党建林

(西安明德理工学院 信息工程学院,西安 710124)

0 引言

随着信息技术的高速发展,人类社会全面进入到了信息化时代,人们对信息传递和控制的效率、准确性有了更高的要求,随着时代变迁和生活节奏的不断加快,信息处理的效率显得尤为重要,伴随着智能终端及通信技术的飞速发展,给信息控制的智能化及高效性创造了技术基础。很多特殊的实验室场合对环境的温度和湿度有着非常严格的要求,比如中心机房、温室种植、实验室、有粉尘存在的生产车间、电子行业生产线及仓库等,这些场合对环境的温湿度有着极高的要求。温湿度过大或过小都不能满足要求,影响设备仪器的性能和使用,甚至引发安全隐患,因此对环境温湿度的精准和实时控制就显的非常重要,传统的温湿度监控多以人工巡检为主要方式,一方面要对温湿度进行必要的调整修正,另一方面要对环境实际的温湿度进行监控和确认,这种方式大大增加了人力和时间成本。为了解决效率和准确性的问题,结合物联网技术能够对大数据的精准汇总与实时检测[1-2]的功能和移动手机端系统功能强大,携带方便,应用灵活[3-7],开发实验室温湿度进行实时监控[8-9]的解决方案。

1 系统设计及原理

实验室温湿度远程监控系统主要包含三部分,即用户端、服务器和环境变量控制模块,如图1。环境变量控制模块通过传感器对环境温湿度进行实时采集和控制[10-14],服务器为用户和传感器提供数据交互服务,用户端对环境温度和湿度进行实时监控和查看。

图1 系统架构

2 系统硬件设计

2.1 环境变量控制模块

环境变量控制模块主要包含四部分:传感器、MCU、红外控制电路及无线模块,为了确保对环境数据采集的准确性和可靠性,温湿度及烟雾传感器负责采集环境数据;MCU负责将传感器采集到的数据进行解析并显示在液晶屏上供用户现场查看;环境温湿度及烟雾数据通过无线模块接入互联网存储在云服务器上供用户访问,通过PID算法对环境变量进行统计和分析便于对实验室空调设备进行控制。

2.1.1 温湿度传感器初始化

考虑到实际应用及经济性,传感器选择采用纯国产芯片DHT11,其具有检测灵敏度高、精度准确、体积小、测量范围广和成本低等特点,湿度测量精度+-5%RH, 温度精度±2℃,湿度测量范围20%~90%RH, 温度测量范围0~50℃。芯片管脚有三个:VCC、GND及Data,DHT11的工作过程如下。

Data用于MCU与 DHT11之间的通讯和数据交互采用单总线数据格式,一次通讯时间4 ms左右,获取数据整数和小数部分,一次完整的数据传输为40bit,数据格式如下。

8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和,当数据传送正确时校验和结果等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”。MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送应答信号,输出40bit数据到外设。

DHT11初始化时序主要有四个阶段。

第一阶段:从机(DHT11)拉高等待主机输入信号;

第二阶段:主机(MCU)发送18 ms以上低电平,而后拉高,等待从机应答;

第三阶段:从机数据引脚开始输出83 μs低电平,然后输出87 μs高电平作为应答信号,主机开始接收数据;

第四阶段:主机接收从机发送的40bit温湿度数据,而后输出54 μs低电平转为输入状态,等待下一次主机的信号。

DHT11初始化代码如下:

Void DHTint()

{

DHT=1;//主机空闲拉高;

delay40us();//延时40 μs;

DHT=0; //主机拉低;

delay25 ms();//主机拉低后延时25 ms(大于18 ms即可);

DHT=1; //主机拉高;

delay40 μs();//主机拉高后延时40 μs;

DHT=1; //主机设为输入,等待从机输入;

if(!DHT) //判断从机是否有低电平响应信号;

{

j=2; //判断从机是否发出80 μs低电平响应信号;

while((!DHT)&&j++);

j=2; //判断从机是否发出80 μs的高电平,如发出则进入数据接收状态;

while((DHT)&&j++);//开始接收数据;

DHTGet();

RH_HH=DHTdata;//接收湿度整数数据;

DHTGet();

RH_LL=DHTdata; //接收湿度小数数据;

DHTGet();

T_HH=DHTdata; //接收温度整数数据;

DHTGet();

T_LL=DHTdata; //接收温度小数数据;

DHTGet();

Checksum=DHTdata;

DHT=1; //数据和校验;

Check=T_HH+T_LL+RH_HH+RH_LL;//数据求和

if(Check==Checksum)

2.1.2 烟雾传感器控制电路

由于实验室空气流通相对稳定,且实验室存在大量电器、仪器及设备等,对于防火要求非常高,因此需要传感器对烟雾检测的灵敏度要高,本系统选取功耗低、可靠性强、安全性好的NIS-07子式烟雾传感器,工作温度范围为-10℃~+60℃,湿度范围为<95%RH,烟感灵敏度为0.6+/-0.1 V,可进行实验室环境中的烟尘和灰尘检测,满足绝大部分场景的防火需求,使用烟雾控制芯片MC14508对NIS-07采集的数据进行实时处理,通过电阻调节烟雾检测阈值,输出的数据经MCU解析后显示在液晶屏上,当检测到烟雾存在后,服务器将即时下发数据到管理端并发出告警提示音,提醒用户进行处置和查看,传感器控制电路如图2。

图2 烟雾传感器控制电路

2.2 基于BP神经网络PID红外控制电路

由于实验室内设备数量众多处于相对封闭的空间,因此对温湿度的控制需要使用空调来实现,根据GB50174-2008《电子信息系统机房设计规范》,对于C类机房设备运行时,湿度要求35%~75%、温度要求为18~28 ℃,为了实验室设备的稳定和人员安全,对于温湿度的控制必须符合C类机房标准,由于DHT11及NIS-07可实时对环境变量进行采集和上报,因此可根据环境变量对空调进行调节和控制,红外控制电路如图3。

图3 红外控制电路

为了能够满足温湿度的控制需求,采用PID控制算法对温湿度调控进行优化[15-20]。传统的PID控制综合考虑比例、积分和微分控制的优势,根据温湿度的实际测量值和期望值之差,对其比例、积分、微分进行线性组合并进行运算,从而得出最优调控值,并发送到被控制对象。既加快温湿度控制系统响应速度、减小振荡、克服超调,同时有效消除静差。具体算法如下:

e(t)=r(t)-y(t)

(1)

式(1)中,e(t)为目标值与实际输出值之差;r(t)为目标值;y(t)为实际测量值。

(2)

式(2)中,Kp为比例增益;Tt为积分时间常数;Td为微分时间常数;u(t)为PID控制器的输出信号;e(t)为给定值r(t)与测量值之差。

(3)

式(3)中,u(t)为PID控制器的输出信号;e(t)为目标值与实际输出值之差。Kp为比例增益;Ki为积分增益;Kd为微分增益。

温湿度及烟雾传感器采样频率为2秒/次,在一天当中环境温度、湿度及烟雾采样和上报数据为43 200次,一个月可高达1 296 000次,由于天气情况、实验室人员数量、设备数量、使用频率和时长的不确定性,就会导致环境参数的动态变化,要实现温湿度的相对稳定,就需要对大量采集上报的环境数据进行分析和统计,从中找到最佳控制目标值,而控制的难点在于环境变量的不确定性,无法使用固定的规则和算法进行控制,针对环境变量参数的这一属性,运用BP神经网络和PID控制可完美解决这一问题。

采用具有较高适应能力的BP神经网络,通过不断学习,训练优化权值和偏差,从而调整PID控制系统的比例(Kp)、积分(Ki)、微分(Kd)。BP神经网络采用三层结构,分别为输入层、隐含层和输出层。BP神经网络输入层的神经元节点分别是温湿度目标值r(t),实际采集的输出温湿度值y(t)以及误差值e(t),为了进一步增加稳定性,添加常数1为输入神经元节点。输出层三个神经元节点分别对应PID控制器的比例(Kp)、积分(Ki)、微分(Kd),隐含层的个数根据经验和实际测试,最终确定为6,BP神经网络结构如图4所示。服务器端将实时采集的环境数据通过BP神经网络进行训练,将得出的参数传递给PID算法,PID经过计算得出最优调控值,并通过TCP传递给微处理器,从而控制空调,使实验室实时在线动态将实际环境温湿度可以调整为最理想的温湿度值。基于BP神经网络PID控制原理图如图5,控制流程如图6。

图4 BP神经网络结构

图5 基于BP神经网络PID控制原理图

图6 控制流程图

2.3 无线组网

相对有线连接通信方式,无线通信具有施工简单、高效和成本低等特点[21],为了实现高性价比的无线通信,本系统采用乐鑫科技基于ESP8266EX的无线模块,该模块具有时钟频率高、功耗小、发射功率大、易组网、接口丰富和性价比高等特点,支持802.11 n (2.4 GHz),数据传输速率可达 72.2 Mbps,无线模式支持Station/SoftAP/SoftAP+Station,用户可根据实际需求灵活进行自由配置,由于芯片在出厂时网络参数已配置,用户使用时只需发送配置网络参数的AT指令,即可实现模块的初始化,进行无线通信,具体指令如下:

AT+CWMODE=3 //设置模块为AP+Sation模式

AT+ CWSAP=《Ssid》,《Pwd》,《Chl》,《Ecn》//设置Wifi名称及密码

AT+RST //重启模块

AT+CIPMUX=1 //设置为多连接模式

AT+CIPSERVER=《Mode》,《Port》 //设置服务器模式和端口号

网络组网如图7所示,主机配置为Wifi AP模式,从机即传感器终端配置为Wifi Station模式,主机可通过互联网与服务器进行通信和数据存储实现集群控制。

图7 系统组网示意图

2.4 微处理器(MCU)控制电路

考虑到经济性和利用率问题,微处理器选用宏晶科技设计生产的STC15W408AS,其基于8051内核,指令集与时序可与51单片机完全兼容,自带看门狗电路、8K程序存储器、工作频率可达35 MHz、SRAM 512字节、T0和T2两个定时器、A/D转换等,内部自带晶振和复位电路,芯片工作温度范围可达-40 ℃~ +85 ℃,工作电压范围2.5~5.5 V,有18个I/O口可供使用,因此可方便对液晶屏、温度、湿度、红外及烟雾传感器进行控制,具体控制原理如图8。

图8 微处理器控制电路

3 系统软件设计

本系统软件部分采用B/S架构,使用前后端分离的方式开发。

3.1 服务器端

为了确保系统的安全性和稳定性,本文采用云服务器实现数据共享和交互。云服务器上安装Tomcat,MySQL,并对Tomcat参数进行优化,提高运行性能[22]。将系统的后端配置到服务器的Tomcat服务器上,服务器端主要获取通过无线网络采用TCP的socket实现和微处理器的通信,接收采集的数据,并对数据进行解析、处理、存储和计算等操作,同时通过http实现对Web端和APP请求的及时响应。

3.2 用户端

3.2.1 APP端

考虑到智能设备的普及性和市场占有率,本系统采用安卓开发环境进行用户端App设计。本系统采用Android Studio开发环境,通过okHttp库中的post方法实现与服务器的通讯,部分关键代码如下:

//服务器地址

String address =

"http://192.168.20.8:8080/monitor/servlet/MainServlet";

Log.d(LoginActivity.TAG, address);

//创建OkHttpClient对象

OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("text/x-markdown; charset=utf-8");

String requestBody = "data";

//构建Request对象

Request request = new Request.Builder().url(address).post(RequestBody.create(requestBody, mediaType)).build();

Log.d(LoginActivity.TAG, String.valueOf(request));

//封装成Call,并执行

client.newCall(request).enqueue(new Callback() {

……

}

……

为了提高数据的时效性,APP每隔1分钟向服务器发送请求,实现界面数据的更新。用户通过安卓手机、平板电脑及其它智能设备运行软件,实现环境温湿度和烟雾的实时监控,当阈值超出时,系统进行报警,同时调用Vibrator类使手机发生震动及时提醒用户。

3.2.2 Web端

为了更加方便用户,开发了适用于用户使用的Web端,用户可以通过浏览器登录Web端,访问实验室环境监控界面。Web端采用Element-ui组件开发温度、湿度和烟雾的数据状态表格看板,该数据看板展示最新环境数据,通过这些值来判断实验室的环境是否正常;该系统还配备有温度、湿度控制开关,当实验室环境出现异常情况,需要人为调节时,点击按钮,服务器通过无线网络给微处理器发出相应指令控制实验室的空调设备,从而使环境达到正常阈值。使用ECharts组件构建折线图,对环境变量进行实时统计分析和数据积累,为实验室环境预测提供基础。

4 实验结果与分析

按照本文的硬件设计,开发了系统硬件部分,微处理器能够稳定运行,能够顺利采集温湿度和烟雾数据,并在液晶屏上显示当前数据,同时能够将数据通过无线发送至服务端,当采集的数据出现异常时,能够及时按照目标温湿度自动实时控制实验室内温湿度。

为了验证传感器驱动准确性,使用逻辑分析仪对传感器数据进行时序抓取和分析。 传感器波形数据分析及校验,按照DHT11高低电平的逻辑表达,从液晶屏上读读取数据湿度为62%,温度为32℃,二进制结果如下:

00111110(湿度高8位) 00000000 00100000(温度高8位) 00000111 01100101(校验和)

湿度值计算(整数)=00111110B=3EH(十六进制)=62%(十进制)

温度值计算(整数)=00100000B=20H(十六进制)=32(十进制)

校验和=00111110+00000000+00100000+00000111=01100101

通过以上计算可以看到,实际显示的环境温湿度值与逻辑分析仪波形分析结果一致。

5 结束语

本文主要介绍了温湿度控制系统硬件和软件的设计与开发,通过传感器能够准确地对实验室环境的数据进行采集,微处理器采用基于BP神经网络PID控制算法实现温湿度调控,同时将数据上传服务器,服务器将数据进行分析、处理和存储,用户可以采用Web或APP查看多个实验室当前环境数据以及状态,从而实现多终端的集中监控和管理。当系统发现环境变量数据超过正常设置值时,将第一时间下发报警通知信息到安卓智能设备,对异常的终端位置及数据进行显示和提醒,从而最大程度的保证实验室的消防安全,在实际生产过程中有很强的推广意义。

猜你喜欢
温湿度烟雾湿度
湿度变送器测量结果不确定度评定
蛋鸡育雏育成舍环境控制技术
薄如蝉翼轻若烟雾
加湿器用不对 警惕肺炎缠身
影视剧“烟雾缭绕”就该取消评优
档案库房温湿度记录统计及调控
咸阳锁紧烟雾与尘土
带有双检测结构的电缆接头保护装置
变电站高压配电智能温湿度控制装置的研发与应用
跟踪导练(二)(2)