热水器点火器监测器:Arduino Nano + 树莓派 Zero 监控热电偶电压,熄火即时推送
所需组件与材料
| Arduino Nano R3 | ×1 |
| Raspberry Pi Zero WH | ×1 |
| 分压电阻(如 1kΩ + 2kΩ) | ×1 组 |
| 鳄鱼夹导线、杜邦线若干 | ×1 |
项目背景
燃气热水器依靠点火器加热热电偶产生 ≤30mV 电压维持燃气阀开启。若点火器熄火,电压归零,燃气阀自动关闭(安全)。但点火器偶尔熄火(年约 3 次),更换热电偶无效。本项目监测热电偶电压,跌零时通过树莓派发送邮件/短信提醒复火,避免冷水澡。
系统架构
- Arduino Nano:内部 1.1V 基准 ADC 读取热电偶电压(0-30mV 对应 0-28 码值),每 30 秒通过单线脉冲协议发送给树莓派。
- 树莓派 Zero WH:Python 守护进程解码脉冲,连续 5 次读数偏低则判定熄火,调用 Gmail SMTP 发送邮件/短信(运营商网关如 555xxxxxxx@vtext.com),6 小时内不重复报警。
- 电平转换:Arduino 5V 输出经分压电阻降至 ~2.8V 接树莓派 GPIO16(仅支持 3.3V)。
硬件接线
- 在热水器热电偶同轴线外皮剥开 5cm,露出中心线(正极)与编织层(负极)。
- 中心线分两路:一路接回热水器原控制器,一路接 Arduino A0;编织层接 Arduino GND 与热水器控制器负极(共地)。
- Arduino D9 → 分压电阻 → 树莓派 GPIO16,所有 GND 共地。
Arduino 固件要点
analogReference(INTERNAL)启用 1.1V 基准,提高分辨率。- 单线协议:起始脉冲 → 十位脉冲数 = 十位值 → 间隔 50ms → 个位脉冲数 = 个位值 → 间隔 50ms 结束。
- 每 30 秒发送一次 ADC 原始值(0-1023)。
树莓派 Python 守护进程要点
- GPIO16 下拉输入,阻塞等待上升沿。
- 测量脉冲间隔:<70ms 同一位累加,>70ms 进位,>200ms 结束解码。
- 还原两位整数 → 电压 = 读数 × 1.1 / 1023。
- 连续 5 次 ≤ 阈值(默认 1,约 1mV)触发报警,记录时间戳,6 小时冷却。
- 用
smtplib+ Gmail App Password 发送,配合@rebootcrontab 自启动。
关键代码片段
Arduino 发送函数
void sendNumberSignal(int number, int pin, int intra, int inter) {
int tens = number / 10, ones = number % 10;
sendPulse(pin, intra); // 起始脉冲
for (int i=0; i
Python 解码与报警
def waitReceiveNumber(pin):
# 返回解码后的两位整数
...
def send_email_alert():
# Gmail SMTP + 运营商短信网关
...
# 主循环
while True:
reading = waitReceiveNumber(16)
voltage = reading * 1.1 / 1023
if reading <= LOW_THRESHOLD:
low_count += 1
if low_count >= 5: send_email_alert(); low_count = 0
else:
low_count = 0
部署与自启动
- 树莓派配置 WiFi、SSH、Python 环境。
- 编写启动脚本
run_HotWaterNotifier.sh:cd /home/pi/hotwater && sudo python HotWaterNotifier.py sudo crontab -e添加:@reboot sh /home/pi/hotwater/run_HotWaterNotifier.sh >> /home/pi/hotwater/logs/HotWaterNotifier.log 2>&1- 手动测试:
sh run_HotWaterNotifier.sh→Ctrl+Z→bg→disown。
安全提示
本系统仅监测、报警,不干预燃气阀。熄火时燃气阀已自动关闭,无泄漏风险。操作燃气设备请遵守当地法规,必要时请专业人员协助。
制造工艺
- 家庭能源中心:树莓派与 Moteino 监测光伏、光热与室温
- 用 Arduino 打造绚丽显示器 Ambilight 系统
- Arduino 实时太阳能电池板监测:低成本数据采集系统
- Arduino Nano高速摄影控制器 – 定格水滴碰撞瞬间
- 打造可靠的 Arduino 能源监测与数据记录仪——分步指南
- 基于 Arduino 与 MAX30100 的实时物联网心率监测系统
- Arduino Due 驱动 3.2″ TFT 实现温度监测与实时时钟
- 使用 Arduino、高压升压模块和 20x4 LCD 自制盖革-米勒计数器
- 基于 Arduino Nano 的智能运动感应水枪
- 最优热泵热水器:高能效热水解决方案
- 家用热水循环泵选购专家指南:即开即热,零冷水等待
- 热水循环泵核心原理与选型指南:家用与工业双视角