自动灌溉系统设计分析

时间:2023-03-07 08:40:05

自动灌溉系统设计分析

摘要:以STM32单片机和树莓派为平台,结合LoRa、GPRS等外设设计出了一套适用于田间种植灌溉的自动灌溉系统,用以解决传统大水漫灌浪费水资源、凭经验灌溉的不准确性等问题。该系统具有成本低廉、节省人力资源等优点,适合推广使用。

关键词:自动灌溉;STM32;LoRa无线通信

目前,我国传统的农业灌溉多采用大水漫灌的方式,灌溉完全凭借农民经验,由此造成的水源浪费问题尤为严重,对水资源的有效利用率远低于其他农业大国[1]。同时,我国是一个缺水国家淡水资源总量为28000亿m3,占全球淡水资源的6%,居世界第4位[2]。按全国近14亿人口计算,人均不到2200m3,为世界平均水平的1/4[3]。因而,结合我国农作物种植生产的现况,全自动灌溉系统软件已经变成智慧农业不可缺少的一部分。

1自动灌溉系统硬件设计

1.1自动灌溉控制系统功能要求

整个系统由一个控制模块与多个采集灌溉模块组成,灌溉网覆盖需要浇灌的土地,通过App可对整块土地用水量的监控、控制以及分析。整个控制系统由采集灌溉模块、控制模块和云端以及手机App组成。采集灌溉模块负责监控当前模块土壤湿度并根据土壤湿度情况开关电磁阀,以达到维持土壤湿度的目的,并且将采集到的土壤湿度以及浇水量发送到收集模块。收集模块负责收集采集灌溉模块上传的土壤湿度以及对采集模块设置,以达到调整采集灌溉模块浇水量的目的,并将浇水量以及土壤湿度变化数据显示到屏幕,上传至云端备份。方便用户使用App实时查看当前土地失水和浇灌情况。

1.2灌溉采集模块硬件设计思路

灌溉采集模块采用STM32F103RET6单片机作为主控板,与三个电磁阀三个土壤湿度YL-69传感器以及Lora通信模块连接。可以实现与收集模块的通信和采集土壤湿度以及打开电磁阀进行灌溉三大功能,原理如图1所示。电路元器件选用:由于自动灌溉系统需要长期在户外环境使用,所以外设器件需具有满足抗老化、耐磨损、抗干扰性强、低功耗、低成本特性。根据灌溉采集模块的功能以及所使用的外设,对主控板的GPIO资源进行分配如表1所示。

1.3收集模块硬件设计思路

收集模块需要满足如下功能:1)对范围内的采集浇灌节传输的数据进行整理;2)将采集浇灌节传输的数据进行整理后上传至云端;3)将采集浇灌节传输的数据进行整理后显示到屏幕上;4)下发更改修正灌溉数据的指令到采集灌溉模块。所以采用更高性能的树莓派作为监控模块的主控板,在与虚拟服务器的通信技术层面,本文将选用GPRS无线组网技术。电源采用蓄电池供电加太阳能充电的可持续化供电方案,蓄电池采用市面成熟的12V锂电池,可以提供整个自动灌溉系统运行24小时所需电量。并且加入太阳能光伏板供电,此套供电方案可省去不必要的电线资源耗费,以及减少供电安全隐患。

2自动灌溉系统软件设计

整个软件的设计部分包括采集灌溉模块的软件设计与收集模块的软件设计以及App远程操控硬件概念的设计。整个软件部分采用了收集模块、灌溉模块、App联合控制的设计思路。使得自动灌溉系统可以实现远距离控制、田间控制等功能。

2.1通讯协议

本文设计的自动灌溉控制系统收集模块和采集灌溉模块的通讯协议被设计为私有协议,可以同时兼顾灵活性与良好的扩展性。通讯协议总共为八个字节,以极低的内存存储了灌溉模块与收集模块之间交换数据的所有内容,格式如表2所示:同时根据要传递的信息制定不同的功能码,以标识单片机程序要识别的信息并做出相应的反应。功能码定制如表3所示:

2.2采集灌溉模块

