基于ZigBee的环境参数远程无线监控系统设计

2017-08-30 00:01刘岳鹏
计算机测量与控制 2017年7期
关键词:环境参数路由器串口

刘岳鹏,蔡 睿,周 磊

(北京航天试验技术研究所,北京 100074)

基于ZigBee的环境参数远程无线监控系统设计

刘岳鹏,蔡 睿,周 磊

(北京航天试验技术研究所,北京 100074)

针对室内环境参数的远程监控问题,提出一种基于ZigBee技术与手机进行实时数据交换的远程无线监控系统:传感器节点采集环境中的温湿度、光强和烟雾浓度数据,通过ZigBee无线网络将数据传输到中心协调器;协调器与WIFI模块通过串口连接,将数据发送到互联网;另外,设计Android手机软件对监测数据进行获取,并发出对参数进行调节的指令,从而完成远程的无线监控任务;经过测试,通过手机可以在任何有网络的地方实时对环境参数进行采集和控制,且各节点性能稳定,满足长期监测的需求。

ZigBee; 远程无线监控; Android手机; 环境参数

0 引言

随着近年来计算机技术和通信技术的不断发展,人们对于生活环境质量的要求越来越高,使得智能家居的概念得到了迅速普及,通过智能化的传感器网络对环境进行实时监控,使人可以方便、快捷地了解环境状态,并随心所欲地完成主动调节与控制[1]。目前,主要的近距离无线通信技术主要包括WIFI、UWB、红外、蓝牙和ZigBee等[2],并根据各自的特点广泛应用于不同领域中。其中,ZigBee技术主要工作在2.4 GHz频段,因其具有低成本、低功耗、低复杂度和组网灵活、易扩展等优势,在无线传感器网络监测领域中占据了一席之地[3]。但ZigBee技术的传输距离有限,仅能满足短距离通信需求,实现在传感器布置范围内的监控任务。当需要在无线传感器网络覆盖范围之外对环境参数进行监控时,通常采用移动运营商提供的GSM或GPRS网络处理远程通信问题,并通过额外终端运行软件来完成监测工作。现阶段的智能手机作为日常生活中必备随身物品,已不再是单纯的移动电话,而相当于可以处理各类工作、娱乐事物的掌上电脑。因此,本文提出一种采用ZigBee技术与Android手机结合进行远程通信的方法,实现对环境参数的监测与控制,可保证操作人员随时随地对监测结果进行查询和远程控制。

1 系统设计思路

本文提出的环境参数远程监控系统的核心是解决数据传输的问题,主要包括短距离无线传感器网络和远程通信网络两部分。无线传感器网络部分采用ZigBee技术,通过搭建无线通信网络实现对温湿度、光强和烟雾浓度等环境参数信息的采集与传输。远程通信网络由WIFI模块、路由器和手机三部分构成,采用TCP协议完成数据传输。ZigBee传感器网络的中心协调器将传感器节点采集到的数据汇总后通过串口与WIFI模块进行连接;WIFI模块与无线路由器之间建立无线传输通道,最终通过路由器将数据发送到互联网。其中,WIFI模块作为TCP网络通信的服务器。编写Android手机上的监控软件,作为网络通信的客户端,从互联网获取数据进行环境监测,并根据需要发出控制指令,ZigBee节点接收到指令后通过红外射频模块和执行元件控制空调、电灯等的开关,从而完成远程的实时监控要求,系统组成如图1所示。

图1 系统组成框图

2 系统硬件设计

本系统的硬件部分包括ZigBee无线传感器网络节点、WIFI模块、无线路由器和Android手机4个部分。

2.1 ZigBee无线传感器网络节点

ZigBee无线传感器网络实现对环境数据的实时采集、传输和控制,主要包括1个网络协调器节点和若干传感器节点。其中,网络协调器节点是ZigBee网络的中心,也是第一个启动的设备,当协调器启动建立无线局域网后,等待传感器节点加入网络;传感器节点需等待网络稳定后启动,并作为从设备加入网络,从而构成星型拓扑结构的网络通路。无线网络构建后,传感器节点采集环境中的温湿度、光强和烟雾浓度等参数,并发送给协调器进行汇总,并最终由协调器通过RS232串口发送给WIFI模块;同时,协调器还可以接收WIFI模块下发的控制指令,并指挥传感器节点通过继电器和红外射频模块完成对环境参数的控制功能。

