24-V Thermostat-Ereignisse mit Optokoppler & Raspberry Pi loggen & grafisch darstellen
Viele Heimautomatisierungsprojekte beinhalten den Bau eines Thermostats von Grund auf, aber was, wenn Sie bereits ein programmierbares Thermostat besitzen und lediglich aufzeichnen möchten, wann es ein- oder ausgeschaltet wird? Dieser Guide erklärt, wie Sie einen Optokoppler verwenden, um das 24-V AC HVAC-System sicher von einem Raspberry Pi zu isolieren, Logik-Pegel-Signale zu erfassen, Ereignisse zu loggen und Temperaturdaten in Echtzeit darzustellen.
⚠️ Arbeiten mit netzspannungsnahen Voltagen kann gefährlich sein. Fahren Sie nur fort, wenn Sie elektrische Sicherheit verstehen und über die notwendigen Fähigkeiten verfügen. Der Autor haftet nicht für Schäden an Geräten, Haustieren oder Eigentum.
Schritt 1: Teile und Werkzeuge beschaffen
Erforderliche Komponenten:
- HCPL3700 Optokoppler (inkl. Gleichrichter)
- 2 × 3,3 kΩ Widerstände, ½ W oder höher
- 10 µF, ≥10 V Elektrolytkondensator
- 0,1 µF Keramikkondensator
- 8 kΩ Pull-Up-Widerstand (oder 3,3 kΩ + 4,7 kΩ in Serie)
- Raspberry Pi (jedes Modell mit 3,3 V GPIO)
- Zweiadriges isoliertes Kabel, vorzugsweise mit Quick-Disconnect-Stecker
- Grundlegende Elektronik-Zubehör: Breadboard, Jumper-Kabel, etc.
Optionaler Temperatursensor-Zusatz:
- ADT7410 digitaler Temperatursensor
- SOIC Breakout Board
- Zusätzlicher 0,1 µF Kondensator
- 4 × 10 kΩ Widerstände
Optionale PCB-Design-Tools:
- Zweipoliger Schraubklemmenblock
- Female Header Pins für das SOIC Board
- Male Header Pins oder Female Header Pins für Pi/Arduino Konnektivität
- SMD-Versionen der Widerstände zur Platzeinsparung
Werkzeuge:
- Multimeter (AC-Spannungsmodus)
Voraussetzungen:
- 24 VAC HVAC-System
- Python und zugehörige Libraries (z. B.
hipi-i2c) - Optional: Plotly Account für Online-Grafiken
- Optional: Eagle (kostenlose Version) für PCB-Design
Schritt 2: Thermostat-Relais-Leitungen identifizieren
Die meisten häuslichen HVAC-Systeme arbeiten mit 24 VAC. Ein programmierbares Thermostat versorgt sich typischerweise über einen "Power-Stealing"-Schaltkreis und schaltet ein Relais, um den Ofen oder Luftbehandler zu aktivieren. Um den Relaiszustand zu überwachen, lokalisieren Sie das Kabelpaar, das die 24 VAC-Versorgung zur HVAC-Einheit führt.
Mit einem Multimeter im AC-Spannungsmodus testen Sie jedes Kabelpaar, während die HVAC sowohl ein- als auch ausgeschaltet ist. Notieren Sie die Spannung; das korrekte Paar sollte ~24 VAC (oft etwas höher, z. B. 28–30 VAC) anzeigen, wenn das System aktiv ist, und 0 VAC im Leerlauf.
Schritt 3: Überwachungsleitungen anbringen
Schalten Sie die HVAC-Stromversorgung aus und bestätigen Sie mit dem Multimeter, dass keine Spannung anliegt. Entfernen Sie den Thermostat vorsichtig von seiner Montagebasis, um die Verkabelung freizulegen. Befestigen Sie zwei zusätzliche Drähte an dem gewählten Relais-Leiterpaar. Verwenden Sie Quick-Disconnect-Stecker am Pi-Ende für einfache Wartung.
Schritt 4: Isolationsschaltung aufbauen
Ein direkter Anschluss von 24 VAC an einen Raspberry Pi ist unmöglich. Ein Optokoppler wie der HCPL3700 bietet elektrische Isolierung und gleichzeitige Gleichrichtung der Eingangsspannung.
Wichtige Punkte im Schaltplan:
- Zwei 3,3 kΩ Widerstände (≥½ W) an den AC-Eingangspins setzen den Trigger-Schwellenwert. Siehe HCPL3700 Datenblatt für exakte Berechnungen.
- Ein 10 µF, ≥10 V Elektrolytkondensator am DC-Ausgang des Gleichrichters glättet das Signal und verhindert Flackern der Pi-GPIOs bei Netzfrequenz.
- Ein 0,1 µF Keramikkondensator an den Versorgungspins des Optokopplers reduziert Hochfrequenz-Rauschen.
- Da der HCPL3700 einen Open-Collector-Ausgang nutzt, ist ein Pull-Up-Widerstand erforderlich. Ein 8 kΩ Widerstand (oder 3,3 kΩ + 4,7 kΩ in Serie) zieht die Leitung zuverlässig auf High für die 3,3 V Logik des Pi.
Verbinden Sie den Optokoppler-Ausgang mit einem Pi GPIO-Pin (z. B. GPIO23). Nutzen Sie die 3,3 V Schiene des Pi für die Versorgungspins des Optokopplers. Verbinden Sie Ground von Pi und Optokoppler.
Nach der Verdrahtung kann der Pi ein Logik-Low detektieren, wann immer das HVAC-Relais aktiv ist, und ein Logik-High, wenn es deaktiviert ist.
Für vollständige Schaltpläne und Komponentenberechnungen siehe das HCPL3700 Application Note.
Schritt 5: Software installieren und Daten loggen
Verwenden Sie Python, um den GPIO-Pin einzulesen, jeden Zustandswechsel mit Zeitstempel zu versehen und die Daten in eine CSV-Datei oder Datenbank zu schreiben. Ein einfaches Skript könnte so aussehen:
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)
Für Echtzeit-Grafiken laden Sie die CSV zu Plotly hoch oder nutzen eine leichte Library wie Matplotlib für lokale Charts.
Schritt 6: Erweiterung mit Temperatursensor (Optional)
Integrieren Sie den ADT7410 über I²C, um die Umgebungstemperatur parallel zum Relaisstatus zu loggen. Verbinden Sie den Sensor mit den Pi SDA/SCL Pins, setzen Sie die Adresse (Standard 0x48) und lesen Sie das 16-Bit-Temperaturregister. Speichern Sie die Messwerte in derselben Log-Datei mit separater Spalte.
Mit den Temperaturdaten können Sie in Plotly ein Dual-Achsen-Chart erstellen: HVAC auf der primären und Temperatur auf der sekundären Achse, um Thermostat-Aktivität mit Umgebungsänderungen zu korrelieren.
Indem Sie diese Schritte befolgen, können Sie das Verhalten Ihres bestehenden Thermostats sicher überwachen und loggen, ohne das Gerät selbst zu modifizieren.
Herstellungsprozess
- Nahtlose MQTT-Integration: NodeMCU DHT22 Sensoren mit Raspberry Pi 3 B+ als Broker
- Präzises Raspberry Pi Temperaturprofiling mit Python, SQLite und LabVIEW
- 24-V Thermostat-Ereignisse mit Optokoppler & Raspberry Pi loggen & grafisch darstellen
- Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
- Nahtlose Temperatur- & Feuchtigkeitsüberwachung am Raspberry Pi mit EzTemp
- Remote-Wetterüberwachung mit Raspberry Pi 3 & PubNub
- TI SensorTag mit Blynk via Node-RED auf Raspberry Pi Zero integrieren
- Raspberry Pi Lichtsensor mit Logging & Alert – Kostengünstiger Fotowiderstand mit Python
- LED mit PIR-Bewegungsmelder am Raspberry Pi steuern
- Multi-Sensor Temperatur- & Licht-Überwachung mit Raspberry Pi & DS18B20