系统上电后首先开始系统自检,检测是否能够感应到土壤湿度数据以及各集成模块是否正常工作。系统自检完成后,开始与接收模块建立通信。此时开始执行接收模块下发的指令,校验指令完整性。指令校验完成后,将收集模块下发的预设数据与本地数据对比,若不同则更新本地模块数据为收集模块下发的预设数据,系统初始化流程结束。系统初始化流程结束后开始采集土壤湿度数据,若小于预设湿度则认为土地干涸需要浇灌,此时水阀打开浇灌土地,同时继续采集判断土壤湿度数据,若大于系统预设值以后则认为土地湿润不需要浇灌,进而关闭电磁阀并视为完成一次浇灌。浇灌结束后上传一次土壤浇灌信号让收集模块统计,具体工作流程如图2所示。

2.3收集模块

系统上电后收集模块程序自启动,由于树莓派硬件均被其搭载的操作系统初始化过,所以开发的收集程序无需初始化硬件。系统上电后收集模块与采集灌溉模块建立数据通信,校验灌溉模块上传的数据完整度。校验完成后若用户设置新的土壤湿度上下限数据,则向采集灌溉模块下发新的土壤湿度上下限,若用户没有设置新的土壤湿度数据,则向采集灌溉模块下发默认预设值。下发完成后开始使用中断的方法接受采集灌溉模块上传的灌溉信号,接收完成后统计灌溉次数、灌水量,并上传至云端。具体程序设计如图3所示。

2.4系统App模块

系统App从云端数据库下载由收集模块上传的灌水量以及灌溉次数,可实现远程监控田地灌溉情况和失水情况。同时也支持用户在App设置土壤湿度上下限并至云端,由收集模块下发至采集灌溉模块,可避免用户频繁往返田地。通过软件的自动控制灌溉,可以将土壤湿度维持在一个可控的能够预设的范围内,为作物的生长过程提供一个良好的土壤湿度条件。

3自动灌溉控制系统调试

3.1灌溉功能调试

系统供电正常后应验证由继电器、电磁阀组成的灌溉电路是否可控。由于调试软件Proteus无法模拟控水阀门,所以在仿真电路中使用红色LED灯代替浇灌阀门。电路上电后,程序启动等待达到浇灌时间后,发现继电器吸合后红色LED灯亮,证明继电器电路正常工作。

3.2灌溉采集模块测试

加入DHT11模拟土壤湿度数据如图4所示。将土壤湿度预设值调为50,此时U3土壤湿度为80,U2为50,U4为30时说明U3处土壤湿度足够,U2处土壤湿度正好达标,U4处土壤湿度不足。所以U3位置继电器RL2关闭停止灌溉,U2位置继电器RL1即将关闭预停止灌溉,U4位置RL3开启继续灌溉。

3.3灌溉采集模块与收集模块通信调试

给Proteus收集模块电路加入虚拟串口模块,然后使单片机外设USART1的IO口PA9与PA10f分别连接到虚拟串口的RXD与TXD。最后,当收集模块接收到采集模块发起的通信请求后,通过仿真功能可以看到收集模块向采集模块发送了8个字节的同时,采集模块也向收集模块返回了8个字节指令,如图5所示。证明单片机与树莓派之间的通信功能完整,不存在丢失数据的情况。使用串口调试助手可发现灌溉模块与收集模块通信正常,当检测到收集模块下发更改预设土壤湿度指令时,灌溉模块能够及时响应并更改自身预设值。

3.4收集模块功能调试

收集模块开机后功能正常,通过模拟调节灌溉模块湿度发现灌溉模块数据上传正常。灌溉模块程序运行稳定无Bug,下发指令正常、灌溉信息显示正常,结果如图6所示:

4结束语

本系统通过发射端传递的湿度信息﹐通过接收端对农田湿度进行调节﹐以到达节水灌溉的自动控制为目的。然而在调试过程中发现本系统还是存在着或多或少的缺点,比如在编程时低估树莓派性能,没有完全发挥树莓派性能,导致收集模块的用户界面过于简陋,以及与服务器交互的远程控制App,没有设计出供苹果手机使用的iOS端,只有安卓端,这些问题需要在今后解决。

参考文献

[1]钱治丞,宋博,刘勇,等.水肥一体化远程施肥机控制系统设计与实现[J].黑龙江大学自然科学学报,2021,38(3):364-371

[2]曲颂,刘玉敏,宋博,等.自动灌溉控制器设计与实现[J].黑龙江大学工程学报,2021,12(4):72-77

[3]边吉.中国水情资讯[J].决策与信息,2012(10):7

作者:潘蓉 杨国斌 陈永琪 单位:江苏农林职业技术学院

上一篇:高校大学生思政教育工作研究 下一篇:小区住宅集中供能系统设计分析