2. 中国科学院 亚热带农业生态研究所, 长沙 410125;
3. 湖南省农业科学院, 长沙 410125
2. Institute of Subtropical Agriculture, Chinese Academy of Sciences, Changsha 410125, China;
3. Hunan Academy of Agricultural Sciences, Changsha 410125, China
我国水资源短缺且分布很不均匀, 有些地区的人均占有量甚至低于世界最贫水的国家埃及和以色列的水平. 目前, 我国农业用水量约为总用水量的80%, 水的利用率仅为45%, 远低于发达国家70%~80%的水平.
世界农作物增产的30%~60%来自化肥. 然而, 在农业生产的应用上, 普遍存在的问题是化肥利用率低, 以及过量施用对生态环境的污染. 以畜禽粪便发酵液作为肥料, 能为农田提供丰富的有机肥源, 有效改良土壤肥力, 符合农业生态循环发展的需求.
基于上述原因, 本研究开发了一套无人值守的开闭环水肥精量自动混灌系统, 系统的闭环部分能根据土壤的湿度, 自动实现灌水, 系统的开环部分, 接受人工干预, 按农户的农艺经验, 实现水和液肥的精量混配灌溉.
1 系统设计在“中南稻区复合生物循环技术集成与示范”项目的实施中, 主要涉及养牛场、蔬菜地、牧草生产地等区域, 生产中循环路径如下: 养牛场粪便堆积发酵, 发酵液为蔬菜、牧草生产提供有机肥, 剩余发酵液经狐尾藻净化后无害排放, 牧草养牛.
本研究(“蔬菜生产中水肥药一体分区共网精量自动施用技术的研究与应用”)作为前述项目的配套项目, 主要解决问题在于: 其一, 平时依据蔬菜地土壤湿度, 实现蔬菜地生产中的自动灌水作业; 其二, 依据蔬菜生长生理需求需要施肥时, 能依据指令, 实现蔬菜地生产中的自动施肥作业.
基于任务目标, 系统设计主要分为两个部分: 其一为水、液肥的输送管路设计, 以便将水与液肥输送至菜地; 其二为自动控制系统的设计. 本文着重对自动控制的设计进行探讨.
1.1 系统管路设计项目中, 蓄水池、发酵池均位于上游养牛场, 蓄水池常年有水, 牛粪尿经发酵池沉积、发酵后, 发酵液作为液肥供下游菜地使用, 牛场与下游菜地高差约200 m, 距离约1.5 km, 水、液肥均采用重力自流的形式, 送达菜地.
如图1所示, 发酵液经过初级过滤后, 进行传输, 传输采用110 mm PPR管, 接近项目实施地后, 经分接头转换, 传输管径变为75 mm, 在抵达实施地附近, 再次实施过滤, 并分为两路, 一路为75 mm, 对露地蔬菜进行漫灌, 漫灌为手动控制, 一路为32 mm, 经混配池与清水按指定比例混配后, 对大棚蔬菜进行滴灌, 滴灌由系统自动控制.
系统有4个灌溉目标区, 各目标区与混配池一一对应, 每个混配池均有一根进水管, 一根进肥管, 一根输出管, 各管上均安装有电磁阀, 电磁阀由无线传感网节点通过光耦继电器进行控制. 此外, 在入水管和输出管之间, 还安装有一根短接管, 短接管接于入水管电磁阀之前, 输出管电磁阀之后, 短节管上安装有电磁阀.
1.2 系统拓扑设计如图2所示, 系统总体包含了开环和闭环两个部分. 其中, 开环部分的主要功能为接收用户的指令, 并指示相应的无线传感网节点依据指令的要求控制电磁阀的动作.
由于指令由用户远程发出, 所以需要用户指令的传输需要跨网进行, 需要选择适当的网关. 从系统工况、运行成本、使用的方便性考虑, 本文选择移动数传模块作为网关, 实现指令的透传.
从开环部分功能实现的角度, 又可将开环部分分为指令下达与传输部分, 以及指令的分析与执行部分. 前者包含手机客户端、移动数传模块(以下简称网关)、与网关相连的无线传感网节点(以下简称网关终端); 后者主要包含执行用户指令的无线传感网节点(以下简称控制终端).
系统闭环部分的主要功能为探测土壤湿度, 并根据土壤的湿度情况, 自动执行灌水业务. 闭环部分的数据和指令的传输, 均只在无线传感网内进行.
从功能的实现上来说, 系统闭环部分又分为土壤湿度采集部分, 以及自动灌水动作执行部分. 前者包含采集土壤湿度的无线传感网节点(以下简称采集节点)和执行土壤湿度业务逻辑的无线传感网节点(本系统中, 该节点为协调节点, 以下简称协调节点); 后者主要包含执行自动灌水命令的无线传感网节点(以下简称控水终端).
1.3 系统硬件设计 1.3.1 电磁阀的驱动系统中, 灌溉动作承担者为电磁阀, 电磁阀的动作逻辑由无线传感网终端节点控制. 无线传感网节点在内部逻辑的作用下, 控制GPIO的输出, 并将其作为光耦继电器模块的触发信号, 控制着光耦继电器输出触点的通断, 最终实现对电磁阀的控制.
本系统无线传感网节点设备采用5 V、2 A电源适配器进行供电, 系统采用的2路直流光耦继电器, 继电器输入电平为5 V, 低电平触发, 触发信号为无线传感网节点设备的GPIO输出, 各路均提供一对常开常闭触点, 触点可承受250 V、20 A的负载. 继电器各路常开触点均连接一个直流电磁阀, 电磁阀为24 V、2 A设备.
1.3.1 土壤湿度的采集为了采集土壤湿度, 本系统选择5 V土壤湿度传感模块, 土壤湿度传感模块提供一路继电器, 该路继电器提供一对常开常闭触点, 还提供一个探头, 作为信号输入, 土壤湿度传感器灵敏度可调. 其工作原理为: 模块上电后, 将探头插入土壤, 当土壤湿度达到要求时, 土壤中的离子使得探头的金属片导通, 触发继电器; 反之, 当土壤湿度不足以使得探头上的金属片导通时, 继电器复位.
基于上述工作原理, 土壤湿度传感模块可以直接用来控制机电设备, 但不能满足系统对土壤湿度信息的采集. 为此, 对土壤湿度传感器模块进行了电路改造, 改造后, 土壤湿度传感器可以将土壤的干湿状态, 转化为高低电平信号. 如图3所示.
图3中, 土壤湿度传感模块的常开触点一端接GND, 一端作为无线传感网节点设备的GPIO输入. 当土壤湿度达到预定值时, 触点导通, 向节点设备输出低电平; 否则, 触点断开, 节点设备的GPIO输入端悬空, 等同接收高电平输入.
1.4 开发环境系统运行于CC2530片上系统, 开发环境为IAR 8051, 协议栈为ZStack 2.5.0, 所用语言为C.
2 系统工作原理 2.1 开环部分工作原理 2.1.1 指令接收与预分析系统在开环部分接受用户指令, 并按照指令中指定的水肥比例、灌溉量控制不同继电器先后动作, 进行水与液肥的混合, 然后实施肥液灌溉作业(施肥作业).
由于指令通过网关传送至系统, 因此开环部分网关终端在上电初始化时, 通过写串口, 向网关发出AT指令, 以初始化网关, 规定短信格式, 以及短信读取后的动作. 本系统中, 为方便指令的解析, 规定短信格式为文本, 并且为保证每次读的都是第一条短信, 初始化网关时, 删除所有短信.
完成对网关的初始化之后, 开环部分可接受用户指令. 用户指令由移动客户端发出, 移动客户端的指令以短信形式通过移动网发送至网关. 当网关接收到短信后, 会触发网关终端的串口回调函数, 网关终端在回调函数中通过循环读取串口, 获得完整的短信信息, 随后网关终端对短信信息进行预分析.
在预分析中, 网关终端首先判断短信信息是否为预定格式的指令, 若短信信息并非指令, 则直接通过串口向网关写AT指令, 删除所有短信, 然后继续等待短信信息的到来. 若接收的短信信息为指令, 网关终端对短信进行分析, 判断指令类型, 以及指令格式是否完备, 若指令格式不完备, 则设置指令错信息, 触发事件, 在事件中写串口, 向网关发AT指令, 将指令错信息通过网关由移动网发给移动客户端, 然后删除所有短信. 若指令格式完备, 则依指令类型进行不同处理, 处理完毕后删除所有短信. 指令预分析流程见图4.
如图4所示, 对于格式完备的指令, 网关终端分类进行处理. 若对预设目标区的工作状态进行查询, 则网关终端获取保存的最新工作状态, 然后通过串口写AT指令, 将预设目标区的最新状态以短信形式发回移动客户端. 若为开始灌溉指令, 则检查预设目标区是否处于忙碌状态, 如果忙碌, 则不执行指令, 网关终端只是通过AT指令将指令正确信息发回客户端, 否则网关终端首先通过WSN 2.4 G无线信道将混灌指令, 混灌参数下达至与预设目标区对应的控制终端, 然后通过AT指令将指令正确的回应信息发回客户端. 若为中止灌溉指令, 则检查预设目标区是否处于空闲状态, 若空闲, 则不执行指令, 只是发回指令正确信息, 否则, 将中止指令下达至控制终端, 然后将回应信息发回客户端.
上述工作处理完毕后, 网关终端通过串口向网关写AT指令, 使得网关删除所有短信.
2.1.2 参数提取与混灌执行指令经网关终端预分析后, 若为开始灌溉指令或中止灌溉指令, 则依通信簇转发给控制终端. 控制终端依接收的指令分别执行相应的业务逻辑.
控制终端依通信簇接收到混灌参数后, 利用字符串函数, 获得表示灌溉量、水肥比例的子串, 然后通过标准库函数, 将字符串转换为数值. 然后以进行数值计算, 获得混灌所需的水量、肥液量, 然后依据水流量、肥液流量、输出流量(通过流量计测得的, 作为系统参数保存), 计算得出进水需时(时间1)、进肥需时(时间2)及混合液输出所需时间(时间3).
得到进水、进肥、输出所需的时间后, 利用定时器进行控制, 依次开始执行输入、输出操作, 同时向网关终端发送“忙碌”状态信息, 表示预设区域正处于混灌作业状态, 避免向同一预设区重复提交混灌作业请求, 向协调节点发送“开环”状态信息表示预设区域正处于开环工作状态, 使此区域的闭环部分暂时空转.
选择时间1、时间2中较小值, 开始执行输入操作. 这段时间内, 与预设区域对应的控制终端通过向两个不同的GPIO端口输出低电平, 保持相应的两路继电器常开触点的触发(闭合)状态, 从而同时打开入水电磁阀、入肥电磁阀.
超时后, 控制终端向相应的GPIO端口输出高电平, 复位与较小时间值对应的那一路继电器的常触点, 从而关闭相应的电磁阀, 而继续保持较大时间值对应的电磁阀为开启状态. 同时控制终端重置定时器的超时值为时间1、时间2的差值的绝对值.
再次超时后, 控制终端关闭较大时间值对应的电磁阀, 同时开启输出电磁阀. 同时重置定时器的超时值为时间3. 超时后, 关闭输出电磁阀结束混灌作业.
结束混灌作业后, 控制终端向网关终端发送“空闲”状态信息, 表示预设区域可以接收新的混灌作业请求, 向协调节点发送“闭环”状态信息, 表示预设区域开环作业已结束, 进入闭环状态.
2.1.3 控制终端的初始化与终止指令的执行由于系统布置在野外, 无人值守, 考虑到乡村电网不稳, 可能存在某次作业尚未结束就遭遇停电的情况, 因此为控制终端设置了必要的初始化动作. 控制终端在上电、入网后, 立即发“忙碌”和“开环”状态信息, 并按最大灌溉量执行输出操作, 结束后再发“空闲”和“闭环”状态信息, 此时系统正式进入就绪状态.
若为控制终端依通信簇接收到中止灌溉指令, 则立即清除相应控制终端上的所有计时器, 并关闭入水、入肥电磁阀, 同时开启输出电磁阀, 并按本次作业所需输出时间, 即时间3启动计时器, 超时后, 关闭输出电磁阀, 并修正工作状态信息为“空闲”, 开闭环状态信息为“闭环”.
2.2 闭环部分工作原理系统就绪后, 各预设区域的控制部分即进入闭环工作状态, 依土壤湿度信息执行自动灌水作业. 在闭环状态下, 系统可接收外部指令, 从而转入开环状态, 指令执行完毕后, 再转回闭环状态. 且各预设区域相互独立, 即各预设区域均可单独在开闭环状态切换, 而不影响其它预设区域的灌溉作业.
2.2.1 土壤湿度采集如图3所示, 土壤湿度传感器模块将土壤湿度信号转换为电平信号, 作为采集节点GPIO的输入. 采集节点接收表征土壤湿度的电平信号, 并将所接收的电平信号转换为数值, 例如土壤湿度低于阈值, 则采集节点通过GPIO接收高电平输入, 并设置代表预设区域土壤湿度情况的变量值为1, 相反的情况下, 采集节点通过GPIO得到低电平输入, 并设置变量值为0.
基于上述原理, 采集节点通过计时器, 按指定频率(本系统为每分钟一次)触发事件, 在事件处理中, 去读取GPIO的输入值, 并依据获取的值设定表征预设区域土壤湿度情况的变量的值. 随后, 采集节点将该值按约定的通信簇发送给协调节点.
为了减少对菜地农事的干扰, 每块地3点取样, 分别记为a、b、c, 只有当其中两点有灌水需求时, 才执行自动灌水操作.
本系统采用累加计数实现判断逻辑, 实现方法描述如下: (1) 预设区中, 通过通信簇约束信息传送路径, 本系统中, 采集节点获取的信息传送路径如下, 节点c传给节点b, 节点b传给节点a, 节点a传给协调器; (2) 节点b在收到c传送的湿度信息(0, 1)值后, 与节点b所采集的湿度信息累加, 然后将累加值传送给节点a; (3) 节点a接收前两点的累加值后, 与自己采集的湿度信息累加, 并将累加值向协调节点发送.
由于采集节点与协调节点距离较远, 因此各预设区域中的采集节点依其在传感网中的地位分为两类, 一类为路由节点, 一类为终端节点, 二者在自动灌溉上的业务逻辑一致.
2.2.2 自动灌水与开闭环协调协调节点依通信簇接收采集节点发来的表征预设区域土壤湿度的值以后, 检查系统开闭环状态标识, 若系统此时正处于开环工作状态, 则对于采集节点传过来的值, 协调节点只接收, 而不处理. 当系统结束开环状态后, 处于闭环状态时, 协调节点才对采集节点传送的值进行处理.
协调节点依通信簇接收预设区域采集节点传送过来的值, 若该值大于或等于2, 表明预设区域土壤湿度低于阈值, 此时协调器依约定通信簇, 向控水终端发送灌水指令, 控水终端依通信簇接收到灌水指令后, 控制相应GPIO端口, 使其输出低电平, 从而触发控制短接电磁阀的继电器, 打开短接电磁阀向预设区域进行灌水作业.
灌水作业进行时, 采集节点仍以预定频率采集预设区域的土壤湿度, 并将表征湿度的值传回协调节点, 当协调节点接收到值小于2时, 表明预设区域土壤湿度高于阈值, 此时协调器依约定通信簇, 向控水终端发送灌水指令, 控水终端控制相应GPIO端口, 输出高电平, 断开控制短接电磁阀的继电器, 关闭短接电磁阀, 结束预设区域的灌水作业.
3 小结在本系统中, 通过控制无线传感网节点GPIO输出, 来控制光耦继电器的触发与复位, 从而可以控制包含电磁阀在内的各类机电设备的上电与掉电, 通过控制GPIO的输入, 可以读取传感器信息, 使得系统具有执行和感知能力.
通过对协议栈的改写和通信簇的规划, 可以灵活地调整不同节点在系统中相互关系, 可以方便的实现分布式控制, 也可以根据需要方便地进行集中控制[1,2]. 如本系统用一个网关终端去控制移动数传模块的通信, 而将指令参数提取与执行逻辑交付控制终端执行, 又如本系统将土壤湿度信息采集的定时逻辑下放到各采集节点, 使传感网中各类节点的负担较为均衡. 那么, 如果需求发生改变, 系统稍作调整, 就可以方便地将这些逻辑集中到某个节点之上, 如协调节点.
本系统中, 无线传感网与外界的通信具有通信数据量小, 骤发通信等特点[3,4], 选择适合的通信网络对于降低成本有着极大的帮助. 本系统选择移动数传模块作为网关, 通信费用只需支付短信费, 较之架设上位机、租用商用IP, 成本得到极大的节约[5]. 而且也十分有利于移动客户端的APP开发, APP只需设计一个不错的界面, 就可调用SMS服务, 将指令以短信形式发送给系统.
总之, 本研究所开发的自动灌溉系统, 包含了灌溉管线设计, 土壤湿度传感器的改装, ZStack协议栈的改写, 继电器的控制, 人工指令的接收、分析和处理, 自动控制逻辑的实现, 最终完成了一个开闭环结合水肥混灌系统的开发任务.
系统工作在无人值守状态, 在无指令到达的情况下, 系统处于闭环状态, 采集预设区域的土壤湿度, 并执行自动灌溉作业, 当人工指令下达时, 系统切入开环状态, 执行水肥的混配及灌溉作业, 指令执行完毕后, 系统切回闭环状态, 再次执行自动灌水作业, 且各预设区域的控制部分相互独立, 可独立在开环、闭环状态间相互切换而互不影响.
[1] |
李文仲, 段朝玉. ZigBee2007/PRO协议栈实验与实践. 北京: 北京航空航天大学出版社, 2009: 30–60.
|
[2] |
武风波, 强云霄. 基于ZigBee技术的远程无线温湿度测控系统的设计. 西北大学学报(自然科学版), 2008, 38(5): 731-734. |
[3] |
李加念, 倪慧娜. 基于无线传感器网络的小粒种咖啡园滴灌自动控制系统. 传感器与微系统, 2014, 33(10): 43-46. |
[4] |
孙丽婷. 基于无线传感器网络的农业大棚监控系统设计[硕士学位论文]. 大连: 大连理工大学, 2013.
|
[5] |
刘建平. 基于GPRS的远程无线抄表系统设计. 中国高新技术企业, 2009(2): 45-47. |