Arduino 自动浇水系统:定时 + 土壤湿度双模式,轻松养护盆栽
所需组件与材料
| RobotGeek Geekduino(或 Arduino UNO) | ×1 |
| RobotGeek 传感器扩展板 | ×1 |
| RobotGeek 直流液体泵 | ×1 |
| 硅胶管 + 4 路分水阀 | 若干 |
| DFRobot 电容式土壤湿度传感器 | ×3(每盆一个) |
| Seeed RTC 模块(Grove 接口) | ×1 |
| 12V/5A 电源、继电器、LED 驱动、按钮、桶、货架、生长灯等 | 各×1 |
所需软件
- Arduino IDE
项目简介
针对容器种植(如番茄)设计的自动浇水系统:
- 定时浇水:每天固定时间(如早 8 点)运行水泵。
- 湿度补偿:每分钟读取 3 路电容式湿度传感器平均值,若过干(读值 > 420)则额外触发浇水。
- 手动测试按钮:一键启动水泵排气、校准流量。
- 多路分水:单泵配合分水阀同时供 12 盆,流量可调。
搭建步骤
1. 物理搭建
- 三层金属货架:底层放水桶,中层放花盆,顶层挂生长灯(接定时器 12h 开/12h 关)。
- 水泵置于水桶上方、出水口低于花盆,保证虹吸正常。
- 硅胶管沿货架走线,夹子固定,末端插入花盆根部附近。
- 电子模块放在干燥处,接好 RTC、湿度传感器、继电器控制水泵、LED 指示灯。
2. 接线参考
见原文原理图:RTC 接 I²C,湿度传感器接 A0-A2,继电器控制水泵供电,按钮接数字口,LED 指示运行状态。
3. 烧录固件
从 GitHub 下载 autoPlantWatering.ino,用 Arduino IDE 上传。首次上电需通过串口设置 RTC 时间(参考库示例)。
4. 测试与调参
- 按测试键运行水泵,观察各出口流量是否均匀。流量大则增加分路或加长管;流量小则减少分路或缩短管。
- 打开串口监视器,每分钟打印 3 路湿度读值(越干数值越大,~500 极干,~300-400 适宜)。
- 在代码中修改
wateringTimes[]与dryThreshold适配你的植物。
核心代码逻辑
void loop() {
if (rtcAlarmTriggered()) { // 定时到点
runPump(wateringDuration);
}
if (millis() - lastCheck > 60000) { // 每分钟检查湿度
int avg = (sensor1 + sensor2 + sensor3) / 3;
if (avg > dryThreshold) runPump(extraDuration);
lastCheck = millis();
}
if (testButtonPressed()) runPump(testDuration);
}
后续优化建议
- 改用独立水泵/电磁阀逐盆精准控制,避免平均值导致干湿不均。
- 加装水位传感器,水桶缺水报警。
- 接入 WiFi(ESP8266/ESP32)推送手机通知、远程修改参数。
- 太阳能供电 + 锂电池,彻底脱离市电。
实测成果
运行一个月后,番茄长势旺盛,即将结果。系统稳定,仅需定期加水、修剪。代码与原理图开源于 RobotGeek GitHub。
制造工艺
- 树莓派自动浇水系统:土壤湿度监测 + Web 仪表盘远程控制
- Arduino Mega 按键 PWM 调光:三阶段渐变 LED 实战教程
- 基于 Arduino 与 Python 的可靠 RFID 考勤系统
- 智能存钱罐:Arduino Nano 控制硬币识别器实现余额显示
- SERENA:基于 Arduino Mega 2560 与 TFT 触摸屏的多级密码报警系统
- Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
- Arduino Nano 驱动的智能家居植物自动浇水系统
- 实时森林火灾监测系统:短信报警方案
- 智能地下室通风系统:Arduino 驱动的湿度自动控制
- Arduino UNO + 以太网盾板实现低成本太阳辐射测量仪(热电堆原理)
- 自动变速器系统权威指南:类型、部件、工作原理
- 自动润滑系统详解:工作原理、类型与工业应用价值