系统总体设计
整个系统围绕'实时监测 + 智能判断 + 自动控制 + 远程通信'四大核心能力展开。整体架构如下:
- 控制核心:STM32F103C8T6 或 STM32F401 等 Cortex-M3/M4 微控制器
- 传感器模块:土壤湿度(电阻式/电容式)、光照强度、温湿度、雨滴检测
- 执行机构:电磁阀、水泵、继电器驱动模块
- 通信模块:ESP8266/WiFi、LoRa、4G 模块(视部署环境选择)
- 供电模块:太阳能板 + 锂电池 + DC-DC 稳压
系统目标是自动判断当前土壤状态是否需要灌溉,并按需启动电磁阀或水泵,同时根据天气变化动态调节灌溉策略,实现深度节水。
核心功能设计
1. 实时土壤湿度监测
采用电容式土壤湿度传感器,通过 ADC 采集模拟值并进行滤波处理。软件内部通过多点标定建立湿度—ADC 映射关系,得到最终湿度百分比。
uint16_t adc_value = ADC_GetValue();
float soil_humidity = map(adc_value, 800, 3000, 0, 100);
并进行均值滤波 + 中值滤波,减少环境噪声干扰。
2. 智能灌溉策略控制
灌溉策略不再是'湿度低于阈值就浇水'这么简单,而是通过多维因素进行判断:
| 参数 | 作用 |
|---|---|
| 土壤湿度 | 判断是否缺水 |
| 光照强度 | 判断是否处于曝晒状态 |
| 空气温湿度 | 估计蒸发速度 |
| 是否下雨 | 防止雨天灌溉 |
| 历史灌溉时间 | 限制过多灌溉 |
策略示例:
if (humidity < 40 && !is_raining && (light_weak || temp_low)) {
irrigate();
} else {
stop_irrigation();
}
这样的组合策略显著降低了不必要的浇水次数,实现真正节水。
3. 电磁阀和水泵控制
系统使用 MOSFET 或继电器驱动电磁阀,并使用 PWM 控制水泵流量。为了防止水泵干转,加入水位检测和定时保护机制。
if (need_irrigation) {
Relay_ON();
Start_Timer(Max_Irrigation_Time);
} else {
Relay_OFF();
}
4. 远程监控功能(可选)
通过 ESP8266,将传感数据上传到服务器(如 OneNET、阿里云 IoT,也可自建 MQTT 服务)。用户可通过手机 App/网页查看湿度、水泵状态、历史趋势,并可手动远程启动灌溉。
数据上送示例:


