(常州轻工职业技术学院电子电气工程系1,江苏 常州 213164;上海交通大学电子信息与电气工程学院2,上海 200240)
温湿度监测[1]在工业、农业、化工等行业有着广泛的应用。在很多情况下温湿度监测需要对较大空间的多个点和不同空间的点进行监测,传统的有线方式[2-3]极为不便。为了实时准确地监测多个观测点的温湿度情况,需要实现温湿度的分布测量和无线传输的功能。
目前,温湿度分布式无线监测网络大多采用ZigBee技术[4]。该技术虽然功耗较低,但是传输速度较低,构建的网络为封闭式网络,不能和广泛应用的Internet/Intranet直接集成。而WiFi技术[5]具有传输速度高、覆盖范围远、组网简单、与Internet可无缝连接等优点。随着物联网技术的发展,众多的嵌入式系统具有增加WiFi特性的需求。同时嵌入式WiFi芯片的成本降低和可靠性增加,使得WiFi技术成为具有发展优势的嵌入式网络解决方案。文献[6]~[8]分别将WiFi技术应用到矿井安全、温湿度监测、电力设备状态监测中,取得了较好的效果。然而在WiFi无线路由软件开发设计中,该协议移植困难,造成开发时间长,对于普通单片机开发人员而言,开发WiFi网络通信难度较大。
针对以上无线WiFi网络开发中的难点,本文提出直接采用串口转WiFi数据传输模块。利用该模块单片机开发人员在开发中无需关注无线通信如何实现,大大节约了开发时间,降低了开发难度。
分布式无线温湿度采集监测系统结构框图如图1所示。
图1 监测系统结构图
系统主要由以下3个部分组成:温湿度测量模块和STM32单片机、WiFi无线收发模块和无线路由器、远程服务器。系统以STM32F103单片机为控制核心,利用DHT11数字式温度传感器采集温湿度信号,并送入单片机处理后显示。然后把数据通过单片机的串口送入串口转WiFi数据传输模块中,由该模块进行无线数据的收发。无线路由器进行中继和路由,远程服务器对各节点进行远程控制并进行数据的远程显示。
无线温湿度传感网络节点主要由单片机、数字式温湿度传感器、WiFi无线收发模块、LCD液晶显示模块组成。节点硬件结构如图2所示。
图2 节点硬件结构图
单片机控制系统选择意法半导体公司生产的STM32F103。STM32F103为增强型,工作频率为72 MHz,带有片内RAM和丰富的外设,满足高性能、低功耗、低成本的嵌入式系统的要求。
STM32F103是远程节点的核心,其完成整个温湿度数据的采集、处理、显示及发送。DHT11温湿度传感器通过单总线和单片机的I/O口相连,接口简单,抗干扰能力强。LCD液晶显示模块也是通过I/O口和单片机相连,完成字符的显示和控制。STM32F103和WiFi无线收发模块通过单片机的串口UART相连。
温湿度传感器系统采用广州奥松电子公司生产的DHT11数字式温湿度传感器,它是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括1个电阻式感湿元件和1个NTC测温元件,并与1个高性能8位单片机相连接。因此,该产品具有品质卓越、响应快、抗干扰能力强、性价比高等优点。超小的体积、极低的功耗,信号传输距离可达20 m以上,使其成为各类甚至最为苛刻的应用场合的最佳选择。湿度测量范围为20~90%RH ,测湿精度为±5%RH,温度测量范围为0~50 ℃,测温精度±2 K,测量分辨率分别为8 bit(温度)、8 bit(湿度)。
DHT11采用单线双向的串行接口,引脚DATA 用于STM32F103单片机与 DHT11之间的通信和同步。采用单总线数据格式,一次通信时间4 ms左右,数据分小数部分和整数部分。当DHT11传感器和单片机STM32F103的I/O接线引脚小于20 m时,DATA引脚需上拉5 kΩ电阻。
本文采用武汉密友电子有限公司开发的多功能UART转WiFi数据传送模块ST-MW-08S。该模块内部集成了支持ARP、ICMP、UDP 、 TCP/IP、DHCP客户端以及DHCP服务器等诸多协议和 WiFi 驱动;同时具备通用串口、PWM以及多路通用I/O的输入输出等功能;具有系统接口灵活、编程控制方便等诸多优点。在网络结构方面,模块支持基础网络(infra)和特殊的Ad hoc网络结构。在加密认证方面,模块支持开放性WEP 64/128、WPA、TKIP、AES等诸多安全协议。灵活的结构设计使得模块在功能完备的前提下拥有更低功耗和较高的数据吞吐率。用户利用它可以轻松实现嵌入式设备的无线网络功能,节省人力物力和开发时间,使产品更快地投入市场,增强竞争力。UART接口最高波特率为115 200 bit/s,具有 TCP、UDP 数据传输模式,并且支持串口和网页两种参数配置的方式,方便使用。
STM32F103单片机和WiFi无线收发模块通过串口UART相连,然后通过串口或网页配置WiFi模块的工作方式和参数,即可正常工作。STM32F103单片机通过串口UART发送数据到WiFi模块,然后由WiFi无线收发模块完成协议的转换和数据的无线收发。
系统的软件设计主要包括温湿度采集节点的程序设计和远程服务器的程序设计。
温湿度采集节点作为WiFi网络的一个节点,主要任务是测量当前环境的温湿度数据,并通过处理由液晶LCD显示当前温湿度参数。当接收到远程服务器的不同命令时,通过串口发送温湿度数据到WiFi无线收发模块,或者设置温湿度的上下限参数。温湿度采集节点和远程服务器的TCP/UDP通信链路,是由WiFi无线收发模块通过配置后自动完成的。单片机STM32F103接收远程服务器的命令是通过串口中断来实现的。根据系统原理,温湿度采集节点软件流程图如图3所示。整个软件开发在Keil uvision3集成开发环境下编写,采用模块化方法,C语言开发。
图3 节点软件程序流程图
在系统总体设计中,本文采用服务器数据采集控制模式,这是最常用的应用模式之一。各个温湿度采集节点作为客户端分布在网络的不同位置,通过无线WiFi网络将数据传送到远程服务器,并接收服务器的数据。
本文利用VC++ 6.0设计远程服务器监控系统。采用Socket应用编程接口,建立WinSock描述字Socket,完成网络底层沟通;利用TCP/IP协议在无线网络上建立数据通信。
为了解决多客户端/服务器通信问题,本文采用非阻塞模式,通过调用Select函数解决阻塞问题。另外,利用对话框实现温湿度参数的显示和数据的发送。
整个系统采用多客户端/服务器模式。服务器程序总体框图如图4所示。
图4 服务器程序总体框图
以上系统软硬件调试成功后,还需要通过相应的配置,完成整个系统的设计。
① WiFi无线收发模块配置
WiFi无线收发模块的配置主要通过串口和PC机相连,利用专用软件来实现。主要设置参数有串口通信协议、无线网络名称、加密方式、密钥、客户端和服务器端。如设置成客户端,还需设置连接的服务器的IP地址和端口号。其中串口通信协议的配置和单片机STM32F103的串口配置要一致。
② 无线路由器配置
在分布式无线WiFi网络中,无线路由器的主要作用是中继和路由。利用无线路由器的DHCP功能,可以给各个客户端自动分配一个固定的IP地址,使得每台客户端不需要单独配置一个IP地址。而系统主机即服务器需要分配一个固定的IP地址,使得每个客户端可以可靠地连接到这个固定地址即服务器。无线路由器的主要设置包括无线网络的名称、加密方式和密钥、路由器的IP地址、自动分配客户端IP地址功能及IP地址范围等。
③ 服务器IP地址配置
主控计算机还需要设置它的固定IP地址,从而把主控计算机加入到无线网络中,建立主控服务器。其中,IP地址和WiFi无线收发模块中配置的服务器IP地址要一致。
④ 试验结果
在完成上述配置及软硬件设计后,在一定的环境下对系统进行测试,其中远程服务器和无线路由器在1个房间,2个数据采集节点在另外2个隔壁房间。经测试,远程服务器完全可以搜索到2个采集节点,并准确得到2个节点的温湿度数据。另外,在室内非遮挡环境下100 m内,远程服务器也可以搜索到采集节点,并能可靠地采集节点通信,得到准确的数据和控制各采集节点。这表明系统达到了预期的设计目标。
本文利用串口(UART)转WiFi数据传送模块,设计了基于WiFi技术的分布式无线温湿度监测系统。利用该模块可以大大缩短无线WiFi网络的开发时间。利用数字数温湿度传感器DHT11采集温湿度信号,节约了成本,接口简单、抗干扰能力强。利用Socket类和Select函数设计了基于多客户端/服务器的TCP/IP通信,使得系统具有更强的扩展性。该分布式无线温湿度监测系统既可以现场观测每个节点的参数,也可以远程监测各个节点的参数。另外,对于新加入的采集节点,无需任何设置,由无线路由器自动分配IP地址并接入到远程服务器中。通过远程服务器还可以接入Internet中,实现远程监控。系统布线简单、成本较低、扩展性好,具有较强的应用前景。
[1] 冯显英.基于数字温湿度传感器SHT11的温湿度测控系统[J].自动化仪表,2006,27(1):59-61.
[2] 昊渊.多点环境温湿度监测系统[J].电子测量技术,2010,33(5):109-114.
[3] 王磊,顾德英.基于以太控制网络的温度测控系统[J].仪器仪表学报,2005,26(8):24-26.
[4] 孟庆斌,潘勇.基于CC2430的分布式无线温度测量系统设计[J].电子测量技术,2009(5):128-130.
[5] 李永忠.无线局域网WALN及其数据传输技术[J].仪器仪表学报,2004,25(4):1003-1005.
[6] 蒋峰,张凌涛,贺超英.WiFi技术在矿井远程监控系统中的应用[J].煤矿安全,2010(3):62-65.
[7] 曾欢,刘毅.嵌入式WiFi技术在温室环境监测系统中的应用[J].林业机械与木工设备,2008,36(2):449-51.
[8] 王玮.基于WiFi的输电线路状态监测数据采集器设计[J].机电信息,2011(18):143-145.
[9] 李宁.基于MDK的STM32处理器开发应用[M].北京:北京航空航天大学出版社,2008.
[10]李博轩.Visual C++6.0网络及Internet开发指南[M].北京:清华大学出版社,2002.