1. 引言
自动化农业在国外普及较早,如英国等发达国家设计并实现了模仿天然降雨的喷灌系统。国内相对于国外在智能灌溉特别是节水灌溉起步比较晚,如冯兆宇等人设计了基于灰色神经网络与模糊控制的寒地水稻系统,该系统能预测作物灌水量达到适时适量灌溉的目的 [1] 。智慧农业是当今国际社会的发展趋势,仅凭个人经验决定是否灌溉的粗犷式传统农业也在逐步地淘汰 [2] 。把物联网技术与适当的灌溉模型结合起来,推动产业升级换代为新模式 [3] ,更适合作物生长同时人机交互也更加友好。
不同的作物不同的生长周期对水的需求量也不同,而作物的生产是湿度与光照强度、温度等因素相互耦合起来的非线性系统。这两点给灌溉的精准化控制增加了很大的难度。而模糊控制算法是以模糊集合理论、模糊语言变量及模糊推理为基础的一类控制方法 [4] 。它是人类智能活动的体现,结构简单、适应性好,能够较好地适用于农业灌溉领域。
2. 系统方案
采用STM32作为主控制器,选取入土式湿度传感器以及DS18B20温度传感器作为检测装置并搭建传感器网络,检测信号经过主控制器处理后一方面控制电磁阀灌溉,另一方面由ESP8266 WIFI模块通过以太网传送到物联网云平台,手机APP与物联网云平台可以进行数据交换,既能实时监控又能用手机APP直接控制灌溉。由于农田灌溉系统是一个非线性、大惯性系统,设计采用模糊控制算法,以湿度以及湿度误差值作为输入量,控制灌溉时间,达到节水灌溉的目的。方案框图如图1所示。
灌溉布局图如图2所示。将农田分为多个灌溉区域,灌溉水源引出主灌溉支路,每个主支路又可以分出多个毛细管支路,每一个区域采用五点采样法采集温湿度,经过相应数据处理后用来衡量该区域的温湿度。每个区域都有独立的电磁阀控制控制灌溉。以此实现大范围喷灌。
3. 硬件设计
3.1. STM最小系统模块
本设计采用STM32F103C8T6作为主控芯片,最小系统电路图如图3所示。最小系统包括电源电路、晶振电路、复位电路以及下载仿真电路。芯片第五脚OSCIN与第六脚OSCOUT是时针电路引脚,外接一个8MHZ的晶振,为芯片提供“心跳”。芯片第七脚NRST为复位引脚,将其接成上拉复位,构成复位电路。芯片34脚SWDIO与37脚SWTCK用来进行SWD仿真调试,构成下载仿真电路 [5] 。另外,芯片一号引脚接3.3 V,给芯片以及其他组件提供正常工作电源。
3.2. 温湿度检测电路
采用入土式土壤湿度传感器检测湿度。当湿度变化时,湿敏电阻值也跟着相应的变化。将其与分压电阻串联,通过AD转换测出电阻的分压值,以此来衡量土壤湿度。
采用防水型DS18B20作为温度传感器。该数字型温度传感器测温范围为−55℃~+125℃,固有测温分辨率为0.5℃,使用方便无需外接电路,可编程分辨率为9~12位 [6] 。

Figure 4. Schematic diagram of auxiliary power module
图4. 辅助电源模块原理图
3.3. 灌溉控制电路
PNP三极管作为开关管与继电器线圈部分串联,为了保护继电器,在线圈两端并联一个二极管。继电器开关部分接常开开关,通过单片机I/O口电压变化来控制电磁阀两端电压。
选用型号为2W-025-08的常闭型电磁阀 [7] ,该电磁阀额定电压为12 V,流量孔径为2.5 mm,采用平板式膜片结构启闭可靠,大大增强产品的寿命。
3.4. 辅助电源电路
辅助电源电路如图4所示。整个系统所需的电压等级为12 V、5 V、3.3 V,其中,12 V为电磁阀额定工作电压。为了给电磁阀提供较为稳定的电压,选用15 V的电池为整个系统供电。15 V电压经过LM2576-12芯片以及一个BUCK型降压电路将电压降为12 V,12 V电压经过LM2576-5芯片降为5 V对ESP8266-WIFI模块进行供电,接着通过LM2576-3芯片降至3.3 V对STM32进行供电。
3.5. WIFI模块电路
WIFI模块原理图如图5所示。ATK-ESP8266是ALIENTEK推出的一款高性能的UART-WIFI模块。该模块采用串口与MCU通信方式,内置TCP/IP协议栈,能够实现串口与WIFI之间的转换 [9] 。通过ATK-ESP8266模块,传统的串口设备只是需要简单的串口配置即可通过网络传输自己的数据,它支持LLVTTL串口,兼容3.3 V和5 V单片机系统,可以很方便的与产品进行连接。
4. 软件设计
4.1. 主程序
主程序流程图如图6所示,程序运行,执行完所有内部资源配置以及外围设备初始化之后,进入定时器中断。定时器中断中设置两个不同时间的定时任务,如图7所示,图中flag为控制模式选择的标志位。每隔200 ms通过WIFI将数据发送至服务器,同时每隔600 ms查询标志位状态。当标志位为“0”

