康明星 匡炎
摘 要:文中设计并实现了一种基于WiFi的分布式温湿度监测网络,采集节点利用STM32L152微控制器和USR-SENS-WSD传感器采集温湿度,通过WiFi将数据传输到中央数据处理单元,适用于机房内多点温湿度监测的场合。
关键词:微控制器;温湿度采集;WiFi传输;传感器
中图分类号:TP39 文献标识码:A 文章编号:2095-1302(2018)08-00-02
0 引 言
随着信息化技术的普及,越来越多的通信导航及监视设备和计算机系统应用到民航空管领域,机房规模不断增大,机房内设备持续增多。与此同时,民航飞速发展对空管设备运行保障提出了更高的要求,机房管理从粗放型走向精细化。机房内温湿度是影响电子设备性能的重要环境因素[1]。影响机房温湿度的因素有很多,外界天气及制冷除湿设备故障等均可能造成机房温湿度失控[2],导致设备性能下降,甚至造成空管雷达功率部件等损坏,因此温湿度实时监测是机房精细化管理的重要手段。
传统的多点温湿度自动监测需要布置线缆,通信电缆冗长且铺设不便[3],不利于快速部署和后期维护。鉴于此,本文给出基于WiFi组网的分布式温湿度采集监控网络的设计方案,包括硬件设计与软件设计两大部分,并通过实际制作验证方案的可行性。
1 系统设计
监测网络的结构示意图如图1所示。通过在机房内部署WiFi路由器实现无线覆盖,构建一个无线局域网;在不同区域和机柜部署温湿度采集节点,采集节点利用STM32L152微控制器和USR-SENS-WSD传感器采集温湿度,利用USR-C322接入WiFi局域网即可组网,实时进行多点温湿度数据的采集传输。
各采集节点与中央数据处理单元之间以TCP/IP进行数据通信。采集节点作为TCP Client,充当中央数据处理单元的本地监测站或远程监测站,作为TCP Server;部署采集节点后,自动加入WiFi局域网,与Server之间建立TCP 连接;Server汇聚所有节点的温湿度数据并处理,同时监测与各节点连接的网络连接状态。
本文系统需要在一个机柜内部署多个温湿度传感器。USR-SENS-WSD传感器具备有线组网优势,该传感器支持MODBUS协议,允许多个传感器共同接入总线组网,即一个采集节点可以外挂多个温湿度传感器,多个温湿度传感器先以有线方式组网汇聚数据,再由WiFi传输到中央数据处理单元。
2 硬件设计
采集节点是一个完整的数据采集传输装置,主要由微控制器、温湿度传感器、WiFi模块及供电电路组成,其结构如图2所示。
微控制器采用意法半导体公司生产的低功耗ARM7芯片STM32L152,该芯片内部集成了ADC、定时器和USART等功能模块,相比单片机而言具有更强大的运算处理能力。温湿度传感器采用济南有人物联网科技公司生产的集成温湿度采集模块USR-SENS-WSD,该模块是一款高性能温湿度数据采集传输模块,温度测量分辨率为0.1℃,精度为±0.2℃,湿度(指相对湿度)测量分辨率为0.1%,环境温度为25℃,精度为±2%;支持RS 485/RS 232/TTL接口输出,支持MODBUS工业控制总线协议,可利用MODBUS进行现场组网。WiFi模块采用有人物联网科技公司生产的USR-C322,该模块内置TCP/IP协议栈,通过串口与微控制器通信,支持串口透明传输,与WiFi串口服务器功能相似,各类设备易于通过WiFi联网传输数据。声光指示电路包括蜂鸣器和LED指示灯,用于提示WiFi模块联网及节点工作情况。
供电主要考虑WiFi模块耗电情况。由数据手册可知,USR-C322作为STA(入网终端模式)持续发送数据时所需电流约为75 mA,峰值电流约为250 mA,采集节点其他单元耗电累计约小于10 mA,因此可采用EXAR公司生产的稳压芯片SPX3819供电,将5 V直流电源稳压到3.3 V,SPX3819为低压差稳压芯片(LDO),其满载(500 mA)情况下的压降仅为340 mV。
3 软件设计
由于WiFi模块已内置TCP/IP协议栈,将联网封装成串口指令实现,因此软件设计主要包括WiFi模块串口通信程序和温湿度采集模块驱动程序。
3.1 WiFi模块串口通信程序
USR-C322模块支持Web和AT指令两种配置方式。模块出厂默认开启WiFi路由器功能,此时可用电脑通过WiFi连接模块,成功后即可使用Web进行配置,适用于一次配置后无需再更改网络参数的场合。本文系统采取AT指令配置方式,其软件流程如图3所示。WiFi模块工作参数存放在微控制器内部FLASH区域,该区域同时存放有标识字符,用于指示模块是否成功配置过工作参数。程序先检查标识字符,如果需要配置,则发送AT指令使模块进入配置模式。
3.2 温湿度采集模块驱动程序
USR-SENS-WSD模块支持MODBUS协议帧,可接收并解析中央数据处理单元(上位机)发送的MODBUS 命令帧,根据指令返回响应帧;同时模块也支持几组简单的ASCII指令,无需采用MODBUS组网时可快捷使用该模块采集温湿度。模块上电约2 s后开始执行初始化操作,之后可以正常接收指令并根据指令执行操作。MODBUS命令帧和响应帧的构成如
图4所示。
命令帧中的地址域指示响应上位机命令的模块ID;功能码指示符合指定地址的模块作何响应;数据段指示读写的起始地址、结束地址或用于写入的数据,在读取溫湿度数据时,前2个字节表示读取起始地址,高字节在前;CRC校验段用于差错校验。
响应帧的地址域表示向上位机返回模块ID;功能码/异常码用于返回模块所接收到的功能码或返回差错码;数据段用于返回数据,第1个字节表示返回数据的字节数,后1~4字节表示返回的数据,高字节在前,返回温湿度数据时,湿度数据在前,温度数据在后;温度最高位为0 时表示正温度,温度最高位为1 时表示负温度;返回数据均为实际测量数据的10 倍,例如,返回温度数据为185,则实际温度为18.5℃。
同时,在采集温度和湿度数据时,微控制器发送给USR-SENS-WSD模块的命令帧中功能码设置为0x03或0x04,数据段设置为0x00,0x00,0x00,0x02。
采集节点可以被设置成自动定时采集温湿度数据并发送到目标主机的方式,也可设置为接收主机轮询指令采集数据并发送的方式。在轮询方式下,采集节点支持“Get Data”指令,即主机通过WiFi发送该指令给采集节点,采集节点内部微控制器通过MODBUS发送命令帧给USR-SENS-WSD模块,USR-SENS-WSD模块进行温湿度数据采集并将结果返回给微控制器,最终通过WiFi返回主机,完成一次数据采集过程。
4 网络配置
本文以网络配置方法为例,采取主机轮询方式获取数据,主要步骤如下:
(1)搭建WiFi局域网,利用无线路由器(如TPLINK WR886N)搭建名(即SSID)为“test”的WiFi局域网,其网络频带为2.4 GHz,安全类型为“WPA2-个人”,加密密码为“123456789”,支持DHCP。
(2)搭建TCP Server主机,利用电脑接入test网络,IP固定为192.168.1.100,运行TCP/IP调试助手(有人科技公司提供的软件名为USR-TCP232-Test),开启TCP Server监听功能,端口为8899。
(3)配置采集节点的WiFi模块网络参数,无线网络SSID为“test”,安全类型为“wpawpa2_aes”,加密密码为“123456789”,采取DHCP方式获取IP,需连接的目标服务器IP为192.168.1.100,端口为8899。
(4)系统部署完成后,在电脑端的TCP/IP串口调试助手上可看到所有接入WiFi局域网的采集节点,输入“Get Data”指令发送给所有采集节点或指定任意采集节点,即可收到节点返回的数据。
5 结 语
民航领域日益精细化的机房管理对温湿度的监测要求越来越高,多点温度测量是实现温湿度精确控制的前提,尤其对于无人值守的空管台站,一方面采集到的温湿度数据可反馈用于控制机房空调等制冷除湿设备,将机房温湿度控制在适宜的数值区域;另一方面可将采集到的数据传送到远程监控中心,实现集中式监控和告警。本文给出了一种多点温湿度数据采集网络的实现方法,通过采用WiFi组网技术,提供了一种可靠快捷的机房温湿度多点监测组网方案,解决了部署应用难题,适用于快速搭建机房多点温湿度监测的场合。
参考文献
[1]莫卫平.浅谈南方计算机机房的温湿度控制[J].网络空间安全,2014(12):62-64.
[2]黄高攀,宋庆武,王会羽.机房温湿度变化趋势预测模型探究[J].产业与科技论坛,2016,15(3):67-68.
[3]王小娟.基于ESP8266 无线传输的温湿度检测仪设计[J].九江职业技术学院学报,2017(4):22-24.
[4]王君佑.室内环境质量无线监测系统设计[J].物联网技术,2016,6(1):26-28.
[5]何巍.基于无线传感网络的交换机房温湿度监测系统[D].太原:中北大学,2012.
[6]周学军,俞凯君.基于无线网络的影像机房温湿度监测系统[J].中国医疗器械杂志,2011,35(3):234-237.
[7]陳微辰,丁恩杰.一种基于无线传感器网络的机房温湿度监测控制系统[J].福建电脑,2012,28(1):126-128.
[8]钟九洲.基于无线传感器网络的多处网络机房温湿度双向监控系统[J].计算机系统应用,2013,22(5):54-57.