基于ZigBee/WiFi的农业网关设计
2016-09-13侯文博
李 哲, 侯文博
(西安邮电大学 电子工程学院, 陕西 西安 710121)
基于ZigBee/WiFi的农业网关设计
李哲, 侯文博
(西安邮电大学 电子工程学院, 陕西 西安 710121)
针对精准农业监测系统中终端设备通过WiFi接入到无线传感网络的需求,设计ZigBee/WiFi农业网关。该网关通过ZigBee协调器传输终端节点采集的温湿度和光照信息;以LPC1768为主控制器,WiFi模块为信息转换器,实现ZigBee信息到WiFi信息的相互转换;将WiFi模块配置指令写入主控制器,省去使用网关前的配置操作。定义ZigBee数据包,设计ZigBee协调器串口和无线数据接收、主控制器双串口和配置WiFi模块程序等。测试结果表明,该网关能够满足各终端设备WiFi接入,且传输转换信息稳定。
精准农业;网关;无线传感网络;WiFi模块;ZigBee
精准农业[1]是当今世界农业发展的新潮流,是由信息技术支持的根据空间变异,定位、定时、定量地实施一整套现代化农事操作技术与管理的系统。农业监测系统则是精准农业的一个重要组成部分,其可分为感知层、传输层和应用层。感知层采集环境信息,应用层实现监测功能,而传输层是通过网关实现无线传感网络信息与互联网信息的转换和传输。
目前,现有网关主要分为3类:一是基于ZigBee/以太网网关[2-3],该类网关传输相对可靠,抗干扰能力强,常应用在安全性较高的监测领域,但其布线麻烦,成本较高;二是基于ZigBee/3G网关[4],该类网关可以在互联网没有接入的山区等地使用,但传输速率有限,实时性差;三是基于ZigBee/WiFi的网关[5-9],该类网关速度快,接入网络方便,常应用在环境监测系统中,但设计复杂和成本较高。在精准农业监测系统中,已有的ZigBee/WiFi农业网关需要配置后才能使用,不方便用户操作[10]。本文拟将配置指令写入主控制器,根据WiFi模块两种不同工作模式,完成终端设备WiFi接入无线传感网络的网关设计。
1 精准农业监测系统
精准农业监测系统[11]主要由无线传感网络、ZigBee/WiFi网关、IP摄像头、路由器、本地监控端和远程监控端6部分组成。监测系统总体结构如图1所示。
图1 农业监测系统总体结构
2 网关硬件设计
2.1主控制器
主控制器选用基于Cortex-M3内核的LPC1768芯片。此款芯片可在高至100 MHz的频率下运行,512字节的Flash存储;具有符合16C550工业标准的4个异步串行口UART,16字节收发 FIFO,内置波特率发生器;能够满足ZigBee/WiFi农业网关设计的需求。
2.2网关硬件结构
ZigBee/WiFi网关包括主控制器LPC1768、ESP8266WiFi模块和 ZigBee协调器组成,硬件结构如图2所示。
图2 网关硬件结构
2.2.1ZigBee协调器
ZigBee协调器由核心处理模块和智能主板组成,传输终端节点采集的温湿度和光照信息。核心模块处理器采用ZigBee片上射频芯片CC2530F256,结合RF收发器和增强型8 051 CPU,具有多种运行模式,满足低功耗系统的要求。
在智能主板上添加各采集、通信模块和核心处理模块,当核心处理模块下载相应的程序时,可将此板作为协调器节点。智能主板上RS232模块,可将TTL电平的uart信号转换成RS232信号。通过RS232串口线可以将ZigBee协调器与主控制器RS232接口相连,配合程序,实现主控制器到协调器之间信息的传输。
2.2.2WiFi模块
WiFi模块选用ESP8266模块。主控制器通过串口发送AT指令来实现WiFi模块连接、网络通信等。网络通信有客户端服务器模式(C/S)和浏览器服务器模式(B/S)两种模式,此模块支持C/S模式。WiFi模块既可作为热点(AP)也可作为端点(Station),通过发送特定AT指令配置成服务器或者客户端,实现端点客户端组合和热点服务器组合。在系统中主要使用的AT指令如下。
(1) 重启模块
发送命令: AT+RST
模块响应:OK和模块版本等信息
(2) 设置模块模式
发送命令: AT+CWMOD=1
模块响应:OK
指令:AT+CWMODE=
(3) 查看当前无线路由器列表
发送命令:AT+CWLAP
模块响应:如果正确终端返回AP列表,则
+ CWLAP:
(
如果错误:返回ERROR
(4) 加入当前无线网络
发送命令:AT+CWJAP="wifihwb","1234567890"
模块响应:OK
(5) 开启多连接模式
发送命令:AT+CIPMUX=1
模块响应:OK
(6) 建立TCP连接
发送命令:AT+CIPSTART=3,"TCP","192.168.191.2",8000
模块响应:如果格式正确且连接成功,返回 OK和Linked,否则返回 ERROR ,如果连接已经存在,返回 ALREAY CONNECT 。
其中3是连接的ID号,TCP是连接类型,192.168.191.2和8000分别是连接到同一路由器上的TCP服务器的IP地址和端口号。
(7) 向服务器或客户端发送数据
发送命令:AT+CIPSEND=3,29
模块响应:收到此命令后先换行返回“>”,然后开始接收串口数据,当数据长度满29(可变,最多为2048)时才发送数据。
如果未建立连接或连接被断开,返回ERROR 如果数据发送成功,返回 SEND OK。
(8) 配置AP参数
发送命令:AT+CWSAP="HWB","1234567890",1,3
模块响应:OK
指令说明:原指令格式为
AT+ CWSAP=
其中
(9) 创建服务器
发送命令:AT+CIPSERVER=1,8888
模块响应:OK
指令原型:AT+CIPSERVER=
指令说明:
(10) 设置服务器超时时间
发送命令:AT+CIPSTO=2880
模块响应:OK
指令原型:AT+CIPSTO=
指令说明:
3 网关软件设计
网关的软件设计由ZigBee协调器程序设计和主控制器程序设计组成。
3.1ZigBee协调器程序设计
3.1.1ZigBee协调器程序设计
定义ZigBee数据包,其结构由头“**”、设备类型“ROU”或“END”、节点网络地址、父节点网络地址、采集数据、尾“#”组成[12]。ZigBee协调器程序是在IAR下开发,主要包括各节点的初始化;终端节点的入网请求、数据采集、命令解析、组包及其发送;协调器节点的网络建立、信息解析与组包和串口发送接收等。协调器程序设计流程如图3所示。
图3 ZigBee协调器程序流程
ZigBee协调器传输程序包括串口和无线接收程序。其中,串口部分程序如下。
uartConfig.configured = TRUE;
uartConfig.baudRate=SERIAL_APP_BAUD;//波特率
//uartConfig.flowControl = TRUE; //流量控制
uartConfig.flowControl = FALSE;
uartConfig.callBackFunc = rxCB ;//注册串口接收函数
HalUARTOpen (SERIAL_APP_PORT, &uartConfig); //打开串口
HalUARTWrite(SERIAL_APP_PORT,(uint8*)
&temphumiLig, sizeof(temphumiLig));//串口发送函数
无线数据接收程序由无线接收函数完成,函数原型如下。
static void GenericApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )
{ switch ( pkt->clusterId )
{case GENERICAPP_CLUSTERID:
osal_memcpy(&temphumiLig,pkt->cmd.Data,sizeof(temphumiLig));//将收到的数据拷贝到缓冲区buffer中
break;}}
3.1.2主控制器程序设计
主控制器程序用C语言在Keil MDK下开发,包括目标板及引脚的初始化、串口0和3的初始化、串口中断服务函数、发送常量字符串函数和WiFi模块的初始化函数等的定义。主控制其程序流程如图4所示。
图4 主控制器程序流程
设计WiFi模块的初始化程序时,定义AT指令为字符串常量形式;定义检测函数判断发送给WiFi模块指令后返回信息是否正确;定义准确的延时函数完成WiFi模块的初始化和不同串口的相互收发转换;同时定义指示灯和蜂鸣器程序,提醒用户连接和指示程序运行情况。
图5和图6分别为WiFi模块配置成Station客户端组合和配置成AP服务器组合的初始化细节流程。
图5 WiFi模块设置Station客户端初始化
图6 WiFi模块设置AP服务器初始化
4 网关测试
网关测试由无线传感网络协调器节点测试和网关通信测试组成。
4.1无线传感网络协调器节点测试
无线传感网络协调器测试环境搭建:将RS232串口转USB连接线,一端连接到协调器RS232接口,一端与装有串口调试助手工具的电脑USB口相连,并装好USB转串口驱动。路由器节点和终端节点采集信息如图7所示。
图7 采集信息
由图7可知,ZigBee协调器将路由器节点和终端节点采集的温湿度和光照信息,通过串口调试助手工具显示。网络号为796F的端点采集的温湿度分别为17℃和36%,光照强度是874 Lx;网络号为0001的路由器节点采集的温湿度分别为20℃和35%,光照强度是870Lx。测试结果表明,通过无线传感网络传输采集信息稳定。
4.2网关通信测试
网关通信测试环境:将节点和网关所需硬件全部连接好后上电,同时打开Android手机装的网络调试助手应用,并开启手机WiFi,或者打开电脑上的网络调试助手并开启WiFi,完成组合配置,连接WiFi模块成功后即可测试。WiFi模块被配置为Station客户端组合,测试如图8所示。
图8 手机服务器测试
将手机上网络调试助手设置为服务器,配置为Station客户端的WiFi模块主动通过路由器连接服务器,连接成功后,通过命令便可交互。从图8可知,终端发送“jiedian2cmd”时,手机接收到路由器节点的采集信息包是“**ROU00010000T20CH35%L0870Lx”;当发送“jiedian1cmd”时,手机接收到终端节点的采集信息包是“**END796F0000T17CH36%L0874Lx”。
WiFi模块被配置为AP服务器组合,测试如图9所示。
图9 手机客户端测试
将WiFi模块配置为AP服务器组合之后,打开手机WiFi连接WiFi模块AP,用网络调试助手开启客户端连接服务器,连接成功通过命令便可交互。操作过程与WiFi模块被配置为Station客户端组合相同,显示结果相似。电脑终端分别连接WiFi模块两种组合的测试,方法和结果都与手机测试相同。
测试结果表明,该网关传输转换信息稳定,并且改善了WiFi模块使用前要配置的问题,用户只需在终端开启WiFi并打开应用,连接成功后便可交互;同时,有两种组合方式可供用户连接选择。
5 结语
以LPC1768为主控制器,设计基于ZigBee/WiFi的农业网关,完成了ZigBee采集数据到WiFi数据的转换和传输,并且无需用户配置WiFi模块,能够采用两种方法接入无线传感网络。测试结果表明,该网关传输转换信息稳定,能够满足各终端设备WiFi接入。
[1]IVANOV S,BHARGAVA K,DONNELLY W.Precision Farming:Sensor Analytics[J/OL]. The IEEE Computer Society, 2015(15):1541-1672[2016-03-01].http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=7156034.DOI:10.1109/MIS.2015.67.
[2]王文庆,唐轩,亢红波.基于Zigbe的矿井监测系统中以太网网关设计[J/OL].西安邮电大学报,2015,20(3):113-119[2016-03-01].http://mall.cnki.net/magazine/article/XAYD201503022.htm.DOI:10.13682/j.issn.2095-6533.2015.03.021.
[3]王一棋,何丽莉,胡成全,等.基于ZigBee和Internet的无线智能家居网关系统[J/OL].吉林大学学报(理学版),2015,53(2):302-306[2016-03-02].http://mall.cnki.net/magazine/article/JLDX201502029.htm.DOI:10.13413/j.cnki.jdxblxb. 2015.02.28.
[4]赵小强,雷雪,冯勋. 基于Zigbee/3G的物联网网关系统[J/OL].西安邮电大学学报,2015,20(1):24-29[2016-03-02].http://mall.cnki.net/magazine/article/XAYD201501005.htm. DOI:10.13682/ j. issn. 2095-6533. 2015.01.005.
[5]仲伟波,王婷婷,张泽武.基于ZigBee与WiFi的环境智能传感系统研制[J/OL].农机化研究,2012,12(14):186-189[2016-03-03].http://mall.cnki.net/magazine/article/NJYJ2012045.htm.DOI:10.13427/j.cnki.njyi.2012.12.014.
[6]籍锦程,王峰,李健伟,等.基于ZigBee-WiFi混合网络的煤矿井下多参数传感器系统设计[J/OL].中国煤炭,2015,41(5):82-85[2016-03-03]. http://dx.chinadoi.cn/10.3969/j.issn.1006-530X.2015.05.022.
[7]王丽娜,黄友锐,唐超礼,等.基于zigbee+wifi的井下监控系统设计和实现[J/OL].煤炭工程,2014,46(6):138-140[2016-03-05].http://mall.cnki.net/magazine/article/MKSJ201406047.htm.DOI:10.11799/ j. ce201406046.
[8]曹庆年,刘畅,孟开元.基于ZigBee和WiFi的油田无线监测系统设计[J/OL].西安石油大学学报,2015,30(3):100-104[2016-02-25]. http://dx.chinadoi.cn/10.3969/j.issn.1673-064X.2015.03.018.
[9] 姜新华,张丽娜.基于Zigbee与WiFi相结合的温室环境监测系统设计[J/OL]. 内蒙古大学学报(自然科学版),2011,42(6):699-702[2016-03-01]. http://dx.chinadoi.cn/10.3969/j.issn.1000-1638.2011.06.019.
[10] 仲伟波,李忠梅,石婕,等.一种用于设施农业的Zigbee-WiFi网关研制[J/OL].计算机科学,2014,41(6A):484-486[2016-03-01].http://mall.cnki.net/magazine/article/JSJA2014S1120.htm.
[11] 朱俊光,高健,田俊,等.基于物联网技术的远程温湿度监测系统[J/OL].实验技术与管理,2014(11):94-97[2016-03-01]. http://dx.chinadoi.cn/10.3969/j.issn.1002-4956.2014.11.026.
[12] 王小强,欧阳骏,黄宁淋.Zigbee无线传感器网络设计与实现[M].北京:化学工业出版社,2012:199-212 .
[责任编辑:祝剑]
Design of agricultural gateway based on ZigBee/WiFi
LI Zhe,HOU Wenbo
(School of Electronic Engineering, Xi’an University of Posts and Telecommunications, Xi’an 710121, China)
According to the demand for the terminal equipment of precision agriculture monitoring system to access the wireless sensor network through the WiFi, ZigBee/WiFi agricultural gateway is designed. This gateway uses the ZigBee coordinated transmission terminal nodes to collect data of temperature, humidity and illumination information. With lpc1768 as its main controller and WiFi module as the information converter, the gateway can achieve the conversion between ZigBee information and WiFi information. WiFi module configuration directives are written into the main controller to eliminate the use of network before the configuration operation. The gateway also defines the ZigBee data packet, designs ZigBee coordinator serial port and wireless data reception and the main controller dual serial port, and also configures the WiFi module program, etc. Test results show that the gateway can meet the WiFi access of each terminal device, and the transmission and conversion information is stable.
intelligent agriculture, gateway, wireless sensor network,WiFi module, ZigBee
10.13682/j.issn.2095-6533.2016.04.019
2016-04-04
国家自然科学基金重点资助项目(61136002);国家863计划资助项目(2013AA014504);陕西省自然科学基金资助项目(2014JQ8332)
李哲(1963-),男,教授,从事嵌入式与通信系统研究。E-mail:xytx03@xupt.edu.cn
侯文博(1991-),男,硕士研究生,研究方向为嵌入式系统、信息采集处理。E-mail:582904296@qq.com
TP212
A
2095-6533(2016)04-0096-06