陈坤铭,亓相涛
(武汉商学院,湖北武汉430056)
基于ZigBee技术的智能农业大棚设计
陈坤铭,亓相涛
(武汉商学院,湖北武汉430056)
嵌入式技术、无线通讯技术等已经比较成熟,这些技术为农业大棚种植规模化提供有力支持。智能农业大棚是一种可控、反应时间短的农作物种植管理方式,可以保证农作物最大可能获得高质量高产量,同时减轻了种植管理者的负担。ZigBee技术的成熟以及ZigBee的优点,使ZigBee节点非常适合作为智能农业大棚的数据收发节点。论文运用了实证研究法,概述智能农业大棚和ZigBee的特点、优点,接着简述ZigBee节点的硬件设计、ZigBee的硬件驱动设计、传感器和执行器的连接,最后是上位机数据处理软件的设计要点说明。
智能农业;ZigBee技术;无线通讯;物联网
农业生产越来越趋向于规模集中管理,在种植过程中,有很多环节能被一些电子机械设备完成,种植管理者只需要熟悉学会操作这些电子机械设备,大大减少了人力投入,缩短了种植管理时间。智能农业大棚中放置传感器和执行器,传感器采集数据发送到上位机,上位机的数据处理软件能查看数据并操作执行器,种植管理者不再是凭感觉种植,而是根据准确数据,精确调控农作生长环境。
1.1 智能农业大棚
农业大棚种植结合嵌入式技术、无线通讯技术等,在相对可控的条件下,集中式管理,依据各种传感器采集数据,预先设置可能发生情形解决方案或对各种执行器进行操作,精确调控农作物生长环境,缩短种植管理者的反应时间和调控农作物生长环境时间,最大程度减少自然环境不可控因素对农作物产量的负影响,同时减轻人力负担。
1.2 ZigBee技术
ZigBee技术是一种近距离、低复杂、低功率、低速率、低成本的双向无线通信技术。主要用于距离短、功耗低且传输速率不高的各种电子设备之间进行数据传输以及典型的有周期性数据、间歇性数据和反应时间数据传输的应用。由于体积小,且能自动组网,所以布局十分方便;又因其强调大量的节点进行群协作,网络具有很强的自愈能力,任何一个节点的失效都不会对整体任务造成致命性影响,所以特别适合用来组建无线传感网络。[1]基于上述优点,ZigBee节点连接传感器、执行器,布置在大棚相应位置,安装搭建简单,满足数据传输要求,网络可抗性强,成本低,是作为智能农业大棚无线传输数据节点较好的选择。
P0.0对应ZigBee IA+,外接传感器模拟输出负极,P0.1对应ZigBee IA-,外接传感器模拟输出正极,P0.2对应ZigBee TXD,外接传感器RXD,引脚P0.3对应ZigBee RXD,外接传感器TXD。
3.1 ZigBee协议栈目录结构
选择的ZigBee协议栈版本是ZStack-CC2530-2.4.0-1.4.0,协议栈中的演示工程SimpleAp-p的目录结构如下图所示:
图1 ZigBee节点原理图
图2 协议栈中的演示工程SimpleApp的目录结构
3.2 开发自定义工程
3.2.1 创建Router和EndDevice工程
创建UserApp.c和UserApp.h文件,添加到App应用层目录,UserApp.c是ZigBee路由节点或终端节点处理传感器得到的数据或执行器的控制状态,UserApp.h是对UserApp.c中函数的声明。在App目录下根据具体的传感器创建添加对应的驱动文件,比如编写sht10型号温湿度传感器的驱动文件sht10.c,并编写添加对应的头文件sht10.h,最后将sapi.c和sapi.h文件添加,sapi.c和sapi.h文件中是官方提供的应用层接口函数,而Ap⁃pCommon.c和AppCommon.h是利用接口函数编写自己的任务的文件,App层目录具体结构如图3所示。在UserApp.c中,需要做的是,初始化传感器,调用驱动文件中数据采集函数,得到数据后再使用sprintf()函数,将数据转换成字符串数组,再通过zb_SendDataRequest()函数将数据发送到对等的节点,主要代码如下:
图3 Router和EndDevice自定义App应用层目录结构
AppCommon.c是由官方提供的SimpleApp工程中App层目录下SampleSensor.c改写而来的。AppCommon.c中zb_Han⁃dleOsalEvent()函数中编写系统处理事件,调用UserApp.c中编写好的ValueUpdateEventProcess()函数。在zb_HandleOsalEvent ()函数中调用ValueUpdateEventProcess()函数部分的代码如下:
再在sapi.c中的SAPI_ProcessEvent()中调用zb_HandleOsa⁃lEvent()函数,并在全局变量函数指针数组tasksArr[]中添加SA⁃PI_ProcessEvent函数名。
为了简化硬件设备线路连接和成本,在MT_UART.h文件中设置关闭硬件流控制:
#define MT_UART_DEFAULT_OVERFLOW FALSE
3.2.2 创建Coordinator工程
单独为协调器创建一个工程,App应用层目录结构如图4所示:
图4 Coordinator自定义App应用层目录结构
在Coordinator.c和Coordinator.h文件是由SimpleApp工程中SampleCollector.c和SimpleApp.h改写而来,在Coordinator.c文件中的zb_HandleOsalEvent()函数中对Coordinator进行操作,最主要的操作是从Router和EndDevice接收数据和包括串口设置以及将接收的数据通过串口发送给上位机。
使用协议栈定义的结构halUARTCfg_t来设置串口,配置如下:
uartConfig.configured=TRUE;//当端口设置正确并被读取使用时
uartConfig.baudRate=HAL_UART_BR_38400;//设置波特率为38400
uartConfig.flowControl=FALSE;//禁止硬件流
uartConfig.rx.maxBufSize=128;//最大接收缓冲区大小
uartConfig.tx.maxBufSize=128;//最大发送缓冲区大小
uartConfig.flowControlThreshold=(128/2);//Rx缓冲区到达maxRxBufSize之前剩余的字节数
uartConfig.idleTimeout=6;//空闲超时时间
uartConfig.intEnable=TRUE;//允许中断
uartConfig.callBackFunc=NodeUartCallBack;//设置串口接收回调函数
HalUARTOpen(HAL_UART_PORT_0,&uartConfig);//打开串口,完成初始化的工作
使用协议栈中提供的HalUARTWrite()函数将接收到的数据发送给上位机。
剩下的函数调用流程和Router和EndDevice的工程中函数调用过程一样。
农作物生长需求主要有适宜的光照、空气温湿度、土壤水分温度、CO2浓度等。
1)光照:光照传感器收集大棚内的光照强度,阳光太强时遮阳,执行器步进电机是带动遮阳板工作,遮挡部分阳光,一是可以减弱光照强度,二是降低大棚内的温度,避免农作物被灼伤或被高温伤害;光照太弱时,人工光照对农作物补光,执行器LED灯提供光照。
2)空气温湿度:温湿度传感器收集大棚内空气温湿度,大棚内的空气温度太高或湿度太大,需要通风,执行器风扇排出大棚内的热量和潮湿的空气;大棚内的空气温度太低或湿度太小,执行器继电器控制加热管通电加热,执行器继电器控制水泵抽水,采用喷淋的方式增加空气湿度。
3)土壤水分温度:土壤水分温度传感器收集大棚内土壤湿度和温度,大棚内的土壤水分过多,执行器继电器控制加热管加热蒸发水分,执行器风扇通风排出热量和蒸发的水蒸气,大棚内的土壤水分过少,执行器继电器控制水泵抽水,采用滴灌的方式增加土壤水分含量;土壤温度过低时,执行器继电器控制加热管通电加热,土壤温度过高时,执行器风扇通风排出多余的热量。
4)CO2浓度:CO2浓度传感器收集大棚内的CO2浓度,CO2浓度过高时,执行器风扇通风排出多余的CO2,CO2浓度过低时,人工添加干冰,增加CO2浓度。
需要用到的传感器有光照传感器、温湿度传感器、土壤水分温度传感器、CO2浓度传感器。
光照传感器、温湿度传感器、土壤水分温度传感器、CO2浓度传感器都是RS485通讯方式,传感器引出MD8公头,ZigBee节点采用MD8母头,便于更换传感器或ZigBee节点。
ZigBee采用的MD8母头,按照图5的编号,1是提供12V电源,2是提供5V电源,3是提供3.3V电源,4是接地GND,5是模拟输出正极IA+,接外接设备的模拟输出负极,6是模拟输出负极IA-,接外接设备模拟输出正极,7是TXD接ZigBee数据发送引脚,接外接设备RXD接收数据引线,8是RXD接ZigBee数据接收引脚,接外接设备TXD数据发送引线。
图5 MD8公母头示意图
表1 ZigBee MD8母头接口对应功能
需要的执行器有步进电机、LED灯、风扇、继电器、水泵。这些执行器都是I/O控制停止或工作。执行器也是采用MD8公头,与ZigBee的MD8母头对应连接。
采用C#语言开发上位机数据处理软件,开发环境为visual studio 2015。得到数据后以直观的形式展现给种植管理者,并且可以进行相应的操作。
数据展示功能:将Coordinator接收到的数据解析,以直观的形式展现给种植管理者,包括以数字展示、图表展示。
阀值设置功能:给大棚内的光照、空气温湿度、土壤水分温度、CO2浓度,预先设置相应的最大和最小值,超出范围后及时推送信息给种植管理者,种植管理者进而控制执行器调节大棚的光照、空气温湿度、土壤水分温度、CO2浓度。
执行器控制功能:在上位机的数据处理软件上,能看到执行器的停止或工作的两种状态,而且能用简单的操作打开或关闭执行器,对于步进电机,还能控制转动的角度。
历史记录功能:记录以往的数据、时间和对应地操作,需要时能导出记录。
[1]姜仲,刘丹.ZigBee技术与实训教程——基于CC2530的无线传感网技术[M].北京:清华大学出版社,2013.
Design of Intelligent Agriculture Greenhouses Based on ZigBee Technology
CHEN Kun-ming,QI Xian-tao
(Wuhan Business University,Wuhan 430056,China)
Embedded technology,wireless communication technology has been relatively mature,these technologies for the culti⁃vation of agricultural greenhouses to provide strong support.Intelligent agriculture greenhouses are a controlled,short-response crop management approach that ensures that crops are most likely to receive high quality and high yields while reducing the bur⁃den on growers.ZigBee technology and the advantages of ZigBee ZigBee node is very suitable as a smart agricultural greenhouse data transceiver node.The paper introduces the hardware design of ZigBee node,the hardware design of ZigBee,the connection of sensor and actuator,and finally the design of the host computer data processing software.The paper introduces the design of ZigBee node,the hardware design of ZigBee,the connection of sensor and actuator.
intelligent agriculture;ZigBee technology;wireless communication;internet of things
c中改写SAPI_
ataIndication()函数,接收从Router和EndDevice发送的数据。
TP393
A
1009-3044(2017)21-0176-03
2017-06-25
陈坤铭(1995—)、男,湖北松滋人,武汉商学院2014级物联网应用技术专业,研究方向为嵌入式软件开发;亓相涛(1985—),男,湖北武汉人,讲师,研究方向为嵌入式软件开发。