光耦隔离采集 24V 恒温器信号:树莓派实现 HVAC 事件记录与实时绘图
许多家庭自动化项目涉及从零构建恒温器,但如果你已拥有可编程恒温器,仅想记录其开关时刻怎么办?本指南讲解如何利用光耦安全隔离 24V AC HVAC 系统与树莓派,采集逻辑电平信号、记录事件并实时绘制温度曲线。
⚠️ 涉及市电电压操作存在危险。仅在理解电气安全并具备相应技能时继续。作者不对设备、宠物或财产损失负责。
步骤 1:准备元件与工具
必需元件:
- HCPL3700 光耦(含整流器)
- 2 × 3.3 kΩ 电阻,½ W 或更高功率
- 10 µF、≥10 V 电解电容
- 0.1 µF 陶瓷电容
- 8 kΩ 上拉电阻(或 3.3 kΩ + 4.7 kΩ 串联)
- 树莓派(任意带 3.3V GPIO 的型号)
- 两芯绝缘线,最好带快速断开连接器
- 基础电子耗材:面包板、跳线等
可选温度传感器扩展:
- ADT7410 数字温度传感器
- SOIC 转接板
- 额外 0.1 µF 电容
- 4 × 10 kΩ 电阻
可选 PCB 设计工具:
- 两端子接线端子
- SOIC 板用母排针
- 树莓派/Arduino 连接用公/母排针
- 电阻 SMD 封装以缩小板载尺寸
工具:
- 万用表(交流电压档)
软件需求:
- 24 VAC HVAC 系统
- Python 及相关库(如
hipi-i2c) - 可选:Plotly 账号用于在线绘图
- 可选:Eagle 免费版用于 PCB 设计
步骤 2:识别恒温器继电器导线
大多数家用 HVAC 系统工作在 24 VAC。可编程恒温器通常通过“窃电”电路自供电,并切换继电器给炉或空气处理机供电。为监测继电器状态,需找到向 HVAC 设备供电的那对 24 VAC 导线。
将万用表置于交流电压档,在 HVAC 开启和关闭时分别测试每对导线。记录读数;正确的那对应在系统运行时显示约 24 VAC(常略高,如 28–30 VAC),待机时为 0 VAC。
步骤 3:引出监测导线
切断 HVAC 电源,用万用表确认无电压。小心拆下恒温器底座露出接线。在选定的继电器导线对上并联焊接两根额外导线。树莓派端使用快速断开连接器,便于维护。
步骤 4:搭建隔离电路
24 VAC 无法直接接入树莓派。HCPL3700 等光耦在自动整流输入电压的同时提供电气隔离。
原理图关键点:
- 两个 3.3 kΩ 电阻(≥½ W)接在交流输入引脚,设定触发阈值。具体计算请参阅 HCPL3700 数据手册。
- 整流器直流输出端并联 10 µF、≥10 V 电解电容,平滑信号防止树莓派 GPIO 在工频下闪烁。
- 光耦供电引脚并联 0.1 µF 陶瓷电容,抑制高频噪声。
- HCPL3700 为开漏输出,需上拉电阻。8 kΩ(或 3.3 kΩ + 4.7 kΩ 串联)可靠地将电平拉高至树莓派 3.3V 逻辑。
将光耦输出接到树莓派 GPIO 引脚(如 GPIO23)。用树莓派 3.3V 供电光耦供电脚,树莓派地与光耦地共地。
接线完成后,HVAC 继电器得电时树莓派检测到低电平,断电时检测到高电平。
完整原理图与元件计算请见 HCPL3700 应用笔记。
步骤 5:安装软件并记录数据
用 Python 读取 GPIO 引脚、为每次状态变化打时间戳、写入 CSV 或数据库。示例脚本:
import RPi.GPIO as GPIO
import time
import csv
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP)
with open('thermostat_log.csv', 'a') as f:
writer = csv.writer(f)
while True:
state = GPIO.input(23)
timestamp = time.time()
writer.writerow([timestamp, state])
time.sleep(0.5)
实时绘图可将 CSV 上传至 Plotly,或用 Matplotlib 本地生成图表。
步骤 6:扩展温度传感器(可选)
通过 I²C 接入 ADT7410,同步记录环境温度与继电器状态。将传感器接到树莓派 SDA/SCL,设置地址(默认 0x48),读取 16 位温度寄存器。将读数作为新列写入同一日志文件。
获得温度数据后,用 Plotly 绘制双轴图:主轴显示 HVAC 状态,次轴显示温度,从而关联恒温器动作与环境变化。
按上述步骤操作,即可在不改动恒温器本体的前提下,安全监测并记录其行为。
制造工艺
- NodeMCU DHT22接入树莓派3B+ MQTT Broker:无缝物联网集成指南
- 树莓派温度画像:Python+SQLite+LabVIEW实战
- 光耦隔离采集 24V 恒温器信号:树莓派实现 HVAC 事件记录与实时绘图
- 树莓派与 Python 构建远程温度传感器:分步实战指南
- 树莓派配合 EzTemp 实现无缝温湿度监测
- 树莓派 3 配合 PubNub 实现远程气象监测
- 树莓派 Zero 配合 Node‑RED 融合 TI SensorTag 与 Blynk 物联网平台
- 树莓派光敏电阻日志与报警系统:低功耗光照传感器 Python 实现
- 树莓派 PIR 运动传感器控制 LED 实战指南
- 树莓派多传感器温度光照监测系统:DS18B20 实战构建
- 树莓派 GPIO 读取按键:分步实战指南
- 基于树莓派的卫生间占用传感器:通过 Twilio 实现语音与短信提醒