ZigBee无线传感器网络节点的电路设计采用美国TI公司的CC2530芯片作为网络搭建和数据处理的核心,电路包括电源、串口和传感器的输入接口等模块,协调器节点和传感器节点的结构框图如图2所示。其中,协调器节点的串口模块采用CH340G芯片和USB接口实现,并通过12864液晶屏对网络状态和汇总的数据进行实时的显示。传感器节点的数据采集部分选用DHT11传感器采集温湿度、光敏电阻采集光照强度、3MQ-2传感器监测环境中的烟雾浓度,并预留0~5 V模拟输入通道和继电器控制模块;同时,通过红外模块和继电器等作为执行元件负责对空调、电灯和风扇等的控制工作。

图2 ZigBee节点结构框图

2.2 WIFI模块

WIFI模块负责转发ZigBee网络协调器和手机终端之间的数据,解决无线传感器网络与互联网之间的数据通信问题。本系统中选用的WIFI模块为ALIENTEK公司推出的ATK-RM04高性能UART-ETH-WIFI模块。其通过RS232串口与ZigBee网络协调器节点通信,内置 TCP/IP协议栈,具有多种工作模式,可适应各种不同的应用需求,能够实现用户串口、以太网、无线网(WIFI)3个接口之间的转换。本文设计的系统在使用时,为其提供12 V 1 A的电源,首先将模块恢复为出厂默认设置,再通过串口线将模块与计算机连接,并在专用的配置软件中,将模块的工作模式设置为串口转WIFI(STA)模式,通过WIFI信号搜索并连接到外部路由器建立的无线网络中。同时,将模块的工作方式配置为TCP服务器,并指定服务器的侦听端口号(本系统中为4567),从而实现将协调器串口和无线路由器之间的数据进行实时转发。待WIFI模块设置完毕后,将其与计算机断开连接,并通过串口与ZigBee网络协调器接通。

2.3 无线路由器

无线路由器是实现系统远程控制的关键环节,本文的系统中通过计算机登陆路由器的配置页面,对系统进行配置。首先,路由器要具备连接到互联网的能力,并为路由器配置无线局域网,根据2.2节中所述配置方法将WIFI模块连接到网络中;其次,在路由器中为WIFI模块分配局域网静态IP地址和端口号,其中端口号应与WIFI模块配置的端口号相同,设置为4567。当路由器在不断电的情况下会使用不变的公网IP地址,此时手机客户端软件可以通过该公网IP地址与WIFI模块实现通信。但实际使用过程中,不可避免的会发生路由器断电重启问题,此时的公网IP地址会发生变化,这样手机端就无法与WIFI模块通信。为了解决这一问题,可以考虑两种方案:第一种为申请固定IP地址,但这会承担额外的费用,增加开销,提高成本,一般在企业中才会用到,个人用户通常不采用这种方案。因此,通常采用第二种方法,通过动态域名解析工具建立域名与IP地址的映射关系,现在市面上的动态域名解析工具很多,且有大部分可以提供免费使用。由于本文的系统中采用WIFI模块作为TCP服务器,而动态域名解析工具需要运行在电脑平台上,因此,需要选择具备动态域名解析功能的路由器才能实现功能,现在市面上常用的TP-LINK、艾泰等知名品牌均提供这一功能。本文通过路由器系统中自带的花生壳动态域名解析工具,为路由器申请创建一个免费的域名,无论路由器的公网IP地址如何变化,客户端都可以通过域名找到网络中的路由器[4]。工作时,路由器将WIFI模块发送来数据转发到互联网中的手机终端。同时也将手机端的控制指令发送给ZigBee网络中的控制模块,从而实现远程控制功能。

2.4 智能手机终端

智能手机的普及给人的生活带来了极大的便利,且成为了人们日常生活的必需品。因此,本系统中采用常规的Android智能手机作为监控的终端设备设计监控平台,要求Android操作系统的版本号在4.0以上,且能够通过GPRS或WIFI进行上网,本文通过设计专用软件为操作人员提供对环境参数进行实时监测和控制的功能。

3 系统软件设计

本系统涉及的软件开发环节包括:针对CC2530单片机的ZigBee无线传感器网络搭建和数据采集与传输程序编写,以及针对Android手机的监控软件开发。

3.1 ZigBee无线传感器网络搭建

本文讨论的ZigBee无线通信程序在IAR Embedded workbench开发环境下采用C语言编写,并以TI公司提供的Z-Stack协议栈为基础进行开发[5]。Z-Stack协议栈提供了名为操作系统抽象层(Operating System Abstraction Layer,OSAL)的调度程序,包含了无线传感器网络建立时,物理层、MAC层和网络层等的全部底层驱动代码,用户只需在应用层通过调用API接口库中的函数来开发自己的应用程序即可,操作方便,大大缩短了开发所需时间。Z-Stack协议栈执行轮转查询式操作系统,根据产生的任务事件的优先级,调用相应的处理函数。

