基于ZigBee的智慧农田管理系统研究
2019-12-11叶琪琳卢爱红冯蓉珍
叶琪琳,卢爱红,冯蓉珍
(苏州经贸职业技术学院,苏州215009)
0 引言
传统农业的信息采集仪器和仪表需要专业技术人员操作,设备购置、安装、使用、维护和管理成本高,信息处理数理统计方法复杂,效率低,自动控制措施匮乏或应用成本高。现代农业大力发展智慧农业,以农业物联网为载体,依托部署在农业生产现场的各种传感节点感知数据,利用无线通信网络感知农业生产环境的现场数据,在主控制器端根据采集的实时数据自动进行预警、分析和决策,为农业生产提供精准化种植、可视化管理、智能化决策。智慧农业的典型应用是智慧农田管理系统,系统需要对动植物生命体本质感知,对农业生产环境(空气、土壤、水质等)在线监测,对突发事件的自动处理能力,和对基于农业生产环境信息的农业装备的调度能力等。智慧农田管理系统的传感节点数量庞大,人工成本太大,可利用ZigBee传感网络的优势,在系统前端采集数据,再通过ARM主控制器收集各个传感节点的数据,并做出统计分析和处理。ZigBee无线传感网络因其自组网的稳定性、功耗低、数据速率低等特点,适用于流量要求不高的传感网络,在智慧农田管理系统的前端采集部分取得了较大的市场应用。ARM主控制器的CPU处理能力强,芯片接口丰富,能够适应各种形式接口传入的传感网络数据,并能够进行复杂的存储、分析、判断、决策的功能。选用ARM主控制器和ZigBee网络能够搭建功能完善的智慧农田管理系统。智慧农业的发展,使得每个农场都会像使用肥料和水一样使用实时传感数据来提高农场的经济效益,保证农业生产的可持续发展。
1 系统要求与整体设计
智能农田管理系统由ARM主控制器和ZigBee无线传感网两部分组成。ARM主控制器选用Cortex-M3芯片,从串口接收ZigBee协调器发送过来的传感器网络的数据,数据传输依据自定义的ZigBee应用层数据传输协议,采集的数据在LCD显示屏上实时显示和更新。通过在Cortex-M3芯片上移植uCOS-II实时操作系统,实现多任务的调度管理和任务之间的通信管理,以实现复杂的分析、存储、判断和做出实时决策以及上报的多任务功能。ZigBee无线传感网络的各个节点选用TI公司推出的CC2530芯片,CC2530芯片集成射频收发模块,能够完成ZigBee无线电波的收发工作,CC2530芯片同时集成51单片机,能够提供比较简单的I/O和串口等外设接口,方便接入各种类型的传感器。在CC2530芯片上加载Z-Stack协议栈,利用Zig-Bee协议栈的自组网的功能,实现稳定的短距离无线通信传感网络。
系统设计框图如图1所示。
图1系统框图
2 硬件设计
系统的硬件由两部分组成,一部分是ARM主控制器的设计,另一部分是ZigBee传感网络的设计。ARM主控制器选用基于Cortex-M3核的STM32F103芯片,芯片的UART0用于程序的下载和调试,UART5与Zig-Bee网络的协调器开发板的串口相连。LCD液晶显示屏采用SPI接口与ARM芯片相连,LCD显示屏是2.2寸的液晶模块,分辨率为176×220,模块可接收3.3V电源输入。LCD液晶模块的11pin的硬件连接方法是液晶模块能够正常驱动的关键,具体定义为:CLK是串行SPI时钟信号,SDI是串行SPI数据输入信号,RS是命令(RS=0)/参数(RS=1)选择,RST 是液晶复位信号,CS是液晶片选信号。ZigBee传感网络中协调器、路由器和终端节点的部署,可以根据实际的需求来调整,Zig-Bee网络中协调器只有一个,且与ARM直接连接,Zig-Bee协调器节点作为ZigBee网络的核心,能够收集ZigBee网络中各个路由器和终端节点的网络数据和传感器数据,并能够将ARM开发板下达的控制指令发送到指定的节点。路由器和终端节点组网时的区别是由ZigBee协议栈的软件配置的控制的。ZigBee传感网络各个节点的传感器接入的设计,与智慧农田的需求紧密相关。智慧农田的系统接入农田的四种监测值传感器:土壤墒情监测包括土壤温度、土壤湿度、光照度和土壤PH值;虫情监测包括田间虫情和无公害诱捕杀虫;孢子监测包括病菌孢子连续动态监测;气象环境监测包括空气温度、空气湿度、紫外线强度、太阳总辐射、风速、风向、风力、降雨等。智慧农田的联动控制系统主要有灌溉、风机、卷帘、增温和水阀等控制设备。智慧农田系统基于精准的农业传感器进行实时监测,利用ARM主控制器进行多层次分析,做出决策控制联动系统,提升农业化生产的智能化水平。
3 软件设计
智能农田系统的传感器节点繁多,每个传感节点都是基于Z-Stack协议栈的OSAL操作系统设计的,通过定义ZigBee无线网络通信协议,来管理多个传感器与ZigBee协调器和ARM开发板的通信方式。ZigBee无线网络通信协议管理了三种命令格式:①周期消息:每个传感节点都会周期性的发送数据到协调器,协调器对收到的周期性的信息加以处理,无需回复,只需要确认连接正常。②测量类消息:传感器节点发送测量消息到协调器。③控制类消息:协调器发送控制类消息到传感器节点,需要在指定时间内收到相应节点的回复,超时没有回复,协调器需要重发控制类消息。ZigBee应用层用户自定义的通信协议的数据包格式,包括测量类消息和控制类消息,分别如表1、表2所示。
表1测量类消息数据包格式
表2控制类消息数据包格式
ARM开发板作为智慧农田管理系统的网关,在接收到协调器发送的周期性消息之后,网关通过接收的消息可以确定当前系统中有哪些传感器节点,在LCD显示屏上灰化显示相应各个节点的图标,以表明各个传感器节点还未被激活。当网关进一步收到传感器节点的周期消息或者测量消息之后,节点图标会用彩色高亮显示,表明“传感器模块开启”。传感器模块启动后,如果在周期时间内没有再进一步收到该节点的周期消息,网关上的相应图标继续变为灰色,表明传感器模块的心跳已停止,需要等待进一步的激活。
ARM开发板的软件设计以uCOS-II实时操作系统的移植为基础,uCOS-II实时操作系统是一个占先式的多任务操作系统。将uCOS-II的操作系统的核心代码加入到系统工程之后,修改与体系架构Cortex-M3相关的,以及与单板配置相关的源码,再根据实际需求编写应用层的多任务源码。在完成uCOS-II内核初始化、LCD初始化、BSP初始化、开启系统时钟的基础上,开始创建多任务,任务设计完成后,启动uCOS-II操作系统。操作系统开启多任务工作模式,根据ZigBee自定义的应用层协议将传感网络各个节点的数据接收之后,在ARM开发板本地的SD卡保存下来,同时更新到LCD显示屏上实时显示。
4 实验结果
选用8个ZigBee节点,8个传感器,1个ZigBee节点作为协调器和1个ARM开发板作为本系统的实验设备,ZigBee协调器与STM32开发板通过串口直接相连,ZigBee的路由器和终端节点分别烧录不同的传感器节点代码。ARM开发板烧录uCOS-II操作系统可执行文件,操作系统的应用层设计了界面程序。
系统上电时,首先启动ZigBee协调器,以便创建一个空的ZigBee网络,再启动ZigBee路由器和终端节点,各个节点自动加入协调器创建的网络号一致的ZigBee网络,形成树状结构。对ARM开发板上电,uCOS-II操作系统和界面程序正常启动,操作系统接收ZigBee协调器发送过来的周期消息,解析出当前Zig-Bee网络中各个节点的拓扑结构图,在显示屏上用图标实时显示出来。ARM开发板利用操作系统中的MySQL数据库存储传感器的数据,方便操作系统的各个任务随时读取传感器的最新数据。ARM开发板的界面程序中设置定时更新功能,定时获取数据库中各个节点的最新传感器数据来实时显示,ARM开发板的串口在后台接收到协调器发送过来的消息之后,实时保存到MySQL数据库。ARM开发板的应用程序可根据各节点的传感器数据,进行统计分析,若发现不在正常工作范围的传感器节点,可以及时发出警告,并自动启动联动控制程序,通过控制类消息自动控制ZigBee网络中的联动控制节点。
5 结语
为了适应现代农业的智能化、精细化管理的要求,本系统提供了智慧农田管理系统的设计方案,选用近距离通信的ZigBee传感器网络和STM32开发板组合设计了完整的系统。ZigBee网络的低速率和稳定性能很好地适应农业现场采集数据的特点,ARM主控制器的数据处理能力足够满足当前系统的采集、统计和分析的需求,芯片丰富的接口也能为系统的嵌入式开发提供较大的灵活性。系统的软件设计重点解决了Zig-Bee网络应用层自定义的通信协议的设计,ARM开发板的uCOS-II操作系统多任务的设计,以及可视化界面程序的设计。系统调试的结果显示,功能稳定。本系统为智慧农业的智能化发展的解决方案提供了参考。