2025 Make Blocks阶段2 - 实现智能园艺灌溉系统
基于物联网技术的智能园艺灌溉解决方案,通过STM32G431Rx微控制器作为核心处理器,配合ESP32-MINI-1实现云端连接,实现自动化、智能化的植物养护管理。
标签
Arduino
开发板
WiFi
智能家居
无线
Make Blocks
Arduino Uno R3
ESP-AT
园艺灌溉
ESP32-MINI-1
鲜de芒果
更新2026-02-26
38
KiCad文件
全屏

一、项目介绍

本系统是一款基于物联网技术的智能园艺灌溉解决方案,通过STM32G431Rx微控制器作为核心处理器,配合ESP32-MINI-1实现云端连接,实现自动化、智能化的植物养护管理。系统具备精准灌溉控制、电池状态监控、水泵故障检测与自动维护等功能,特别适用于家庭花园、阳台种植等场景。


1.1 硬件介绍

硬件模块

型号规格

主要功能

主控制器

STM32Duino Uno R3

系统核心处理器,负责数据采集、逻辑控制和通信协调

无线通信模块

ESP32Duino

Wi-Fi连接,实现与智能家居平台(如Home Assistant)的数据交互

电源监控模块

INA226

高精度电流/电压检测,实时监测3串锂电池组状态

降压转换器

TPS55289

将锂电池电压(9-12.6V)转换为5V/2A稳定输出,驱动水泵

电流检测模块

ACS712-5A

监测潜水泵工作电流,用于判断水泵状态和故障检测

SWD烧录器

STLink

实现程序的下载、调试、与串口通信

电源

3串锂电池组

11.1V标称电压,提供系统所需电力

执行器

5V直流潜水泵

实现灌溉作业的主要执行部件

辅助元件

继电器模块、水位传感器、土壤湿度传感器

系统保护与状态监测

上图为本次系统演示使用到的全部功能模块,包含 Make Blocks 1 ~ 6 期设计的全部模块。


1.2 功能概览

功能类别

具体功能

实现方式

智能灌溉

定时灌溉、土壤湿度触发灌溉

STM32控制继电器,ESP32接收云端指令

电源管理

电池电压/电流监控、电量估算

INA226采集数据,STM32处理分析,并上传数据至智能家居平台

故障保护

水泵堵塞检测、自动反冲洗

ACS712监测电流异常,STM32触发反冲洗程序

远程监控

手机APP/网页控制、状态查看

ESP32连接MQTT服务器,上传数据至智能家居平台


1.3 设计思路

系统采用“感知-决策-执行”的闭环控制架构:

  • 感知层:通过多种传感器采集环境数据(土壤湿度)和设备状态(电池电压、水泵电流)
  • 决策层:STM32根据预设策略、传感器数据和云端指令综合判断,生成控制指令
  • 执行层:控制水泵启停,执行正常灌溉或反冲洗流程
  • 通信层:ESP32负责与云端保持双向通信,实现远程监控和控制


二、功能实现

2.1 软件流程图


2.2 实现过程

ESP32通信模块实现

// ESP32配置为STA模式连接家庭Wi-Fi
// 通过AT指令与STM32通信,简化主控编程
void ESP32_Init(void) {
UART_SendString("AT+RST\r\n"); // 重启模块
UART_SendString("AT+CWMODE=1\r\n"); // 设置为STA模式
UART_SendString("AT+CWJAP=\"SSID\",\"PASSWORD\"\r\n"); // 连接Wi-Fi
UART_SendString("AT+MQTTUSERCFG=0,1,\"clientID\",\"username\",\"password\",0,0,\"\"\r\n");
UART_SendString("AT+MQTTCONN=0,\"broker.address\",1883,1\r\n"); // 连接MQTT服务器
UART_SendString("AT+MQTTSUB=0,\"garden/irrigation/cmd\",1\r\n"); // 订阅控制主题
}


电池监控实现