无线传感器网络通信程序包括协调器程序和传感器程序。其中,协调器节点是网络中第一个启动的设备,上电后通过调用Z-Stack协议栈的库函数对IO、时钟、中断等硬件进行初始化,并配置网络参数,允许其他从设备加入该网络,并为加入网络的设备自动分配16位的网络地址[6]。传感器节点需等待协调器成功创建网络后再启动,并请求加入网络,接收到协调器的响应后即可创建网络传输通路,为数据传输做好准备。Z-Stack协议栈已经为用户提供了大部分程序代码,开发时仅需根据实际设计的硬件电路对LED指示灯、LCD显示屏、按键等进行定义,并对ZigBee网络的数据传输信道和地址分配机制等参数进行设定即可,其他工作都由协议栈自动实现。

3.2 ZigBee数据采集与传输

传感器节点的程序负责对环境中的温湿度、光照强度和烟雾浓度等参数进行采集。其中,温湿度测量采用DHT11数字传感器,其包含一个电阻式感湿元件和NTC测温元件,采用单线制总线接口与单片机连接通信,具备响应快、抗干扰能力强、相加比高、体积小和低功耗等优势[7]。使用时,通过CC2530单片机的P10口发送时序指令来控制数据的读取,平均4 ms即可完成一次通讯。光敏电阻和3MQ-2烟雾传感器均输出模拟电压量,与0-5 V模拟信号的采集方式相同,因此通过CC2530单片机的P0口可实现对模拟量的直接采集,并通过芯片内部的12位ADC转换为数字量。

ZigBee数据采集和传输的程序需在Z-Stack协议栈的App层进行编写。在传感器节点的程序中,设定采集环境参数的周期为30s,依次调用各传感器采集数据的函数,并按照特定的数据包格式对测量的温湿度、光照强度和烟雾浓度的数据进行打包汇总,并添加传感器节点编号信息,形成一条字符串数据包。最后通过Z-Stack协议栈中的AF_DataRequest()数据发送函数以单播方式向协调器发送数据。

DataZB[0] = Device_ID; //设备编号

DHT11_Read(); //读取DHT11

LightLevel_Read(); //读取光敏

Gas_Read(); //读取烟雾

AF_DataRequest( //数据发送函数

&GenericApp_DstAddr, //目的地址

&GenericApp_epDesc, //节点描述符

GENERICAPP_CLUSTERID, //命令ID

17, //发送的数据长度

(byte *)&DataZB, //发送的数据

&GenericApp_TransID, //发送序号指针

AF_DISCV_ROUTE,

AF_DEFAULT_RADIUS )

协调器节点程序运行时不断轮询查看任务列表,当发现传输信道上有数据传来时,通过osal_msg_receive()数据接收函数接收传感器节点发来的数据包,并将该数据封装成一个消息,放入消息队列。如果消息的ID为AF_INCOMING_MSG_CMD,则进行相应的数据处理,按数据包格式对环境参数信息进行解析,并在12864液晶显示屏上实时显示环境参数信息,同时将原始数据包通过串口直接转发到WIFI模块。WIFI模块根据第2节的配置方式,可实现串口与路由器之间的数据转发,从而实现与互联网中的手机进行通信。结合无线传感器网络创建过程,协调器节点和传感器节点的程序流程如图3所示。

3.3 Android手机监控软件

Android手机上的监控软件在Eclipse开发环境下设计,其可以实现对Android工程资源的有效管理,代码通过Java语言进行编写,并通过Android SDK工具将程序编译为.Apk安装包[8]。本文中的手机监控软件设计主要是对UI界面的设计和网络通信程序的编写。

本文中的监控软件界面布局在使用中不会产生变化,因此采用xml布局文件来控制Android程序中的UI界面。设计时,使用res/layout资源目录下的xml文件进行描述,同时在Eclipse开发环境中利用SDK提供的布局管理工具使界面设计变得十分灵活,通过图形化的控件布局,可以自动生成描述布局的xml代码文件。编译后R.java会自动收录该布局资源,在Android工程的Activity类中使用下述Java代码就可以显示布局内容。

setContentView(R.layout.main);

程序的网络通信采用Socket进行实现,手机端的软件作为TCP客户端,需要将花生壳提供的域名通过InetAddress.

getByName()方法解析为无线路由器的公网IP地址,并在代码中通过Socket(“IP地址”,4567)指定无线路由器的公网IP地址和为WIFI模块配置的端口号,待WIFI模块的服务器启动后,手机端通过TCP协议与服务器建立连接,通过输入输出流进行数据的发送和接收,最终实现手机端软件与ZigBee无线传感器网络之间的数据交换。手机监控软件作为终端控制中心,还具有数据的存储、查询和发出控制指令等功能,监控软件的程序流程如图4所示。

