Wichtige Hinweise:
Bei diesem Projekt wird mit Netzspannung gearbeitet, das bedeutet 230 Volt. Also ist größte Vorsicht geboten. Bei unsachgemäßen Handlungen besteht Lebensgefahr. In diesem Zusammenhang verweise ich auch auf den Betrag zu Stromunfall bei Wikipedia. Auch in anderer Hinsicht auf Brandgefahr ist dieses Projekt nicht ohne Risiko, wie weiter unten ausgeführt. Ein durchschmorendes Kabel kann schnell zu einem großen Problem werden. Das Gerät ist nicht Kurschlussfest. In Bauanleitung fehlt eine Sicherung, die eine Zerstörung durch eine zu hohe Last verhindert. Solche eine Sicherung führt man am besten als Sicherungsautomat aus. Z.B. so: |
Über eine Steckdose mit WLAN-Kontrolle hatte ich schon an anderer Stelle (WLAN-Steckdose: An & aus im ganzen Haus und darüber hinaus ...) nachgedacht. Leider mit waren die Versuche recht unbefriedigend. Irgendwann bin ich dann auf das PZEM-004T gestoßen, einem Messmodul für Spannung, Strom, Leistung und Gesamtverbrauch, dessen Messwerte man über eine serielle Schnittstelle abfragen kann. Das hat dem Thema neuen Schwung gegeben.
Inhaltsverzeichnis
2020-07-29: Code an den umgestalteten UrsAsyncWebSever angepasst.
Ein PZEM-004T liefert lfd. Informationen zu Netzspannung, Strom- und Leistungsaufnahme eines Verbrauchers an einen ESP8266 (Wemos D1 mini). Dieser sammelt die Daten und stellt sie auf einer Web-Site zur Verfügung. Der Verbraucher kann mit Hilfe eines Relais an- und abgeschaltet werden. Die verschiedenen Zustände des Systems werden über eine programmierbare Dreifarben-LED (WS2812) durch eine entsprechende Farbe angezeigt. Die Betriebsspannung (5V) wird von einem einfachen USB-Ladegerät bereit gestellt. So sieht es aus:
Weitere Optionen sind Datenabruf und Steuerung per HTTP, TCP oder UDP.
Die Hardware besteht aus einer Reihe Standard-Modulen die passend verschaltet sind. Es wurde keine eigene Hardware entwickelt. Als Gehäuse dient eine übrig gebliebene MBO-Funksteckdose. Dieses eher ältere Gerät hat den Vorteil, dass das Gehäuse großzügig dimensioniert ist. Steht kein passendes Steckdosen-Gehäuse zu Verfügung kann die Elektronik auch mit einen beliebigen Gehäuse in eine Verlängerungsschnur eingeschleift werden
oder man baut sich eine ähnliche Messstation wie Pavlův es gemacht hat:
Der Wemos D1 mini wurde als Prozessor-Board wurde wegen seiner geringen Abmessungen gewählt. Es enthält außerdem bereits alle Komponenten, die zum Betrieb und Programmierung eines ESP-12 notwendig sind.
Das WS2812-Modul wird mit 5 V betrieben. Die Ansteuerung mit den nur 3,3 V führenden Pins des ESP8266 liegt an den unteren Spannungsgrenze, klappt aber einwandfrei.
Über das Loch der ursprünglich in der Steckdose angebrachten LED (Ø 5 mm) wurde von außen ein transparenter Klebestreifen geklebt. Danach wurde das Loch von innen mit transparentem, aber leicht milchigen Heißkleber aufgefüllt. In den noch heißen Kleber wurde das passend beschnittene WS2812-Modul eingedrückt. So erscheint das gesamte Loch diffus erleuchtet und man sieht die Struktur der LED nicht, wenn Mischfarben angezeigt werden.
Signal-LED Rückseite | Signal-LED Vorderseite |
Die Relais-Karte ist hier beschrieben: 5V 10A 1 Kanal Relay Modul mit Opto-Koppler. Sie dient zum An- und Abschalten des Verbrauchers.
Der im Auslieferungszustand zwischen VCC und IN+ gesteckte Jumper muss entfernt werden. VCC wird vom Netzteil geliefert und beträgt 5 V. IN+ liegt am 3,3 V Anschluss es ESP. IN- wird von D1 auf Masse gezogen, wenn das Relais anziehen soll. Als Stromsenke verträgt ein ESP8266-PIN einen deutlich größeren Strom als als Stromquelle (s. ESP8266 FAQ).
Das Relais ist so in die Zuleitung des Verbrauchers geschaltet, dass der Verbraucher im Ruhezustand angeschaltet ist (Anschlüsse NC & COM). Er kann also nur aktiv abgeschaltet werden.
Dieses Modul bekommt man für weniger als 10€ bei ebay vom Chinamann. Das Schöne an diesem Gerät ist die galvanische Trennung der Datenschnittstelle von der Netzspannung.
Der Messspannungseingang dient neben der Spannungsmessung auch zur Erzeugung der internen Spannungsversorgung. Es gibt keine Anschlüsse für die Bereitstellung einer Betriebsspannung. Das Gerät funktioniert also nur so lange, wie die Messspannung anliegt. Das begrenzt die Messspannung auf einen Bereich von etwa 80...260V Wechselspannung.
Ansicht des Geräts | Schaltplan der Schnittstelleneinheit | Foto der Schnittstelleneinheit |
Um die Schnittstelle mit einem ESP8266 betrieben zu können, muss R17 von 1kΩ auf etwa 500Ω reduziert werden (s. PZEM-004t Power Monitor via MQTT/HTTP auf wifi-iot.com). Die Pin-Spannung des ESP reicht ansonsten nicht aus, den Optokoppler durchzusteuern. Am einfachsten lötet man einen weiteren 1kΩ Widerstand parallel zu R17 auf die Rückseite der Platine:
Datenblatt: AC digital display Multifunction Meter Hier wird ein mit dem Modul betriebenes Multimeter beschrieben. Die wesentlichen Daten, insbesondere das Kommunikationsprotokoll, passen aber. Unklar bleibt jedoch, bei welchen Werten ein Überlauf des Gesamtverbrauchswerts stattfindet. Die Rückmeldung erfolgt binär mit 24 Bit, könnte als bis zu 16.777.215 Wh erfolgen. Es könnte aber auch auf ein möglicherweise angeschlossenes Display Rücksicht genommen werden und der Überlauf bei 9999 kWh (9.999.999 Wh) erfolgen.
Leider gib es keine einfache Möglichkeit, den Gesamtverbrauchswert zurück zu setzen. Das Gerät verfügt über einen Taster "CLR", der fünf Sekunden gedrückt, dann losgelassen und noch einmal für eine Sekunde gedrückt werden muss. Danach beginnt die Gesamtverbrauchszählung wieder bei 0. Man könnte ein Relais oder einen Optokoppler parallel zum Taster anlöten, mit dem man dann den Tastendruck per Software simulieren könnte. Ich habe mich aber für eine einfachere Lösung entschieden (s.u.).
Das Gerät ist so kalibriert, dass von einer einfachen Durchführung des Kabels, dessen Stromfluss gemessen werden soll, durch den Stromtransformator ausgegangen wird. Dann ist eine Strommessung bis zu 100A respektive eine Leistungsmessung bis zu 23 kW (bei Netzspannung) möglich. Führt man das Kabel mehrfach durch den Transformator erhöht man die Empfindlichkeit des Moduls. Insbesondere bei der Messung von Verbrauchen mit einer geringen Leistungsaufnahme kann diese Option interessant sein. Man muss jedoch bedenken, dass hierbei auch gleichzeitig den Messbereich entsprechend reduziert wird. Ich habe mich für vier Windungen entschieden.
Das Netzteil ist ein preiswertes USB-Ladegerät, das von Gehäuse und Netzstecker befreit wurde.
USB Ladegerät | geöffnet | Datenblatt |
Ist schon etwas eng ... | ... aber passt | und funktioniert! |
... funktionierte fast. Nach etwa 30 Minuten Betriebszeit häuften sich Übertragungsfehler vom PZEM-004T zum EPS8266 . Eine genauere Analyse ergab, dass einige Bits, die eigentlich den Wert 1 haben sollten, als 0 eingelesen wurden. Wahrscheinlich ein Problem mit dem Opto-Koppler oder dessen PullUp-Widerstand. Da der Zusammenbau nicht ganz so einfach war, habe ich versucht, dass Problem per Software zu lösen (s. PZEM-Kommunikation). Voilà, jetzt läuft's. Für eine nächste Version wäre für diesen Punkt eine weitere Überprüfung angesagt!
Nach einigen Betriebsstunden mit kleineren Verbrauchern habe ich dann unsere Spülmaschine angeschlossen. Die ist noch etwas älter und hat dementsprechend einen relativ hohen Stromverbrauch. Das Gerät hat für knapp 10 Minuten etwa 3,5 kW angezeigt, danach nichts mehr. Dafür hat es ekelhaft gerochen. Ursache war eine durchgebrannte Leiterbahn. Die habe ich überbrückt, jetzt geht es wieder. Wenn also Verbraucher mit höherer Leistungsaufnahme angeschlossen werden sollen, ich würde sagen ab etwa 1 kW, sollte man den 230V-Stromkreis stärker auslegen und eine nicht so kompakte Aufbau-Variante wählen.
Durchgebrannte Leiterbahn ... | ... überbrückt. |
Die Erläuterungen zur Software sind etwas umfangreicher geworden und wurden auf mehrere Seiten verteilt:
Hinweise zur Installation:
Das RAR-Archiv enthält folgende Dateien:
Access-Point errichten, zur Anpassung der Außensteuerung ohne WLAN-Zugang.
Erweiterung der Signal-LED-Anzeige: Ist der Verbraucher aktiv, zieht also Strom?
Aufbau einer Messreihe, d.h. Verbrauchsmessungen über einen definierten Zeitraum. Abstände der Messpunkte und Messdauer konfigurierbar. Anzeige als Web-Seite und Download als CSV-Datei über alle öffentlichen Schnittstellen.
Handy-App analog zum Web-Interface.
Die Schnittstellendaten/-meldungen sollten den Gerätenamen enthalten, damit Geräte unterscheidbar werden.
Die bestehende UPD-Schnittstelle funktioniert eigentlich nur bei der Verwendung von Broadcast-Meldung. Peer-To-Peer-Schnittstelle über individuelle IPs oder Ports einrichten. Dabei eine Art "UPnP-Service", über den die aktiven Geräte abgefragt und P2P-Verbindungen aufgebaut werden können.