赵苏徽,陈 晓,2
1(南京信息工程大学 电子与信息工程学院,南京 210044)
2(南京信息工程大学 江苏省大气环境与装备技术协同创新中心,南京 210044)
与世界上其它国家相比,我国淡水资源总量处于前列,但是由于人口基数大使得我国人均水资源拥有量处于世界末位[1].许多地区缺乏水资源,当地只能通过大量开采地下水来缓解水资源危机.目前我国地下水使用量已经严重超过国际警戒线,地下水超采面积也已从5.6 万km2扩大到18 万km2[2].与此同时中国大部分地区仍在使用传统的漫灌方式,这也是导致水资源危机的重要原因[3].从目前发展的趋势来看,尽管我国农业高效节水灌溉的总面积不断增加,但使用喷灌和微灌方式的灌溉面积仍然很小,加之对雨水利用率低,使得我国在对水资源利用的问题上与世界主要国家相比相差甚远.因此为缓解水资源短缺问题而发展先进的灌溉技术已经迫在眉睫.
国外在智能灌溉方面起步比我国要早,农业生产自动化程度高.早在上世纪80年代,美国的Benami 等人[4]开发了一个节水灌溉系统,其使用土壤湿度传感器检测土壤水分含量,将数据传给控制器,而控制器根据传感器测得的土壤相对湿度与预设值进行对比决定是否灌溉.Goap 等人[5]基于物联网技术开发了一套智能灌溉系统,利用ZigBee[6]以及WiFi 技术进行通信组网,并将传感节点的实时数据发送至远程服务器进行数据解析与存储,同时决定是否需要进行灌溉,并在网页端进行直观的显示.我国的灌溉技术虽然起步没有国外早,但现阶段的发展情况已经相差不大.刘书伦等人将物联网技术与Android 相结合设计实现了利用Android 平台对农业农田远程灌溉系统的控制[7].系统利用多种传感器组成的节点网络来实现远程监测的同时控制多个控制器节点.何江[8]将物联网技术与树莓派相结合开发了一种智能云灌溉系统,利用了现在流行的Web 技术,如Python,Flask 等,实现从Web 端进行远程控制以及数据监控,模糊算法把PWM 作为输出控制泵的转速.
在核心控制器件选择时,对比C51、STM32 等系列的单片机[9-11],树莓派具有功能强大、操作方便的优点,本身既可作为下位机也可以作为上位机,所以本文选择了目前最新型号的树莓派4B 作为核心控制器件.软件设计时考虑到云平台技术开发成本低、需求扩展灵活、数据访问的移动性强等优点,完全可以替代传统的Web,所以并没有选择Web 结构,而是在云平台上开发应用,降低整套系统成本.现在云平台有很多,本文使用的是中国移动的OneNET 云平台.系统整体分为硬件和软件两大部分,其中硬件系统包括土壤湿度采集电路、空气温湿度采集电路和直流蠕动泵控制电路;软件系统包括土壤湿度采集和上传程序、空气温湿度采集和上传程序、直流蠕动泵驱动程序、气象数据获取程序、数据库设计和模糊控制器设计程序等.系统整体框图如图1所示.
图1 系统整体框图
硬件电路连接时将空气温湿度传感器DHT11、土壤湿度传感器YL-69 和数模转换器PCF8591 的VCC端都接到树莓派的2 号脚,GND 端都接到树莓派的6号脚.DHT11 的DATA 端接到树莓派的7 号脚,PCF8591的SDA 端和SCL 端分别接到树莓派的3 号脚和5 号脚.MOS 管驱动的GND 端和PWM 端分别接到树莓派的2 号脚和40 号脚,具体连接如图2所示.
图2 智能灌溉系统整体连接图
YL-69 土壤湿度传感器为四线制,其采用的电源为3.3 V-5 V,电压比较器LM393,D0 引脚通过和设定的阈值相比输出数字量0 或1,A0 引脚可以输出模拟值,这个数值更加准确.随着土壤湿度值变大时,得到的模拟量值也相应的变大.
本文在使用YL-69 土壤湿度传感器时因为要输出精确的土壤相对湿度,所以要从A0 引脚输出模拟量,因此必须要有一个模数转换器将模拟信号转换为数字信号传输到树莓派.采用的模数转换器是PCF8591,将YL-69 的模拟量输出端A0 连到PCF8591 的模拟信号输入端AIN0,模数转换器将土壤湿度转换成精确的数值,然后通过I2C 总线传输到树莓派进行数据处理.电路连接如图3所示.
图3 土壤湿度采集电路连接
DHT11 传感器出厂时便集成了电阻式的感湿元件和NTC 测量温度的元件,内部已经包含了8 位的单片机.由于它具有串行单线接口,所以体积小巧,耗电少,并且传输的信号最高可达20 米.它拥有优良的品质、超快的反应能力、强大的抗干扰能力和超高的性价比让很多精准测量甚至可以说是苛刻测量的场所都选择它.DHT11 温湿度传感器共有4 个引脚,在使用时NC脚悬空,VCC 接5V 直流电源,GND 接地,DATA 连接到树莓派的GPIO.7 脚,电路连接图如图4所示.
图4 空气温湿度采集电路连接
本文在实验时灌溉对象是盆栽草莓,需水量不大,因此灌溉时采用微型蠕动泵即可.其功率较小,能够使用晶体管驱动,更加适合间歇性的工作.选用电机时,步进电机的工作方式主要是“开环”[12],而且价格方面比较贵.相比之下直流电机价格比较便宜,并且可以通过反馈系统间接控制电机.综合以上考虑,本文采用直流电机加蠕动泵的组合.直流蠕动泵驱动电路采用N 沟道增强型场效应管,双MOS 管并联结构可以使导通电阻降低一半.与常用的三极管驱动电路L298N 相比较,该驱动模块少占一个输出引脚,并且MOS 管是电压型器件,需要的驱动电流更小,功耗也远低于三极管[13].电路连接如图5所示.
(1)概述生长素的生理作用;说出生长素作用的两重性,植物不同器官对生长素的敏感性不同;描述植物顶端优势的原因、解除方法及应用
图5 直流蠕动泵控制电路
本灌溉系统的控制程序在树莓派4B 的Raspbian系统上运行.编程软件为Python 3.7,数据库为MariaDB(MySQL 的一个分支)[14].主要流程是:首先开启I2C 设备,然后传感器按照设定好的时间间隔读取当前土壤湿度和空气温、湿度,将采集到的数据传入到树莓派的MySQL 数据库,并上传至OneNET 云平台.与此同时从互联网获取明日气象数据并将MySQL 数据库中的数据共同发送到模糊控制器,模糊控制器将数据进行处理后得到灌溉时长,控制程序根据灌溉时长控制蠕动泵工作,整体流程图如图6所示.
图6 软件系统流程
采集空气温湿度使用的传感器为DHT11,采集时间间隔为5 分钟,每次传输的是一个40 位二进制数,其中前16 位是湿度数值的整数和小数,中间16 位是温度数值的整数和小数,最后8 位是校验位.校验准则为前32 位所得数据相加应为最后8 位校验位的数值,当校验成功时,说明采集结果正确,可以使用这个数值;当校验失败时,说明采集结果错误(可能是程序错误,也可能是传感器问题),此次采集数据将被丢弃.
土壤湿度采集流程与空气温湿度采集流程大体一致,只是多一步模数转换,采集流程在这不再作赘述.
本文控制灌溉时将PWM 设置为固定值,在得到模糊控制器计算出的灌溉时长T后通过MOS 管驱动直流电机进而使蠕动泵工作,让程序时延Ts 后即可控制直流蠕动泵工作.
(1)数据库需求分析
由于本灌溉系统需要保存的数据仅有各个时刻传感器采集到的数据,所以仅需要一张传感器表来存储这些数据,包括土壤湿度、空气湿度、空气温度、时间和一个为了区分记录的id.
(2)数据库概念结构设计
通过对智能灌溉系统的需求进行分析,本系统需要一个实体属性模型,即传感器实体,其实体属性图如图7所示.
图7 传感器实体属性
(3)数据库逻辑结构设计
根据上述需求分析和概念结构设计已经抽象出实体的属性,建立传感器表见表1.
表1 传感器表
(4)数据库连接
数据库创建完成后,利用Python 的PyMySQL 库与数据库建立连接并把数据导入.
数据库连接本系统采用的模糊逻辑系统为经典的Mamdani 型模糊逻辑系统[15].系统共有两个输入数据分别为Eh(土壤湿度误差)和Ech(误差变化率),一个输出为T(灌溉时长).输入的语言变量都为5 个{NB、NS、Z、PS、PB},论域为[-4,4];输出的语言变量也为5 个{Z、S、M、B、B+},论域为[0,4].实际论域到模糊论域的量化因子为:
其中,yi为模糊论域上限,xi为实际论域上限.
模糊论域P到实际论域Q的比率因子为:
其中,q为 实际论域上限,p为模糊论域上限.
本文的量化因子和比率因子分别为:
在进行模糊推理之前,首先必须确定隶属度函数,Eh、Ech 和T 全都采用三角形隶属度函数[16].依据一线人员的工作经验和专家知识建立起模糊逻辑规则后进行赋值即可得到模糊规则响应表[17],后续只需要执行相应的查表工作即可得到科学的灌溉时长.模糊响应规则表见表2.
表2 模糊响应规则表
此表在逆模糊化时采用“最大隶属度法”,得到精确量的输出.
灌溉时主要考虑土壤湿度的影响,但也不能忽略空气温湿度的影响,经过多次测量,本地空气温度在[15,35]之间,空气湿度在[50,90]之间,定义由空气温度决定的灌溉时长为Ta,由空气湿度决定的灌溉时长为Tb,模糊控制器得到的灌溉时长为Tc.其中:
在空气温度小于25℃,空气湿度大于70%RH 时灌溉时长都为0.经过综合考虑,空气温度、空气湿度占比和模糊量的权重占比分别为:0.1、0.2 和0.7.最终得到系统灌溉时长T=Ta+Tb+Tc.
首先注册一个云平台账号,然后在开发者中心创建产品树莓派4B,设备接入协议选择HTTP.创建完产品后继续添加设备并为OneNET 监测的环境变量添加相应的数据流模板.树莓派上传数据都是通过数据流传入,可以设置数据流相关参数.最后新建应用并添加应用LOGO.在应用中可以设置显示温湿度的折线图、柱状图等.OneNET 云平台监控图如图8所示.
图8 云平台监控图
用户可以通过电脑端直接登录云平台或者使用手机、平板通过设备云APP 访问云平台即可完成数据监控,其网络架构如图9所示.
图9 系统网络架构
系统测试是检验智能灌溉系统的灵敏性和准确性.如种植草莓平均的温度大约在15-25℃范围内,处于生长期的草莓最适宜的土壤湿度为70%RH 左右.将直流蠕动泵的PWM 设为固定值60,环境温度为22℃,测试系统在不同土壤湿度环境下的灌溉时长.为了模拟更多土壤湿度的情况,用人工加水来提高土壤湿度.在灌溉测试时用秒表记录灌溉时长与模糊控制响应表所得的灌溉时长进行对比.测试结果见表3.
由表3 中数据可以看出系统灌溉时长的误差最大不超过2%,能够有效地达到节水的效果,系统完全实现了自动灌溉,可以释放大量的劳动力,也能够加快我国农业从经验种植到科学种植的进程.
表3 系统灌溉结果
本文设计了一种智能灌溉系统,能够根据当前环境状况自动计算出灌溉时长.系统采用了树莓派4B 作为核心控制器件,监控方面在云平台上开发应用取代传统的Web 端,大大降低开发成本,进而降低了整套系统的成本.系统经过初步测试,灌溉时长的最大偏差不超过2%,且反应迅速,具有很好的准确性和灵敏性,在今后大规模的农田灌溉领域有广阔的应用前景.后续可以利用智能算法[18-24]研究不同农作物对化肥的需求,将灌溉系统与施肥系统相结合,加快农业自动化进程.