智能淋浴调节器:基于电磁阀的精准定时节水控制器
项目背景:为何需要淋浴调节器?
淋浴是家庭中极其浪费水电的环节。数据显示:
- 平均流量 2.1 加仑/分钟 (7.94 L/min),平均时长 8.2 分钟 → 单次 17.2 加仑 (65.1 L)
- 三口之家每日 51.6 加仑 (195.3 L),为家庭第三大用水源
- 加热 1 加仑水需 440 BTU (0.13 kWh) → 单次淋浴耗电 2.2 kWh,占家庭用电 17%
- 碳排放:单次 3.4 磅 CO₂ (1.54 kg),家庭每日 10.2 磅
推荐淋浴时长仅 5 分钟,可节省 39% 水电。本项目通过强制定时切断水流,帮助用户践行节水节能。
工作原理
- 掉电常闭:电磁阀默认关闭,设备未供电时无水流出(安全设计)
- 上电开阀:开启设备,电磁阀打开,用户可正常用水
- 预热阶段:20 秒倒计时(可调),1 次蜂鸣器提示
- 计时淋浴:5 分钟倒计时(可调),开始时 2 次蜂鸣
- 预警提醒:剩余 2 分钟、1 分钟各 1 次蜂鸣
- 时间到:电磁阀自动关闭,持续蜂鸣提醒关闭水龙头和设备
硬件清单
| 组件 | 数量 | 关键选型提示 |
|---|---|---|
| Arduino 101 | 1 | 主控板 |
| 常闭电磁阀 | 1 | 耐热、无铅、管径匹配自家水管 |
| 电磁阀管件 | 1 | 同上 |
| 16×2 RGB 背光 LCD | 1 | Adafruit 模块 |
| 蜂鸣器 | 1 | 有源/无源均可 |
| N 沟道功率 MOSFET | 1 | 驱动电磁阀,如 IRLZ44N |
| 旋钮电位器 | 1 | 调节 LCD 对比度 |
| 拨动开关 | 1 | 主电源开关 |
| 移动电源 | 1 | 供电,输出 5V |
| 升压模块 | 1 | 5V→6-12V 驱动电磁阀,需调节输出电压 |
| 1N4007 二极管 | 1 | MOSFET 续流保护 |
| 220Ω 电阻 | 2 | LCD 背光/蜂鸣器限流 |
| 塑料盒、魔术贴、USB 线 | 若干 | 外壳与固定 |
电路原理
- 移动电源 5V → 升压模块 → 6-12V 供电磁阀
- Arduino 101 由移动电源直接供电(5V 引脚)
- MOSFET 低边驱动电磁阀,栅极接 D13,并联 1N4007 防反向电动势
- LCD 接 D12/D11/D5/D4/D3/D2(4-bit 模式)
- 蜂鸣器接 D10
- 拨动开关串联在移动电源输出回路上

组装步骤
- 剥两根 USB 线,分别焊接至拨动开关和升压模块输入端,调节升压输出至 6-12V
- 按原理图在面包板搭建电路
- 上传 Arduino 代码
- 塑料盒开孔:电磁阀导线孔、开关孔、LCD 窗口
- 电磁阀导线穿孔后热熔胶密封,开关粘固,LCD 粘盖板
- 电路装入盒合盖,确保连接可靠
- 电磁阀串联在出水口与花洒之间(需合适管件)
- 魔术贴将盒体固定在花洒附近墙面
核心代码
// 用户设置
const float showerTime = 5; // 淋浴时长(分钟)
const int warmupTime = 20; // 预热时长(秒)
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int stat = 0; // 状态机:0=预热, 1=淋浴, 2=结束
void setup() {
lcd.begin(16, 2);
pinMode(13, OUTPUT); // 电磁阀
pinMode(10, OUTPUT); // 蜂鸣器
}
void loop() {
if (stat == 0) { // 预热
digitalWrite(13, HIGH);
tone(10, 2000, 1000);
for (int i = warmupTime; i > 0; i--) {
lcd.clear();
lcd.setCursor(0,0); lcd.print("Water Warmup:");
lcd.setCursor(0,1); lcd.print(String(i) + " seconds");
delay(1000);
}
stat++;
}
if (stat == 1) { // 淋浴计时
tone(10, 2000, 1000); delay(1500); tone(10, 2000, 1000);
for (int i = showerTime * 60; i > 0; i--) {
if (i == 120 || i == 60) tone(10, 2000, 1000); // 2min/1min 预警
lcd.clear();
lcd.setCursor(0,0); lcd.print("Shower:");
lcd.setCursor(0,1); lcd.print(String(i) + " seconds");
delay(1000);
}
stat++;
}
if (stat == 2) { // 结束
digitalWrite(13, LOW); // 关阀
tone(10, 2000); // 持续鸣叫
lcd.clear(); lcd.setCursor(0,0); lcd.print("Shower Over");
lcd.setCursor(0,1); lcd.print("Have a Good Day!");
delay(2000);
lcd.clear(); lcd.setCursor(0,0); lcd.print("Turn me off");
lcd.setCursor(0,1); lcd.print("Turn water off");
delay(5000);
}
}
年化节约效益测算(单人)
- 节水:2,455.5 加仑/年 (9,295 L) ≈ 13 年饮用水量
- 节电:317.9 kWh/年
- 减排:492.7 磅 CO₂/年 (223.5 kg)
- 三口之家:节水 7,366.5 加仑、节电 953.7 kWh、减排 1,478 磅 CO₂
安全提示
- 电磁阀、管件必须耐热、无铅,确认管径匹配
- 升压模块输出电压必须在电磁阀额定范围内
- 塑料盒密封防水,电路部分远离水源
- 强电环境下操作需断电,建议请专业人士协助管路安装
制造工艺