Registro y gráficas de eventos de termostato 24 V con optoacoplador y Raspberry Pi
Muchos proyectos de domótica implican construir un termostato desde cero, pero ¿qué pasa si ya tienes un termostato programable y solo quieres registrar cuándo se enciende o apaga? Esta guía explica cómo usar un optoacoplador para aislar de forma segura el sistema HVAC de 24 V AC de una Raspberry Pi, capturar señales de nivel lógico, registrar eventos y representar datos de temperatura en tiempo real.
⚠️ Trabajar con voltaje de red puede ser peligroso. Proceda solo si comprende la seguridad eléctrica y tiene las habilidades necesarias. El autor no se hace responsable de daños a equipos, mascotas o propiedad.
Paso 1: Reunir componentes y herramientas
Componentes requeridos:
- Optoacoplador HCPL3700 (incluye rectificador)
- 2 × resistencias de 3,3 kΩ, ½ W o superior
- Condensador electrolítico de 10 µF, ≥10 V
- Condensador cerámico de 0,1 µF
- Resistencia pull-up de 8 kΩ (o 3,3 kΩ + 4,7 kΩ en serie)
- Raspberry Pi (cualquier modelo con GPIO de 3,3 V)
- Cable aislado de dos conductores, preferiblemente con conector de desconexión rápida
- Suministros básicos de electrónica: breadboard, cables jumper, etc.
Sensor de temperatura opcional:
- Sensor digital de temperatura ADT7410
- Placa breakout SOIC
- Condensador adicional de 0,1 µF
- 4 × resistencias de 10 kΩ
Herramientas de diseño PCB opcionales:
- Bloque de tornillo de dos terminales
- Pines hembra para la placa SOIC
- Pines macho o hembra para conectividad Pi/Arduino
- Versiones SMD de las resistencias para reducir tamaño de placa
Herramientas:
- Multímetro (modo voltaje AC)
Requisitos:
- Sistema HVAC de 24 VAC
- Python y librerías relacionadas (p. ej.,
hipi-i2c) - Opcional: cuenta Plotly para gráficas en línea
- Opcional: Eagle (versión gratuita) para diseño PCB
Paso 2: Identificar los cables del relé del termostato
La mayoría de sistemas HVAC residenciales operan a 24 VAC. Un termostato programable suele alimentarse mediante un circuito de "robo de energía" y conmuta un relé para energizar la caldera o el aire acondicionado. Para monitorizar el estado del relé, localice el par de cables que llevan la alimentación de 24 VAC a la unidad HVAC.
Con un multímetro en modo voltaje AC, pruebe cada par de cables mientras el HVAC está encendido y apagado. Registre la lectura; el par correcto debe mostrar ~24 VAC (a menudo un poco más, p. ej., 28–30 VAC) cuando el sistema está activo y 0 VAC en reposo.
Paso 3: Añadir cables de monitorización
Apague la alimentación del HVAC y confirme con el multímetro que no hay voltaje presente. Retire cuidadosamente el termostato de su base para exponer el cableado. Conecte dos cables adicionales al par de conductores del relé elegido. Use conectores de desconexión rápida en el extremo de la Pi para fácil mantenimiento.
Paso 4: Construir el circuito de aislamiento
Conectar directamente 24 VAC a una Raspberry Pi es imposible. Un optoacoplador como el HCPL3700 proporciona aislamiento eléctrico mientras rectifica automáticamente el voltaje de entrada.
Puntos clave del esquema:
- Dos resistencias de 3,3 kΩ ( ≥½ W) en los pines de entrada AC fijan el umbral de disparo. Consulte la hoja de datos del HCPL3700 para cálculos exactos.
- Un condensador electrolítico de 10 µF, ≥10 V a la salida DC del rectificador suaviza la señal y evita que el GPIO de la Pi parpadee a la frecuencia de red.
- Un condensador cerámico de 0,1 µF entre los pines de alimentación del optoacoplador reduce ruido de alta frecuencia.
- Como el HCPL3700 usa salida de colector abierto, se requiere una resistencia pull-up. Una resistencia de 8 kΩ (o 3,3 kΩ + 4,7 kΩ en serie) eleva la línea de forma fiable para la lógica de 3,3 V de la Pi.
Conecte la salida del optoacoplador a un pin GPIO de la Pi (p. ej., GPIO23). Use el rail de 3,3 V de la Pi para alimentar los pines de alimentación del optoacoplador. Conecte a tierra la Pi y el optoacoplador juntos.
Una vez cableado, la Pi puede detectar un nivel lógico bajo cuando el relé HVAC está energizado y alto cuando está desenergizado.
Para esquemas completos y cálculos de componentes, consulte la nota de aplicación del HCPL3700.
Paso 5: Instalar software y registrar datos
Use Python para leer el pin GPIO, marcar cada cambio de estado con marca de tiempo y escribir los datos en un archivo CSV o base de datos. Un script sencillo podría ser:
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)
Para gráficas en tiempo real, suba el CSV a Plotly o use una librería ligera como Matplotlib para generar gráficos locales.
Paso 6: Ampliar con sensor de temperatura (opcional)
Integre el ADT7410 vía I²C para registrar temperatura ambiente junto al estado del relé. Conecte el sensor a los pines SDA/SCL de la Pi, configure la dirección (0x48 por defecto) y lea el registro de temperatura de 16 bits. Almacene las lecturas en el mismo archivo de log con una columna separada.
Con los datos de temperatura, use Plotly para crear un gráfico de doble eje: HVAC en el eje primario y temperatura en el secundario, permitiendo correlacionar la actividad del termostato con cambios ambientales.
Siguiendo estos pasos, puede monitorizar y registrar de forma segura el comportamiento de su termostato existente sin modificar el dispositivo.
Proceso de manufactura
- Integración MQTT fluida: sensores NodeMCU DHT22 con Raspberry Pi 3 B+ como broker
- Perfilado preciso de temperatura en Raspberry Pi con Python, SQLite y LabVIEW
- Registro y gráficas de eventos de termostato 24 V con optoacoplador y Raspberry Pi
- Construya un sensor de temperatura remoto con Raspberry Pi y Python – Guía paso a paso
- Monitorización fluida de temperatura y humedad en Raspberry Pi con EzTemp
- Monitorización meteorológica remota con Raspberry Pi 3 y PubNub
- Integración de TI SensorTag con Blynk vía Node‑RED en Raspberry Pi Zero
- Sistema de Registro y Alertas con Fotocélula en Raspberry Pi – Sensor de Luz de Bajo Consumo con Python
- Controle un LED con Sensor PIR de Movimiento en Raspberry Pi
- Construya un Sistema de Monitorización de Temperatura y Luz Multi‑Sensor con Raspberry Pi y DS18B20
- Lectura de Pulsaciones de Botón vía GPIO en Raspberry Pi: Guía Paso a Paso