APP下载

基于WSN的仓储环境监测原型系统

2022-10-24

南阳理工学院学报 2022年4期
关键词:串口温湿度空气质量

袁 博

(南阳理工学院信息工程学院 河南 南阳 473004)

仓储环境监测在现代物流体系中至关重要,不仅关系到仓储货物的质量与安全,也是衡量仓储系统管理水平与运行效率的重要因素。除安全考虑外,好的仓储环境检测系统还能够降低仓储损耗,节约物流成本。传统仓储环境监测多数采用人工监测或有线传感网监测[1]。无线传感网WSN(Wireless Sensor Network)是融合了无线通信技术、网络技术与传感器技术等的交叉学科,不仅能克服人工监测中实时性差、人工成本高等缺点,也能避免有线传感网监测中布线多、移动与扩展困难、维护成本高等问题,是今后发展智能仓储环境监测系统的一种理想技术[2-4]。本文综合利用Arduino UNO、NodeMCU与TLINK物联网云平台,设计了一种仓储环境监测原型系统,通过将温湿度传感器、火焰传感器与空气质量传感器集成为一个无线传感网,能对多种仓储环境关键参数进行实时监测与网络显示[5-10]。

1 系统总体设计

1.1 系统结构组成

系统采用Arduino平台搭建无线传感网,实现对仓库的温湿度监控、火情报警、有毒气体监测等功能。系统涉及模块包括:Arduino UNO开发板、温湿度传感器、火焰传感器、空气质量传感器、NodeMCU和TLINK物联网平台,结构如图1所示。其中,温湿度、火焰与空气质量等传感器模块通过Arduino UNO和NodeMCU进行汇聚、处理与无线传输,并通过TLINK物联网云平台形成仓储环境监控的可视化信息,在手机等终端进行显示。

图1 基于WSN的仓储环境检测原型

1.2 组成系统技术路线

从结构上来说,WSN一般包括传感器节点、汇聚节点和管理节点3部分[11]。传感器节点主要用于测量与发送感兴趣参数;汇聚节点主要用于向传感器节点发布监测任务,汇聚各传感器节点测量信息并向外部网络转发;管理节点主要用于配置和管理WSN,发布监测任务,收集和显示监测数据[12,13]。因此,基于WSN的仓储环境监测原型系统的技术路线如图2所示。

首先,仓储监控对象通常包括温度、湿度、火警信息,以及二氧化碳等感兴趣气体浓度[14]。针对上述监控需求,系统选择DHT11数字温湿度传感器测量仓库温度与湿度,选择Risym红外火源探测模块(又称火焰传感器)监控火警信息,选择MQ-135空气质量传感器监测感兴趣气体浓度,共同作为WSN的传感器节点。

图2 基于WSN的仓储环境检测原型系统技术路线

其次,系统采用Arduino UNO结合NodeMCU作为WSN的汇聚节点。其中Arduino UNO开发板用于将来自管理节点的监测任务或监测指令分配给各传感器节点,接收和处理各传感器节点测量数据,并利用NodeMCU将汇聚的测量数据通过WIFI模块传送到网络中。

最后,采用TLINK物联网云平台作为管理节点。系统利用TLINK对传感器节点进行注册与管理,生成和分发监测任务[10],并作为远程监控平台,供监控人员在手机等监控终端查看仓储环境信息。

2 硬件设计

该原型系统采用面包板和杜邦线连接电路,可随意拔插调整,如图3所示。其中,温湿度传感器、火焰传感器与空气质量传感器分别使用三根连接线,一根与Arduino UNO相连,用于传输测量数据,另外两根分别接电源和接地;Arduino UNO与NodeMCU除各自的电源线与接地线之外,二者之间的通信也通过相连的杜邦线实现。

图3 原型系统硬件连接示意图

2.1 温湿度传感器模块

仓库的温度与湿度监控对于防止食物或药品变质,避免货物损坏或损耗等具有重要意义。系统选择DHT11数字温湿度传感器进行仓库温度与湿度的检测。DHT11数字温湿度传感器包括一个NTC测温元件和一个电阻式感湿元件,成本低廉,响应速度快,同时具有较高的稳定性和可靠性。DHT11通过单总线与Arduino平台中微处理器进行通信,系统集成简单便捷[15]。