图4 上位机监测软件程序流程

4 系统测试

经过前期各模块功能的分别开发后,对整个系统进行综合测试。采用一个协调器节点和3个传感器节点组成无线传感器网络,在传感器节点上设置温湿度、光强和烟雾传感器,协调器采用外部5V电源供电,传感器节点采用3节5号电池供电。此时启动协调器,待网络指示灯稳定后,依次打开3个传感器节点,协调器上的LCD可以实时显示3个传感器节点的环境参数信息,并以30s为周期更新数据。

确保无线传感器网络工作正常后,将协调器与设置好的WIFI模块通过RS232串口进行连接,并将WIFI模块通过无线方式加入路由器的无线网络中,其中,WIFI模块和路由器按照上文中的方式进行配置,路由器确保可以连接到互联网。在Android手机上安装监控软件,到室外进行查看,并确保手机可以访问GPRS无线网络。此时,打开手机上的监控软件,可以实时显示环境中的参数信息,通过软件上的控件下发指令,可有效实现对电灯、风扇和空调等的启动和关闭。随后进行了4个小时的持续监测任务,系统未发生问题,并将数据存储到了手机的内存卡中。若考虑长期监测任务,可对传感器节点的参数采样速率进行调整,并使电路在空闲时进入睡眠模式,并通过定时器唤醒,从而实现长期的监控任务。

5 结论

通过上述测试,本文设计的远程环境无线监控系统,能够通过ZigBee无线传感器网络对环境参数进行实时、有效的采集和稳定、可靠的传输,并借助WIFI模块和路由器实现远程监控的目的;通过手机端的监控软件可在任何有网络连接的位置查看监测结果和下发控制指令,完成对环境状态的反馈控制。该系统的功能可使人对智能家居的管理和控制变得更加灵活和方便。

[1] 赵 丽.基于ZigBee技术的智能家居系统研究与设计[D].南京:南京邮电大学,2011.

[2] 许 毅,陈立家,甘浪雄,等.无线传感器网络技术原理及应用[M].北京:清华大学出版社,2015.

[3] 高 键,方 滨,尹金玉.ZigBee无线通信网络节点设计与组网实现[J].计算机测量与控制,2008,16(12):1912-1914.

[4] 高德欣,刘 芳,张如耀.基于Android的轮胎模具仓库温湿度无线监控系统设计[J].自动化与仪表,2016,31(4):30-33.

[5] 朱 琎,杨占勇.基于CC2530的无线振动监测传感器节点设计[J].仪表技术与传感器,2012,44(8):56-58,83.

[6] 王玉洁,桑永胜.一种基于ZigBee物联网技术的校园安防解决方案[J].现代计算机,2012,29(3):33-38.

[7] 朱向庆,陈志雄.远程分布式温湿度实时监测系统设计[J].计算机测量与控制,2010,18(1):55-57+63.

[8] 尹士龙.基于ZigBee网络的手机位置共享系统设计[D].成都:电子科技大学,2009.

Design of Remote Wireless Monitoring System for Environmental Parameters Based on ZigBee

Liu Yuepeng,Cai Rui,Zhou Lei

(Beijing Institute of Aerospace Testing Technology, Beijing 100074, China)

In view of remote-monitoring problem for indoor environmental parameters, a remote wireless-monitoring system based on ZigBee technology and mobile phone is proposed, which is used to realize the real-time data exchange. The sensor nodes collect the temperature, humidity, light intensity and smoke concentration, and transmit the data to the central coordinator by the ZigBee wireless network. The coordinator is connected with the WIFI module through the serial port, by which, the data is sent to the Internet. In addition, an Android mobile phone software is designed for the data acquisition, and issues instructions for adjusting parameters to complete the remote wireless monitoring task. As the test results show, the mobile phone is able to acquire and control the real-time environmental parameters in any place where the network is available. At the same time, the performance of nodes work stably and meet the need of long-term monitoring.

ZigBee; remote wireless monitoring; Android mobile phone; environmental parameters

2017-01-09;

2017-02-27。

装备预先研究项目(617010604)。

刘岳鹏(1990-),男,北京市人,硕士研究生,助理工程师,主要从事传感器与通信技术方向的研究。

1671-4598(2017)07-0087-03

10.16526/j.cnki.11-4762/tp.2017.07.022

TP277

A

猜你喜欢
环境参数路由器串口
买千兆路由器看接口参数
维持生命
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
路由器每天都要关
路由器每天都要关
浅谈AB PLC串口跟RFID传感器的通讯应用
基于云平台的智能家居环境参数协同监控系统设计
列车动力学模型时变环境参数自适应辨识
一种食用菌大棚环境参数测控系统设计
船舶电子设备串口数据的软件共享方法