Arduino Nano 驱动的智能家居植物自动浇水系统
组件与物料
| Arduino Nano R3 | × | 1 |
| Adafruit 标准 LCD 16x2 白字蓝底 | × | 1 |
| 迷你水泵 | × | 1 |
| 带按键的旋转编码器 | × | 1 |
| L298N 驱动芯片 | × | 1 |
| 光敏电阻 | × | 1 |
| 通用 NPN 三极管 | × | 1 |
| 电阻 10kΩ | × | 1 |
| 单圈电位器 10kΩ | × | 1 |
| 电容 10µF | × | 1 |
| 电容 1000µF | × | 1 |
| 电容 470µF | × | 1 |
| 电容 100nF | × | 7 |
| 1N4001 二极管 | × | 8 |
| RCA 插座 | × | 1 |
| 土壤湿度传感器 | × | 1 |
| 螺丝端子排 | × | 3 |
| AMS1117-ADJ 可调稳压器 | × | 1 |
| 电阻 2kΩ | × | 1 |
| 电阻 680Ω | × | 1 |
| DC 9V 3A 电源适配器 | × | 1 |
所需工具
| 电烙铁(通用) |
应用与在线服务
| Arduino IDE |
项目详解
又一个植物浇水器?
网络上已有大量土壤湿度传感器教程。本项目综合多个优秀创意,并完善软件部分,打造一款家用植物浇水控制器。解决方案看似显而易见,但深入细节才发现“魔鬼藏在细节里”。让我们逐一剖析。
控制器核心功能
- 双通道独立控制:支持两株植物,每通道可单独启用/禁用
- 可配置泵运行时间:每通道可设正向/反向抽水时长(以 10 秒为单位)
- 手动浇水模式:短按编码器按键即可人工触发浇水
- 浇水后湿度复检:若浇水后湿度未上升,自动禁用该通道防故障
- 光照感应防夜间运行:集成光敏电阻,夜间自动暂停
- 菜单系统配置参数:旋钮操作菜单,配置保存在 EEPROM 掉电不丢失
土壤湿度测量:电阻法 vs 电容法
常见教程多用电阻法:将传感器插入土壤测电阻。实测中“干土”约 300kΩ、“湿土”约 500kΩ,差异微小难以判读。根因在于纯水不导电,导电的是水中矿物质,电阻值主要取决于矿物种类与含量,而非含水量。
网络上有大神提出测量电容而非电阻:水的介电常数远大于土壤,湿土电容约 200µF,干土约 200pF,相差百万倍,判读极其清晰。
如何用 Arduino 测电容?
有人将 Arduino 做成高精度电容表,但过于复杂。其实只需两个模拟引脚即可获得足够区分干湿的精度。因干湿读数跨度极大,代码中取电容读数的自然对数作为特征值,压缩数值区间便于设定阈值。
为何需要 H 桥驱动?
若水源瓶高于植物,单向 MOSFET 驱动水泵停止后水仍会因虹吸效应持续流出。解决办法:反转水泵短暂运行 抽回残留水柱。直流电机只需反接极性,故需 H 桥。L298N 适配双电机,正好驱动两路水泵。本项目水泵 9V/3A,L298N 必须加散热片,并串联 1Ω/5W 功率电阻限流。
控制器菜单系统
采用带按键的旋转编码器交互:
主界面:首行显示两通道实时传感器读数(禁用通道显示 xxxx);次行显示干湿阈值。
- 短按:进入手动浇水界面
- 长按(约 1 秒):进入设置菜单树:
├─ 左通道 ├─ 右通道 ├─ LCD 背光亮度(或自动) └─ 夜间背光亮度
每通道子菜单:
├─ 通道启用/禁用 ├─ 干湿阈值(传感器电容自然对数值,主界面可对照当前读数设定) ├─ 正向抽水时长(十秒为单位) ├─ 反向抽水时长(十秒为单位) └─ 测试参数(不写入 EEPROM,用于实测调整时长)硬件实现
控制器基于两块 3×7cm 双面 PCB:
- 主板:L298N 驱动、续流二极管、电源/电机接线端子、传感器接口、AMS1117-ADJ 降压 5V 供电(调试期方便,量产可用 Arduino 自带稳压)
- 控制板:Arduino Nano、旋转编码器接口、光敏电阻接口、LCD 插座
源代码
WateringSystem
GitHub 仓库:https://github.com/sfrwmaker/WateringSystem/blob/master/WateringSystem.ino
原理图
制造工艺
- 树莓派自动浇水系统:土壤湿度监测 + Web 仪表盘远程控制
- 智能酒店/家庭监控系统:云端自动化控制与实时告警
- 智能缺水报警器 – DIY植物土壤湿度监测装置
- DIY ADXL335 地震检测仪 — 低功耗三轴加速度计项目
- Arduino 自动浇水系统:定时 + 土壤湿度双模式,轻松养护盆栽
- 基于AWS IoT的智能植物监测系统:土壤湿度/光照/温度远程监控与邮件报警
- Alexa 语音控制 Arduino 智能家居中枢:基于 Yun + PubNub + AWS Lambda 全栈实现
- 基于 Windows 10 IoT 的智能植物监测系统
- Arduino Yun + Sharp Plasmacluster 智能空气净化器系统
- DIY 双轴太阳能跟踪系统——基于 Arduino UNO
- Arduino 智能安防系统:超声波测距 + 舵机扫描 + 声光报警
- Arduino UNO 自制可靠植物土壤湿度传感器