DHT11为4针或3针单排引脚封装,供电电压3.3~5.5 V,湿度测量范围20~90%RH,测量精度±5%RH;温度测量范围0~50 ℃,测量精度±2 ℃。DHT11连接微控制器(MCU)的典型电路如图4所示,其中VDD端(1Pin)接3.3~5.5 V直流电源,DATA端(2Pin)接MCU数据线,GND端(4Pin)接地。

图4 DHT11连接MCU典型电路

2.2 火焰传感器模块

火焰传感器能在第一时间发现监测区域内产生的火焰,并发送火灾报警信号给WSN的汇聚节点。系统选择Risym火焰传感器模块(也称红外火源探测模块)监测仓库火灾隐患。该模块可以检测火焰或波长在760~1100 nm范围内的光源,工作电压3.3~5 V,探测角60°,有火光时输出为0 V,没火光时输出为5 V,可通过精密电位器调节灵敏度,输出形式包括数字开关量输出(0或1)和模拟电压输出两种[16]。

Risym火焰传感器电路如图5所示。其中,VCC接3.3~5 V直流电源正极,D0为开关信号输出,接微控制器数据线。

图5 Risym火焰传感器电路图

2.3 空气质量传感器模块

系统使用MQ-135空气质量传感器作为有害气体泄漏检测装置。MQ-135空气质量传感器使用二氧化锡(SnO2)作为气敏材料,二氧化锡的电导率在清洁空气中较低,随空气中有害气体浓度的增加而增大,通过测量电导率的变化,即可得到有害气体的浓度变化情况。MQ-135适合测量氨气、苯系蒸汽、硫化物、芳族化合物、烟雾等有害气体浓度,特别是对一氧化碳具有很高的灵敏度。MQ-135气敏元件的浓度测试范围为10~1000 ppm,具有开关信号(TTL)输出和模拟信号输出两种输出形式,其中TTL输出的有效信号为低电平,模拟信号输出时,有害气体浓度越高则电压越高。

MQ-135空气质量传感器的基本测试电路如图6。其中,VH为加热器电压,用于为传感器提供特定的工作温度;VC为测试电压,用于测定与传感器串联的负载电阻RL上的电压VRL;GND接地。

图6 MQ-135空气质量传感器基本测试电路

2.4 Arduino UNO模块

Arduino是一款基于单片机的电子产品开发平台,Arduino UNO是Arduino USB接口系列的最新版本。Arduino UNO工作电压为5 V,输入电压为7~12 V,可以通过外部直流电源插座、电池和USB接口3种方式供电,能自动选择供电方式,引脚结构如图7所示。其中系统用到的引脚包括:D1~D4、A0、5V、GND与Vin。

Arduino UNO开发板作为无线传感网的汇聚节点,是整个系统的核心部分,上述几种传感器的测量数据都通过Arduino进行接收和处理,并通过NodeMCU中的WIFI模块进行无线网络传输。

图7 Arduino UNO开发板引脚结构

2.5 NodeMCU模块

NodeMCU是一款开源的物联网开发平台,MCU使用Xtensa L106芯片,RAM大小为50 K,Flash能储存512 K的数据,具备D1~D10共10个GPIO口,自带ESP8266串口WIFI 模块。

系统使用NodeMCU中的ESP8266串口WIFI模块实现无线通信功能,将经过Arduino UNO接收和处理的仓储环境监控数据传送到外网中的TLINK物联网云平台。

3 软件设计

系统的Arduino编程在Arduino IDE上实现,Arduino IDE是Arduino系列开发板配套的免费集成编译环境,可以在Arduino官网下载。同时使用IDE中自带的串口监视器查看DHT11、MQ-135和Risym传感器的反馈,以便调试程序。此外,需要使用串口助手对NodeMCU进行调试并监测其工作过程中的数据传输状态。系统程序开发实现主要包括两部分,一是Arduino UNO代码,二是NodeMCU代码。

3.1 Arduino UNO程序开发

Arduino UNO代码的主要功能是读取各传感器的监测数据,用自定义格式封装后发往NodeMCU的串口。此外,需要在火焰传感器部分加上一个LED报警灯控制程序,即监测到火光后LED点亮,未检测到火光LED灯不点亮。

Arduino UNO部分关键代码如下:

int chk = DHT11.read(DHT11_Sensor_Pin); // 读取DHT11温湿度传感器数据,返回读取状态

if (chk == DHTLIB_OK) //如果读取成功

{

humidity = DHT11.humidity;

//将DHT11的湿度测量值赋给变量humidity

temperature = DHT11.temperature;

//将DHT11的温度测量值赋给变量temperature

}

