1. 引言
随着社会的进步、科技的迅猛发展,人们的生活水平显著提高,而我国是人口大国,也是农业大国,因此对产品的质量和数量要求越来越高,为此希望能够通过改善农作物的生长环境这一关键因素来提高产品的质量和数量。而传统农业模式已经难以满足作物生长环境的严格要求,传统农业对大棚内环境的调控主要通过人们手工现场采集、手动控制相关设备等方法 [1],这种管理系统精确度较差,且存在很大的滞后性。近年来诸多发达国家在智能农业设施、环境的综合调控及农业机械化、智能化等方面都有着较高的发展水平,诸如美国、荷兰等,而我国在这方面相较逊色。我国在一些沿海城市开发运营了一些智能大棚系统,但是这些系统大都用以花卉观赏为主 [1]。我国地域辽阔并且各地区环境变化各异,因而我国智能农业系统的发展及应用应该符合我国实际情况和需求,采用多种技术相结合,设计开发出适用于我国的、可靠实用的智能系统 [2]。本文通过引入ZigBee和互联网相关技术,解决我国目前农业生产中对湿度数据信息采集的远程性、实时性不足的问题,提高对湿度数据的可检测性和可调控性,同时实现方便快捷的管控功能。
2. 系统方案
土壤湿度检测系统分为前台部分和后台部分两大部分。前台部分由土壤湿度传感器和ZigBee节点组成。后台部分由WIFI无线模块和手机APP组成 [3]。采用YL-69土壤湿度传感器来进行湿度检测 [4],利用ZigBee节点进行短距离无线传输,将采集到的土壤湿度数据上传 [5]。在远程无线数据传输方面,利用ZigBee与WIFI连接实现基于无线传感器网络的远距离传输。方案框图如图1所示。
关于数据处理模块,在现有的一些系统中大多用直接单片机对传感器的数据进行处理,而本系统利用ZigBee节点进行数据处理,可以减少数据中加入干扰的可能性,并且可以在一定程度上增加无线传输的距离。关于传输系统,现有的系统中有的采用蓝牙模块实现远距离传输,有的利用STM32根据数据做出相应处理之后,将数据发送到云平台,再利用WIFI实现远距离传输。但是为了能够达到远距离传输的要求,这类型的蓝牙产品在成本较高并且其功耗方面较大,而直接采用带MCU的WIFI模块代替STM32和普通WIFI,同样也可以改良系统的结构和性能。
3. 系统前台部分的设计
3.1. 土壤湿度检测传感器的设计
在选择土壤湿度传感器时需要满足以下几个条件:测量精度高、可靠性高、稳定性高;密封性好,抗腐蚀能力强;受土质的影响较小,且响应的速度快;安装、操作简单。本设计中选择YL-69土壤湿度传感器来检测湿度。YL-69是一个简易化的土壤湿度传感器,工作原理:将两个插片插进土壤里面,然后在AC口处采集电压值。当检测到土壤湿度较小时,两个插片之间的电阻趋向于无穷大,此时AC值近似等于VCC值。当检测到土壤湿度较大时,两个插片之间的电阻会减小,根据土壤湿度的不同,电阻值会减小到几千甚至几百欧,此时AC值会产生相应的变化。其中LM393是一个双电压比较器集成电路,通过电阻R1设置一个标准值。当检测到湿度较大时,AC值较小,OUT为低电平;当检测到湿度较小时,AC值较大,OUT为高电平。可以直接用OUT输出的高低电平信号来估算湿度的大小,但是为了获得更准确的湿度值,要将AC的值进行模数转换,将其转换成数字量后再读取。从模块原理图可知,当电路接通时V1亮,否则V1灭。当湿度小时AC值大,此时V2灭;当湿度大时AC值小,此时V2亮。土壤湿度传感器模块原理图如图2所示。
![](//html.hanspub.org/file/2-2780158x10_hanspub.png)
Figure 2. Schematic diagram of soil moisture module
图2. 土壤湿度模块原理图
3.2. ZigBee节点的设计
ZigBee网络制定了三种包括星型、网状型和树状型。因为本设计中节点较少并且测试地点较为集中,由多个终端设备和一个协调器组成,所以本系统采用星型网络拓扑结构更为合适。在实际环境中在一定区域采用五点取样法进行数据采集,各节点分布图见图3。
ZigBee的软件开发环境用到的是IAR软件。通过IAR软件可以电脑上编写和调试程序,然后将所写的程序下载到ZigBee硬件就可以实现相应的功能应用;由于ZigBee协议栈已经实现了ZigBee协议,所以可以直接调用协议栈提供的应用程序接口进行程序开发;利用ZigBee实现数据通信时,需要实现进行如下步骤:建立网络。由于协议栈里面包含了组网函数、节点加入函数,所以只需要调用即可实现无线网络的组建;同时,数据发送、数据接收也可以通过调用协议栈的数据发送和接收函数实现。
![](//html.hanspub.org/file/2-2780158x11_hanspub.png)
Figure 3. Distribution diagram of each node
图3. 各节点分布图
3.2.1. 协调器节点的设计
在ZigBee网络中,只有协调器和还没有参与网络的全功能设备可以在信道上建立自己的ZigBee网络,协调器通过发送不同的原语来实现建立新ZigBee网络的过程。
下面对协调器的软件流程做出说明:在启动协调器节点之后,首先对协议进行初始化,然后开始建立网络 [6]。若网络被成功建立,就等待终端节点加入该网络。若网络建立失败则重新建立网络。网络一旦建立成功,协调器就会给第一次加入新建立的网络的终端节点分配16位的短地址,即网络地址 [7]。随后协调器节点开始等待终端节点上报数据,一旦有数据上报,协调器收到数据之后,将收到的数据信息送给WIFI模块。到此ZigBee协调器一次完整的数据传输工作执行完毕,其后便是按此过程中终端节点上报数据,协调器接收并转发过程不断的循环 [8]。协调器执行的流程图如图4所示。在IAR软件中编程实现协调器功能。
3.2.2. 终端节点的设计
在ZigBee网络中,通过选择EndDeviceED选项卡来指定终端节点的功能。终端节点可以在信道中选择相对于最佳的网络加入进去。终端节点不允许其他节点加入网络,所以终端节点不能作为父节点并且不具有数据转换的功能。
下面对终端节点的软件流程做出说明:在启动终端节点后,首先进行初始化,随之它开始尝试加入由协调器建立的网络,一旦终端节点成功加入网络,就开始每隔1 s发送一个任务消息,此消息的操作为:土壤湿度传感器进行数据采集,然后,通过调用Get_ADC0_Value()函数用软件进行AD转换,最后,将带有网络地址的数据包发送给相应的协调器。发送数据的格式设置为:{“sdx”:xxx}。详细的AD转换代码见Get_ADC0_Value()函数。到此ZigBee终端节点一次完整的数据采集和传输工作执行完毕,其后便按此过程不断进行循环。图5给出了终端节点执行的流程图 [9]。
![](//html.hanspub.org/file/2-2780158x12_hanspub.png)
Figure 4. Coordinator execution flowchart
图4. 协调器执行流程图
![](//html.hanspub.org/file/2-2780158x13_hanspub.png)
Figure 5. Terminal node execution flow chart
图5. 终端节点执行流程图
4. 系统后台部分的设计
4.1. WIFI模块
WIFI模块在物联网中属于传输层,是一个智能硬件开发组合能够提供云端设计。WIFI模块可以实现用户串口、无线网(WIFI)、以太网它们之间任意的透明转换,正是因为拥有这个功能它就可以让传统的串口设备更加快捷的加入到无线网络之中。并且通过WIFI模块,在不改变任何之前的配置的情况下,传统的串口设备就可以直接通过Internet网络对自己的数据进行传输。
本设计中WIFI模块采用的是ESP8266,只要客户端连接到WIFI就可以实现相应的数据传输。该模块采用串口(LVTTL)与MCU(或其他串口设备)通信方式,内置TCP/IP协议栈,能够实现串口与WIFI之间的转换 [10]。在性能方面,ESP8266具有低功耗,作用面积广,传输数据稳定的优点。所以在性能方面也可以达到本系统设计的要求。WIFI模块电路图如图6所示。
该WIFI模块支持标准的IEEE802.11b.g.n协议和完整的TCP/IP协议栈,用户可以根据相应的规则自己设计使用该模块。通过对整体的硬件分析,可以更加确定整个硬件更加有利于整个土壤湿度无线检测系统的设计和实现。WIFI模块工作流程图如图7所示。
![](//html.hanspub.org/file/2-2780158x14_hanspub.png)
Figure 6. WIFI module circuit diagram
图6. WIFI模块电路图
![](//html.hanspub.org/file/2-2780158x15_hanspub.png)
Figure 7. WIFI module work flow chart
图7. WIFI模块工作流程图
4.2. 手机APP的设计
本系统利用Android Studio编程来实现手机客户端的开发设计。Android Studio是Google推出的一个Android集成开发工具,可用于开发和调试。该开发环境具有运行速度快且稳定、强大的UI编辑器等优点 [11] [12]。
手机应用程序主要为了实现对土壤湿度传感器采集到的数据进行显示、报警提醒及文字提示的功能。结合本系统的设计要求,进行需求分析后确定APP需要实现的功能有:用户可以注册并登录系统;能够接收WIFI模块发送出来的数据并显示当前湿度值;可以设置正常湿度范围的上下限,当超出或者低于预设范围时发出声音报警,并且有文字显示过高和过低,当湿度检测值在预设范围内时,不启动声音报警,文字显示正常;支持手动选择开始检测显示和结束检测显示。设计该APP具体执行流程图如图8所示 [13]。
关于手机APP客户端,本系统设计了一个登录界面和一个检测控制台界面。用户打开本Android客户端后,首先是进入登录界面如图9所示,第一次使用该软件的用户注册后才可登录,之后可直接输入正确的账号以及密码进入监测控制台如图10所示的检测控制台界面。需要监测时,点击开始检测在节点一、二湿度处即可看到当前的检测区域的湿度状况。可以调节湿度上下限来满足不同作物对湿度的要求。
5. 实物实现
5.1. 搭建实验平台
首先搭建好软件实验平台,通过仿真器将IAR中的程序下载到协调器和两个终端节点中。组网成功之后,连接有土壤湿度传感器的终端节点将采集到的数据传送给协调器汇总,然后由协调器传送给WIFI模块。手机APP通过连接WIFI模块,接收数据并进行显示,本土壤湿度无线检测系统的实物连接如图11所示。
5.2. 实物效果
为了客观的看到终端节点和协调器的组网是否成功,终端节点请求加入协调器组建的网络后,当协调器底板上的数码管显示C,终端节点底板上的数码管显示E代表组网成功,若没有相应的数码管显示代表组网还没有成功。组网成功实物效果如图12所示。当检测湿度超出预设值手机APP显示如图13所示,当湿度低于预设值时手机APP显示如图14所示。
![](//html.hanspub.org/file/2-2780158x19_hanspub.png)
Figure 11. Physical connection diagram of the wireless soil moisture detection system
图11. 土壤湿度无线检测系统的实物连接图
![](//html.hanspub.org/file/2-2780158x20_hanspub.png)
Figure 12. Real effect diagram of networking success
图12. 组网成功实物效果图
![](//html.hanspub.org/file/2-2780158x22_hanspub.png)
Figure 14. Humidity is lower than the preset value
图14. 湿度低于预设值
6. 总结
本系统实现了湿度信息的远距离检测。将无线传感器网络与WIFI相结合,用于土壤湿度信息采集的系统,实现远距离准确传输,可用于大田及其他大区域中。通过分析检测到的土壤湿度的数据,可以及时对农作物进行浇水灌溉或者放风、松土等措施提高或者降低土壤湿度,以达到适合农作物生长的土壤湿度环境。同时,有利于农业管理,在减少传统的测试方法由于人为等因素造成数据不准确以及降低相关人员工作量等方面有一定的帮助。
项目基金
论文受到湖南省教育厅科学研究项目支持(编号:10C1005)和国家大学生研究性学习计划项目支持(基于土壤湿度检测的智能灌溉系统设计)。