基于ARM的农业物联网终端控制系统
2018-01-15卢爱红
卢爱红
(苏州经贸职业技术学院,苏州215009)
0 引言
现代化农业在向智能化的物联网应用方向发展,农业环境控制是现代化农业的核心。农业环境控制是在一定范围内,根据功能需要选择不同的传感器,采集区域内的各种环境因素:光、热、水、肥等或者农作物的生长情况,通过有线或无线网络传送给主控制器,主控制器对数据进行分析处理形成专家系统,并根据植物最适宜的生长条件,由主控制器发出针对性的指令,对区域内相关设备操作,使光、热、水、肥等因素协调到最佳状态。农业物联网系统通过智能控制方法,将以前的人工经验农业生产模式,转变为通过电子系统精确采集经验模糊控制的模式,使农业生产资源的投入精细化,农业生产的产量最大化。农业种植、养殖基础设施的迅速发展,使得温室大棚农业生产也呈现指数增长,连栋大棚规模越来越大,简易温室大棚也越来越多。连栋大棚的监控区域较大,需要部署大量的信息采集传感器节点构成大型传感网络,且探测节点和探测节点数量、位置要经常改变。而简易温室大棚探测、控制的节点较少,但要求简单方便、价格便宜。因此环境监控系统必须符合市场的需求:①探测与控制的节点容量要足够多;②探测与控制的节点数容易增减;③探测点的位置能灵活移动;④安装、调试、使用、维护、维修方便而且要安全可靠;⑤性价比高。根据市场需求设计现代化农业生产的环境监控系统,使用可靠的无线传感网络代替有线连接,结合最新的智能传感技术、无线组网技术、微处理技术、模糊控制技术等,设计出由一台PC和多个多用途物联网智能中央控制器组成主从式分布结构的环境无线智能监控系统,能有效解决以上市场需求问题,可广泛应用于农业种植、养殖等环境自动检测、监控领域[1]。
1 系统要求与整体设计
具有多个用途的物联网终端控制器是我们设计的重点。作为物联网应用系统终端的主控制器,一般采用嵌入式设备来完成物联网终端控制器的信息采集和控制的功能。物联网终端控制器是现代化农业生产现场的各种传感器采集信息的集中管理和采集信息数据上传到物联网云服务平台的中间纽带,同时也是现场用户和网络远程用户指令的执行器。现代化农业生产基地的终端控制器因其功能复杂,部署数量众多,价格敏感等特点,大多采用基于ARM的嵌入式控制器的硬件架构,ARM开发板具有较高的主频、丰富的接口等性能,能适应各种嵌入式要求。终端控制器的软件操作系统可以选用可移植可裁剪功能强大的Linux操作系统。为了实现控制器的可视化操作,可选用常用的Android或者Qt作为GUI开发平台。
本设计以农业生产中使用最多的温室生产为例,说明物联网终端控制器的设计方法。当前温室生产的传感网络,需要完成采集和控制两大任务,温室大棚需要采集信息诸如空气温度、空气湿度、光照强度、土壤湿度、营养液EC值、PH值以及室外天气参数等信息,并驱动温室中执行机构的控制节点诸如开窗系统、拉幕系统、降温系统、加温系统、灌溉系统、补光系统(农用钠灯)、二氧化碳补给系统(二氧化碳生成器)、加氧等。温室大棚的采集和控制网络需要大量的传感节点来实现,温室大棚对其监测与控制系统的需求就是网络容量大、监测点位置能灵活变动、节点数目可随意增减、系统可靠性高,可使用ZigBee无线传感网络来匹配这些要求。ZigBee传感网络的协调器负责ZigBee无线传感网络的管理。终端控制器通过串口与ZigBee协调器通信,根据用户预定义的通信协议通过ZigBee协调器收集ZigBee无线传感网络中的信息,并通过ZigBee协调器向ZigBee无线网络传达指令。终端控制器选用三星公司的ARM芯片S3C2440作为主CPU的开发板,在开发板上安装Linux操作系统,使用Qt界面设计软件完成终端控制器的可视化界面设计。物联网终端控制器系统功能框图如图1所示:
图1 终端控制器系统框图
2 硬件设计
物联网终端控制器的开发板选用CPU为S3C2440的ARM开发板,开发板周边接口丰富。选用ARM开发板的串口UART0和网口eth0与PC电脑相连,串口UART0作为开发板调试串口,网口eth0作为文件传输接口。PC电脑上安装Ubuntu虚拟机,再通过软件搭建嵌入式系统开发需要的交叉编译环境。ZigBee网络协调器开发板设计时,为了外观的轻便简介,采用USB总线的转接芯片CH340实现了USB转串口,ARM开发板需要通过USB接口与ZigBee网络协调器的USB接口相连,并在ARM开发板上Linux操作系统中安装芯片CH340的USB转串口的驱动,使得ARM开发板与ZigBee网络协调器开发板之间硬件连线是通过USB接口连接,软件通信是通过串口协议方式实现通信。ARM开发板选用LCD接口与群创7寸真彩液晶屏,带四线电阻式触摸屏接口。ARM开发板采用5V电源供电。
3 软件设计
ARM开发板的软件设计分为三个部分:ARM开发板的Linux操作系统内核程序及其驱动程序的安装;物联网终端控制器ARM开发板与ZigBee协调器串口通信协议的设计;物联网终端控制器Qt可视化界面的设计。
(1)Linux操作系统内核程序
ARM开发板使用的内核源码是开发板定制的linux-2.6.30.4版本,内核的交叉编译工具选用EABI-4.3.3版本,拷贝内核源码和交叉编译工具压缩包到Ubuntu虚拟机,解压后,配置交叉编译环境的PATH环境变量,进入内核源码包目录,使用#make menuconfig命令可以选择CH340驱动加入内核源码编译,在确认各个内核编译选项后,调用#make zImage命令生成内核镜像。通过BusyBox生成ARM开发板的文件系统,由制作yaffs文件系统工具mkyaffs2image生成文件系统镜像。使用ARM开发板支持的烧录镜像的工具,将内核镜像和文件系统镜像分别烧录到ARM开发板的NandFlash不同分区中,开发板上电,内核和文件系统成功启动,并正常进入内核的shell模式,完成了内核镜像的烧录和启动。
(2)物联网终端控制器ARM开发板与ZigBee协调器的串口通信协议
ARM开发板与ZigBee协调器通过串口通信,方便ARM开发板查询ZigBee网络各节点网络状态参数和传感器信息,并根据需要设置各个ZigBee节点执行器的状态。由于ZigBee网络传感和执行节点较多,各种功能需求的通信比较复杂,需要通过用户自定义的ZigBee无线网络通信协议来规范化通信的数据包格式。ZigBee无线网络通信协议的数据包格式可以采用如表1、表2所示的命令包格式和返回包格式,命令包是ARM开发板向ZigBee协调器发送的数据包,返回包是ZigBee协调器向ARM开发板发送的数据包。命令包及返回包中多字节内容,均是低前高后存放[2]。
表1 命令包格式
表2 返回包格式
ARM开发板读取ZigBee网络各个节点的数据,首先需要向ZigBee协调器查询各个节点ZigBee网络参数,包括各节点物理地址和网络地址及其父节点物理地址和网络,读取ZigBee网络参数RNW命令格式为:&(1)+WSN(3)+RNW(3)+“yyyyyyyy”(8)+*(1),返回格式为:&(1)+WSN(3)+RNW(3)+(type)S(1)+节点网络地址(2)+总节点数(1)+节点类型(3)+节点物理地址(8)+父节点网络地址(2)+PANID(2)+“yyyyy”(5)+*(1),其中返回格式中的节点类型用ROU表示路由器,COR表示协调器,RFD表示终端。ARM开发板查询到ZigBee网络节点信息后,形成一张当前ZigBee网络拓扑图,并根据各个节点的物理地址识别出各个节点的功能,自动完成功能与节点的绑定。然后ARM开发板需要向ZigBee协调器查询各个功能节点的传感器信息,以读取农业生产基地空气温湿度数据和气压压力数据的数据格式为例,说明查询传感器信息的数据格式。读取温湿度数据RWS命令格式为:&(1)+WSN(3)+RWS(3)+节点网络地址(2)+“yyyyyy”(6)+*(1),返回格式为:&(1)+WSN(3)+RWS(3)+(type)S(1)+节点网络地址(2)+温度数据(2)+湿度数据(2)+”yyyyyyyyyyyyyyyy”(16)+连接质量(1)+*(1)。读取气压压力数据?RYL?命令格式为:&(1)+WSN(3)+RYL(3)+节点网络地址(2)+”yyyyyy”(6)+*(1),返回格式为:&(1)+WSN(3)+RYL(3)+(type)S(1)+节点网络地址(2)+气压数据(1)+”yyyyyyyyyyyyyyyyyyy”(19)+连接质量(1)+*(1)。根据读取温湿度数据RWS命令和读取气压压力数据RYL命令的关键字的区别,可以衍生出其余功能传感器节点的数据包详细格式。
ARM开发板在获取到各个节点传感器的实时信息后,形成专家系统,根据经验模糊控制,设置农业物联网ZigBee网络各个执行器节点的状态。以控制农业生产基地的风扇开关和LED调光光源为例,说明设置命令的数据格式。风扇开关SFS命令格式为:&(1)+WSN(3)+SFS(3)+节点网络地址(2)+打开或关闭风扇控制码(1)+“yyyyy”(5)+*(1),返回格式为:&(1)+WSN(3)+SFS(3)+(type)S(1)+节 点网络地址(2)+“yyyyyyyyyyyyyyyyyyyy”(20)+连接质量(1)+*(1)。LED灯调光 STG 命令格式为:&(1)+WSN(3)+STG(3)+节点网络地址(2)+占空比(1)+“yyyyy”(5)+*(1),返回格式为:&(1)+WSN(3)+STG(3)+(type)S(1)+节点网络地址(2)+“yyyyyyyyyyyyyyyyyyyy”(20)+连接质量(1)+*(1)。根据风扇开关SFS命令和LED调光STG命令的关键字的区别,可以衍生出其余功能执行节点的数据包详细格式。
(3)物联网终端控制器Qt可视化界面的设计
Qt的集成开发环境(IDE)采用Qt Creator应用程序,开发环境基于Ubuntu平台,需要在Ubuntu上安装Qt Creator的安装程序qt-creator-linux-x86-opensource.bin。安装Qt Creator之后,新建项目工程仍不具备Application GUI应用,需要安装Qt库文件Qt4.8.1,并配置Qt编译环境qmake,须用Ubuntu操作系统的root账户安装Qt SDK。再在Qt Creator应用程序中配置Qt Sdk,设置好交叉编译环境,生成的可执行文件拷贝到ARM开发板的Linux文件系统后,可以运行GUI界面程序。
4 结语
基于ARM的物联网终端控制器的设计,在考虑到控制器的应用功能需求,适当地选择ARM开发板作为硬件平台,部署了操作系统,并根据农业物联网ZigBee无线连接的通信需求,定义了ZigBee串口通信的协议和编程方法,最后介绍了物联网终端控制器ARM开发板上部署Qt可视化界面的设计方法。本设计相对系统地介绍了农业物联网中核心的控制器的设计方法,详细地描述了终端控制器与周边网络连接的设计方案,以及终端控制器自身,从底层硬件到上层应用程序设计的完整设计方案。农业物联网终端控制器的设计为物联网终端控制器在其他行业中应用提供了参考方案。
[1]曹明勤,张涛,王健.基于ZigBee的农业物联网监测系统的设计与实现.测控技术与仪器仪表[J],2013,39(12):86.
[2]卢爱红,吴健.基于ZigBee的智能水务系统的研究.计算机时代[J],2016,(2):26.
[3]罗金玲,刘罗仁.基于ARM+Linux的物联网远程监控终端设计.计算机系统应用[J],2013,22(1):189.
[4]李兴华,宋鹏宇,王想实,周薇.基于物联网技术的远程智能灌溉系统的设计与实现.电脑知识与技术[J],2016,12(8):169.
[5]刘嘉新,郎红.基于物联网的农林小气候监控系统数据汇聚平台.农业科学与装备[J],2012,11(221):9.