flame = digitalRead(Flame_Sensor_Pin);

//读取火焰传感器数字(开关)值

if (flame == HIGH) {

//如果值为“高”,火情报警灯点亮

digitalWrite(LED, HIGH);

}

else {

//如果值为“低”,火情报警灯不点亮

digitalWrite(LED, LOW);

}

3.2 NodeMCU程序开发

NodeMCU程序功能主要包括读取Arduino发送的串口数据,连接TLINK并发送数据给TLINK服务器,监测NodeMCU工作状态并在串口监视器中显示。

NodeMCU部分关键代码如下:

DataSerial.begin(9600); //数据传输波特率

DebugSerial.begin (115200); //调试串口波特率

DebugSerial.println(" Start ESP8266");

WiFi.disconnect(); //断开WIFI连接

WiFi.mode(WIFI_STA); //设定NodeMCU工作模式

DebugSerial.printf("connect ssid: %s ,password: %s ",stassid,stapassword);

WiFi.begin(stassid,stapassword); //连接路由器

doTCPClientTick(); //保持与TLINK连接的函数

doUartTick(); //检查Arduino UNO是否有数据发送

3.3 TLINK调用

TLINK物联网云平台由深圳市模拟科技有限公司开发,提供综合性的物联网应用解决方案,能够帮助物联网开发者轻松实现设备接入与设备连接。TLINK兼容大多数网络环境与协议,支持各类传感器和智能硬件的快速接入,支持大数据服务。TLINK提供了丰富的API和应用模板,支持各类行业应用和智能硬件的开发,能够有效降低物联网应用开发和部署的成本。

基于TLINK,本系统不需要开发专门用于显示仓储环境数据的网络应用或手机APP,只需将监测数据通过无线网络上传到TLINK,在手机上下载TLINK APP,或打开TLINK Web页面,便可在手机或电脑终端查看仓库环境监测数据。

使用TLINK时,首先打开TLINK的网站(www.tlink.io),注册并登录后,在设备管理中添加设备,并设置设备名称、链接协议、上报周期以及设备所使用的传感器信息。TLINK的设备设置如图8所示,设置完成后,平台会给出一个IP地址、一个序列号、一个端口号,利用这3个信息就可以连接TLINK服务器把数据上传到云平台上。

图8 TLINK设备设置

图9 TLINK上的系统测试界面

4 系统测试

连接好电路,把程序拷入Arduino UNO与NodeMCU中。上电后系统运行良好,打开浏览器登录TLINK,可在TLINK的数据监视中心上查看当前的仓储环境监测数据,如图9所示。如果要在手机上查看数据,需要下载TLINK的手机APP,登录后可看到与浏览器中同样的页面。

5 结语

本文利用Arduino UNO与NodeMCU,结合TLINK物联网云平台,将几种常见传感器搭建为无线传感网,实现了一种基于无线传感网的仓储环境监测原型系统。该系统能够监测仓储环境中的温度、湿度、火警信息和空气质量参数,并通过WIFI实时传送到外网,供监控人员在手机等终端集中查看,以一种高实时性、低成本、非常便利的方式,实现了仓储环境中的温湿度与空气质量监测,以及火警预报等常见功能。

该原型系统还有很多需要改进的地方。首先,真正的仓库空间很大,需要布置大量传感器,将每个传感器都与Arduino UNO直接进行物理连接并不现实;可以将传感器与NodeMCU直接相连,再通过WIFI信号传到Arduino UNO汇聚节点上。其次,由于WIFI模块耗电量大,大型仓库中所有传感器节点都采用电源供电又难以实现,可以使用耗电量较小的ZigBee技术代替NodeMCU的WIFI来传输传感器数据,这样就可以使用电池维持传感器节点长时间的正常工作。第三,还可以在系统中加入排风系统、空调系统与灭火系统等,在实现自动监测功能的同时,实现远程、实时的仓储环境自动调控与管理。

猜你喜欢

串口温湿度空气质量
乌海市雾对空气质量的影响
蛋鸡育雏育成舍环境控制技术
档案库房温湿度记录统计及调控
MCS—51单片机中的多串口通讯技术的应用
变电站高压配电智能温湿度控制装置的研发与应用
全国计算机等级考试机房准备工作探讨
档案库房温湿度调控思考
微机串口的测试诊断
基于VC串口通信的实现