蔡程飞 张彬 黄兴平 帅小应 宋欣璐
摘要:文章设计了一种全天候自动监测和自动控制浇水的智能灌溉系统。本系统可以有效减轻小型农田农民在农作物生长期间进行人工巡检和繁重浇水工作的劳动强度。通过使用STM32单片机,采用液位传感器、土壤湿度传感器等设备来收集环境参数,如环境湿度、环境温度和土壤湿度等数据。通过对这些数据进行分析处理来控制浇水设备的启停,以达到最佳浇水效果。如果农作物需要浇水,本系统将自动启动灌溉设备并浇灌适量的水,然后对各个传感器进行数据采集,并通过Wi-Fi传输更新用户平台的数据。灌溉过程中,当农作物生长环境处于理想状态时,系统会停止自动浇水,从而节省了农作的时间和农民的体力消耗。另外,基于小型农田的土地分散、土地使用权转让频繁的现实情况,本系统使用的设备具有可移动性较强、投资成本低、负担小、后期维护费用较少等特点,具有广泛的应用推广价值。
关键词:STM32;传感器;灌溉器;Wi-Fi通信
中图分类号:TP301.6 文献标识码:A
文章编号:1009-3044(2024)10-0001-04
0 引言
传统的灌溉系统[1-2]通常存在水量过度使用、低效率等问题。这不仅浪费水资源,还可能降低农作物产量和品质。土壤湿度过高会直接或间接影响农作物的生长,例如导致土壤中的盐分积累,进而影响农作物的生长和发育。在严重情况下,这可能导致土地盐碱化,完全无法种植。因此,发展智能灌溉系统,通过运用传感器、控制器、数据分析等技术手段,实现精准水分配和定向灌溉,可以最大限度地节约水资源,并提高农业生产效率和经济效益,缓解水资源短缺等问题。
1 系统总体设计
系统采用STM32芯片作为主控单元,结合环境温湿度传感器模块,能够实现一个适合农田的监测控制灌溉系统。系统可在液晶显示屏上显示传感器实时数据,并通过Wi-Fi模块上传至云端,具备实时监控的功能,方便用户实时查看数据。系统的硬件组成框图如图1所示。
2 系统硬件设计
该系统由多个模块构成,包括主控模块、湿度传感器模块、温度传感器模块、继电器模块、液晶显示屏模块、Wi-Fi模块和供电模块等。其中,主控模块采用STM32单片机,用于控制整个系统的运行。土壤湿度传感器模块YL-69 和环境温湿度传感器模块DHT11分别用于检测土壤和环境的湿度、温度。继电器模块srd-05vdc-sl-c可控制灌溉模块的工作状态。液晶显示屏模块可以显示环境湿度和温度信息以及灌溉状态等信息。Wi-Fi模块可实现无线通信,连接手机终端可实现远程监控或控制。供电模块则为整个系统提供电源支持。
2.1 主控制器模块设计
主控制器模块采用STM32F1系列芯片,芯片的内部采用ARM公司设计的32位Cortex-M3处理器,该处理器基本结构如图2所示。
2.2 环境温湿度检测模块设计
DHT11传感器为数字型传感器,无须进行A/D转换,DHT11 传感器的信号引脚可直接与单片机的GPIO相连,数据信号用STM32 芯片的PB3 采集。由于DHT11传感器输出的数字信号非常微弱,需要采用一个上拉电阻连接到3.3 V 电源提高信号强度,将DHT11信号引脚通过一个约为4.7 KΩ的上拉电阻连接到3.3 V电源引脚上,再连接到STM32芯片PB3引脚上,实现DHT11传感器采集电路的硬件连接。
2.3 土壤湿度传感器模块设计
土壤湿度传感器模块YL-69采用三线制接法,其中DO引脚为数字量输出接口,AO引脚为模拟量输出接口,电源VCC支持3.3~5 V电压供电,GND引脚接地。模块的DO引脚连接到STM32芯片的GPIO引脚,通过主控制模块检测DO引脚上的高低电平,来测算土壤湿度。硬件连接为:1)4脚为VCC,外接3.3 V电源;2)3 脚为GND,外接GND;3)2 脚为DO,外接STM32芯片的PB5引脚,采集传感器的数字量(0或1),当土壤湿度低于设定阈值时,该接口会输出高电平1,而当土壤湿度高于设定阈值时则输出低电平0。
2.4 Wi-Fi 模块设计
Wi-Fi模块与STM32芯片通过UART串口进行通信。UART串口的通信原理为:Wi-Fi模块的TX引脚连接到STM32芯片的RX引脚,而Wi-Fi模块的RX引脚连接到STM32芯片的TX引脚,实现双向通信。在软件层面上,STM32芯片需要配置UART串口的波特率、数据位、停止位和奇偶校验位等参数,以便与Wi-Fi模块进行通信。
3 终端应用设计
3.1 主流程设计
基于STM32设计的智能灌溉系统在运行时先进行各个模块的初始化操作[3]。系统通过传感器来收集环境湿度、温度、土壤湿度等数据,并对收集的数据进行实时计算分析。根据计算处理结果来控制灌溉设备的启停,以达到最佳的浇水效果。如果植物需要浇水,系统将自动启动灌溉设备,浇灌适量的水,同时对各个传感器进行数据采集,并将收集到的数据进行监测,通过互联网更新用户平台数据。具体流程如图3所示。
3.2 环境温湿度采集流程
智能灌溉系统的温湿度采集模块的运行流程包括初始化传感器、读取传感器数据、处理数据、根据数据判断、控制执行和程序循环等步骤。通过这些步骤,系统可以实现对环境温湿度的精确监测。在程序运行前需要初始化传感器。在传感器采集数据后,读取传感器数据并进行数值转换,将转换后的数值发送到显示屏,同时对数值进行判断。超出预设值则需要进行信号灯的提醒控制,在温度下降后关闭信号灯,并且再次循环上述流程。环境温湿度采集流程如图4所示。
3.3 灌溉模塊流程
灌溉前,需要通过传感器等设备获取环境参数,包括环境温度、环境湿度、土壤湿度等。这些参数可以作为参考标准,帮助系统判断是否需要进行灌溉,以及灌溉量的大小。根据环境参数和预设的灌溉模式,系统会通过一定的算法判断是否需要进行灌溉。如果环境参数超出预设的范围,或土壤湿度低于设定的水分阈值,就会触发灌溉程序。如果系统判断需要进行灌溉,控制器就会向继电器发送控制信号,将水源中的水抽入灌溉系统中。当水泵启动后,水会通过管道输送到不同的喷头或滴灌带上进行灌溉。在灌溉过程中,系统会根据设定的灌溉模式、灌溉时间、水量等参数,进行智能控制,确保灌溉的效率和水量的合理分配。在灌溉过程中,系统会实时监控灌溉的情况,包括土壤湿度、水位、灌溉时间等。一旦发现异常,系统会自动停止灌溉,并发出警报。当灌溉时间到达预设的时间或水量达到设定的标准后,系统会自动关闭水泵,结束灌溉。同时,灌溉模块会将灌溉过程中的信息和数据记录下来,以便后续的数据分析和优化。灌溉模块运行流程如图5所示。
3.4 Wi-Fi 模块流程
在程序开始运行时,需要对ESP8266 进行初始化[4]。通过AT指令或者编程的方式连接Wi-Fi网络,需要设置Wi-Fi名称和密码。连接成功后可以获取IP 地址,设置串口波特率、连接Wi-Fi 网络、设置IP 地址等。指定服务器的IP地址和端口号,使用TCP 或者UDP协议连接到服务器。获取发送给服务器的传感器数据或者控制指令,以及服务器接收数据,包括灌溉时间、传感器数据等,将获取的数据进行处理发送。
4 系统功能测试
4.1 程序运行
程序使用hal库以简化搭建嵌入式系统的开发工作。使用hal库可以轻松地访问设备的底层硬件接口,同时兼容各个操作系统和编译器。这种模块化设计提高了系统的可移植性。从上到下依次是按键、LED灯、显示屏、延时函数、温湿度传感器的配置代码。通过在主函数初始化完成后,循环调用按键、LED灯、显示屏、延时函数、温湿度传感器,土壤湿度传感器的配置代码实现系统多任务处理。在STM32 芯片的代码中使用GPIO控制传感器。对用于连接传感器的GPIO口进行配置,设置为输入模式,并使能其上拉电阻。然后,通过对传感器的信号引脚上下拉钳位,发送给传感器启动信号,之后读取传感器的响应信号,并读取传感器数值。
首先,根据土壤湿度传感器电位器设置的阈值,读取PB15引脚的电平,判断是否开启灌溉,低电平时设置继电器控制引脚为高电平,驱动继电器吸合打开,反之设置继电器关闭。在结构体Water_GPIO_Init()中初始化土壤濕度传感器连接的PB5引脚。其次,初始化传感器。使用DHT库的read()函数读取传感器数据。该函数返回一个状态值,表示读取是否成功。如果读取成功,使用DHT库的humidity和temperature 函数获取湿度和温度数据。获取湿度和温度数据后,可以对其进行处理。将数据输出到串口,或者将其存储到变量中,用于后续的判断和控制。根据读取到的数据,执行相应的控制操作。在程序的最后,需要进行循环,不断读取传感器数据,并根据数据进行实时判断和控制。
4.2 配置入网
支持两种模式配置入网:SoftAp和AirLink[5]。使用gizwitsSetMode()接口可以设置入网方式,而当前系统采用的是AirLink模式。在这种模式下,设备会持续接收特定编码的Wi-Fi广播包。当用户连接可用的Wi-Fi网络后,使用机智云App发送编码后的Wi-Fi网络SSID和密码信息。
4.3 运行测试
土壤湿度传感器测试:PWR_LED检测已插好电源,DO_LED亮起表示湿度达到或大于阈值,如图6 (a) 所示。反之则熄灭,如图6(b)所示,调整电位器,可调整湿度预设值。
液位传感器测试:浮球下降,如图7(a)所示,水泵接收信号后自动关闭,如图7(b)所示,达到保护设备的作用。
4.4 整体测试
系统整体测试需要满足以下几个结果,如表1 所示。
4.5 设备运行记录
通信日志记录设备主动上报的数据,每隔一段时间,设备会自动向服务器发送采集到的数据,比如环境温湿度、指示灯与水泵的开关状态。监测设备[6]的正常运行,以便及时发现异常情况并采取措施。通信日志如图8所示。
5 结束语
系统经过集成测试,智慧灌溉系统的硬件连接正确,各个模块可以正常工作。程序在软件开发环境下仿真正确,程序烧录后各传感器,环境温湿度传感器、土壤湿度传感器、液位传感器可以正常采集环境参数并上传,手机端可以正确连接网络且可以使用,PC端可以查看运行日志,继电器、水泵等元器件也可以及时响应。本系统需要实现的功能经过测试均能正常工作。本系统依据小型农田现状,设计了利用现代技术、传感器和控制技术实现的自动化水域浇灌管理系统。其主要目的是实现自动智能化的水域浇灌,避免人工操作过程中出现的疏漏和浪费,提高农作物的成活率、增加产量、节约水源的用量以及降低软硬件和人工的管理成本、提高效率。
参考文献:
[1] 孙凤霞.浅谈节水灌溉农业中计算机的应用[J].消费导刊,2008(4):188.
[2] 李洪涛,王晓晶.基层节水灌溉技术推广中存在的问题以及改善措施[J].科技传播,2013,5(21):135,102.
[3] 张守艳,宗峰.基于物联网技术的水肥一体化智能灌溉系统设计[J]. 电子测试,2022(19):30-32,11.
[4] 管嘉诚,李晓烽,黄志芳,等.基于ESP8266与机智云的物联网智能家居[J].物联网技术,2023,13(3):140-142.
[5] 程章翔,辛元芳,姚勇,等.基于NB-IoT的智能灌溉系统设计[J].集成电路应用,2021,38(6):32-44.
[6] 曲颂,刘玉敏,宋博,等.自动灌溉控制器设计与实现[J].黑龙江大学工程学报,2021,12(4):72-77.
【通联编辑:梁书】