Figure 5. Schematic diagram of WIFI module [8]
图5. WIFI模块原理图 [8]
时为自动灌溉模式,系统检测湿度是否达到指定范围,当低于指定湿度值则开启电磁阀灌溉;当APP发送指令使标志位置“1”时,切换到手动灌溉模式,可以通过手机APP发送控制指令到云平台直接控制电磁阀的开断。
4.2. 灌溉控制部分程序
对测试区域温湿度进行采集处理后,判断当此时处理后数据是否达到设定值,未达到时控制电磁阀开启进行灌溉,若已达到则关闭电磁阀。
4.3. 数据处理部分程序
检测模块采用五点采样法,对五组温湿度采集十次数值,取十次数据的平均值,接着对五组数据进行滤波,排除传感器非正常工作情况,取滤波后五组数据的平均值,通过模糊控制器处理后执行指定灌溉动作。
4.4. 通信部分程序
串口1初始化完成后,开始自动搜寻指定WIFI,当搜寻到WIFI时进行连接,WIFI连接到服务器时返回指定字符“OK”并开始进行数据传输。
5. 上位机APP设计
基于Android平台的智能灌溉APP控制终端设计采用Android studio实现设计。这是一个基于IntelliJ IDEA的Android集成开发工具 [10] ,它在页面xml样式参数配置方面强,参数可直接选择配置,代码提示和搜索功能非常强大。
5.1. 设计步骤
1、根据项目要求,对APP的功能进行定位,确定功能需求;
2、构建节水灌溉系统APP的雏形,设计出框图;
3、根据设计的框图搭建基本框架;
4、根据需求,编写程序,实现所需功能;
5、对APP功能进行测试,构建与主控制器之间联系,上机测试;
6、对APP功能进行完善。
5.2. 界面介绍
进入APP后跳转进入登录界面,输入正确的账号以及密码登录成功后,手机APP从云平台获取“ACCESSTOKEN”,这个ACCESSTOKEN就相当于开门的钥匙,获取之后手机APP就能与平台进行通信。接着进入图8所示控制区域选择界面,当选中A区时,进入A区控制界面,该界面可以实时显示该区域的温湿度,可通过如图9所示的开关按钮操控电磁阀执行灌溉操作。
6. 系统仿真及实物制作
6.1. 系统仿真
模糊控制是以模糊集理论、模糊语言变量和模糊逻辑推理为基础的一种智能控制方法,它从行为上模仿人的模糊推理和决策过程 [4] 。本设计采用以黄瓜初花期为例利用模糊推理的思想将将被控量e以及误差值eu作为模糊控制器的两个输入,输出量为灌溉时间,误差值等于设定值减去测量值eu = h0 − h,该结构框图如图10所示。

Figure 10. Block diagram of fuzzy control structure
图10. 模糊控制结构框图
模糊控制器采用二维的mandani控制器,采用重心法解模糊化处理,即取隶属度函数曲线与横坐标围成面积的重心作为模糊推理的最终输出值,即使输入信号只有微小变化,输出也会发生变化,灵敏性更好 [4] 。连续论域中,输出
(1)
6.1.1. 黄瓜水分需求特点
黄瓜是较为常见的蔬菜,本系统以黄瓜为例进行系统仿真。黄瓜的生长分为幼苗期、初花期、初果期和盛瓜期,对于不同的生长时期需水量也不同,需要分情况讨论。
为了使黄瓜产量以及水分利用率达到最大化,通过查找大量资料可以得出以下结论:
幼苗期最佳土壤湿度范围大约为[26%, 32%],最佳土壤湿度约为30%;
初花期最佳土壤湿度范围大约为[19%, 32%],最佳土壤湿度约为23%;
初瓜期最佳土壤湿度范围大约为[25%, 32%],最佳土壤湿度约为26%;
盛瓜期最佳土壤湿度范围大约为[25%, 32%],最佳土壤湿度约为28% [11] 。
6.1.2. 模糊规则表建立
将湿度以及湿度的误差作为模糊输入变量。首先将湿度e、湿度误差eu以及灌溉时间u划为5个等级,e = {干燥,较干燥,适中,较潮湿,潮湿};eu = {1级,2级,3级,4级,5级};u = {T1, T2, T3, T4, T5};根据系统要求查找资料,取e,eu的论域均为:{1, 2, 3, 4, 5},输出量u的论域为{0, 1, 2, 3}。将上述控制规则采用“IF A, B THEN C”的形式来描述可得到25种规则,规则表如表1所示。

Table 1. Table of fuzzy control rules
表1. 模糊控制规则表
6.1.3. 仿真结果
构建规则完成后,得到该模糊控制输出曲面如图11所示。当湿度值与误差值不同时,对应的灌溉控制时间也不同。如误差小且所需要的湿度值小时灌溉时间较小为T1,该时间值根据不同的实验环境而变化。
通过仿真调节参数得到被控对象传递函数为
(2)
通过simulink搭建模糊控制模型,设定初始值为160,仿真时间为100 s,用scope查看波形如图12所示。仿真证明该控制模型能够平稳地达到设定值,尽管快速性不够好,但是总的来说能够达到节水灌溉的要求。
6.2. 实物制作
实物图如图13所示。设置好传感器摆放位置后将各个部位进行固定,并检查确认导管没有漏水现象。
7. 总结
本文对节水灌溉模型的设计、仿真与制作进行了详细的阐述。考虑了农田灌溉系统的滞后性与非线性性,设计了基于模糊控制算法的控制系统,通过MATLAB仿真选取了合适的参数来调节电磁阀的导通时间,达到节水灌溉的目的。通过需求分析、建立框图以及程序编写,使用Android Studio设计了一款操作简单,界面清爽的基于Android系统的手机应用程序 [12] 。系统成本较低、操作方便、控制系统较为稳定,满足了智能节水灌溉的基本要求,但是快速性相对较差。
基金项目
论文受到湖南省教育厅科学研究项目支持(编号:10C1005)和国家大学生研究性学习计划项目支持(基于土壤湿度检测的智能灌溉系统设计)。