INA226 INA(0x40, &twoWire);                             // INA226
// INA 226 初始化
bool inaInitialized = false;
for (int i = 0; i < 5; i++) { // 尝试5次初始化
if(INA.begin()) {
inaInitialized = true;
safeSerialPrintln("INA226 initialized successfully");
INA.setMaxCurrentShunt(5, 0.025);
break;
} else {
safeSerialPrintf("INA226 initialization failed, attempt %d/5\n", i+1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}

while (1) {
// 读取原始INA226数据
float rawBusVoltage = INA.getBusVoltage();
float rawShuntVoltage = INA.getShuntVoltage_mV();
float rawCurrent_mA = INA.getCurrent_mA();
float rawPower_mW = INA.getPower_mW();

// 应用滤波处理
busVoltage = filterINA226Data(busVoltageBuffer, &ina226BufferIndex, rawBusVoltage, INA226_FILTER_SIZE);
shuntVoltage = filterINA226Data(shuntVoltageBuffer, &ina226BufferIndex, rawShuntVoltage, INA226_FILTER_SIZE);
current_mA = filterINA226Data(currentMaBuffer, &ina226BufferIndex, rawCurrent_mA, INA226_FILTER_SIZE);
power_mW = filterINA226Data(powerMwBuffer, &ina226BufferIndex, rawPower_mW, INA226_FILTER_SIZE);
}


温湿度数据采集

 // 初始化DHT11传感器
DHT dht(DHT11_PIN, DHT11); // DHT11传感器初始化
dht.begin();

// 读取DHT11温湿度数据
temperature = dht.readTemperature();
humidity = dht.readHumidity();


水泵控制

// 电机控制任务
void TaskMotorControl(void *pvParameters) {
(void) pvParameters;

// 初始化电机控制引脚
pinMode(D5, OUTPUT);
pinMode(D6, OUTPUT);
digitalWrite(D5, HIGH);
digitalWrite(D6, HIGH);

while (1) {
if (motorDirection) {
// 正转:D6输出低电平,D5输出PWM
digitalWrite(D6, LOW);
analogWrite(D5, motorSpeed);
} else {
// 反转:D5输出低电平,D6输出PWM
digitalWrite(D5, LOW);
analogWrite(D6, motorSpeed);
}

vTaskDelay(100 / portTICK_PERIOD_MS); // 100ms刷新一次
}
}


三、功能展示

系统工作状态

正常灌溉模式

  • 土壤湿度低于阈值或定时触发
  • 水泵以正常电流范围(80-120mA)工作
  • 电池状态实时监控并显示
  • 灌溉时长根据设置自动控制


故障检测与处理

  • 当水泵电流持续超过180mA时,系统判定为堵塞
  • 自动触发反冲洗流程,无需人工干预
  • 反冲洗过程状态实时上报云端


四、总结

项目成果

本项目成功实现了一套完整的智能园艺灌溉系统,具备以下特点:

  1. 智能化程度高:实现了基于土壤湿度、定时计划和远程控制的多模式灌溉策略
  2. 可靠性强:通过多级保护机制(低压保护、过流保护、堵塞检测)确保系统稳定运行
  3. 维护便捷:自动反冲洗功能显著减少了水泵维护需求
  4. 用户体验好:通过智能家居平台提供直观的远程监控和控制界面
  5. 节能环保:精细化的灌溉控制和低功耗设计,有效节约水资源和电能


技术亮点

  • 采用STM32G431Rx与ESP32-MINI-1组合,兼顾了实时控制与网络连接需求
  • INA226高精度电量监测,实现准确的电池状态评估
  • ACS712实时电流监测,创新的堵塞检测与自动维护机制
  • 模块化设计,便于功能扩展和维护升级


改进方向

  1. 功能扩展:增加更多环境传感器(温度、光照)实现更智能的灌溉策略
  2. 节能优化:进一步优化低功耗策略,延长电池续航时间
  3. 水源管理:集成水位传感器,实现自动补水功能
  4. 数据分析:增加历史数据记录与分析,提供灌溉优化建议
  5. 机械结构:设计防水外壳和标准化接口,提升户外耐用性


应用前景

本系统不仅适用于家庭园艺,稍加改造后可扩展至农业大棚、城市绿化、高尔夫球场等场景。通过云平台的集中管理,可实现对分布式灌溉系统的规模化智能控制,具有良好的市场应用前景和推广价值。


遇到的问题

  1. 演示时不小心短路将INA226模块烧毁,导致无法测量电流和功率,电压显示也偏低了很多。
  2. 手上没有合适的水泵,也因天气寒冷,使用了一个减速电机代替进行功能测试。
  3. ACS712测量小电流时的零漂有点大,导致测量到的电流比实际值大了一些。另外使用ACS712原本是可以测量交流水泵的电流的,只因主控芯片的ADC量程是3.3V,因此只能使用直流电机进行代替。


五、参考资料

软硬件
元器件
ESP32-MINI-1
ESP32-MINI-1 是一款通用型 Wi-Fi + Bluetooth® + Bluetooth® LE MCU 模组,功能强大,具有丰富的外设接口,适用各类物联网应用场景,如智能家居、智能楼宇、消费电子、工业控制等。该模组设计精简、尺寸小,尤其适合球泡灯、开关、插座等体积空间小的应用。
附件下载
智能园艺灌溉系统源码.zip
PlatformIO 工程源码
ESP32Duino-S3U-2025-10-19_191715.zip
KiCAD工程
团队介绍
业余电子爱好者
团队成员
鲜de芒果
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号