Ich fragte mich - wohin fließt der Strom aus den Drähten? Es scheint, als ob wir das Haus mit Gas ertränken, im Haus sind alle Lampen Dioden, wir schalten nachts den Geschirrspüler ein, es gibt noch keine Bäder mit einem Elektroherd und der Strom geht die ganze Zeit aus. Das Durcheinander. Es wäre notwendig, ihm zu folgen.
Willkommen bei der Katze…
Der erste Schritt ist die allgemeine Überwachung des Verbrauchs
Die Aufgaben
Ich beschloss, eine Hasenherde zu jagen. Hasen wurden ausgewählt:
- Stromüberwachung über das Internet. Ich habe eine sofortige Überwachung der Netzwerkparameter - im Korridor befindet sich im Panel ein Energiemonitor PZEM061, auf dem Bildschirm können Sie Spannung, Strom und Leistung sehen. Aber am Ort der Anzeige der verbrauchten Energie - eine Art Abstraktion, zu wenig Entladungen. Aber der Korridor ist nicht bequem. Ich möchte auf dem Telefonbildschirm.
- Grafik des Stromverbrauchs. Ich möchte wissen, wann übermäßiger Konsum auftritt.
- Zählerstände über das Internet. Dieser Schmerz ist die Übertragung von Zählerständen auf den Energieverkauf. Es ist notwendig, sie vom 15. bis zum 25. Tag des Monats zu bezeugen. Ich vergesse es oft und sie rufen den Roboter an und schreiben Spam. Außerdem, wenn sie sich an sich selbst erinnern - ich arbeite normalerweise und habe einen Schalter auf einem Pfosten auf der Straße. Ich möchte auf dem Telefonbildschirm.
- Überwachen Sie die Stabilisatortemperatur. In unserem Dorf gibt es im Winter nicht mehr als 200 V am Eingang des Hauses, es erreicht 140 V. Daher habe ich keinen 12-kW-Stabilisator, aber mit solchen Parametern und einer langen Last von 2 kW und unter Berücksichtigung der Position des Stabilisators in der Wandnische, der Überhitzung und des Ausschaltens des Stabilisators musste ich ein paar Lüfter hinzufügen (bei ihnen bleibt die Temperatur innerhalb akzeptabler Grenzen) - sie wurden zuvor eingeschaltet ständig kneten jetzt - Thermostate KSD9700 auf 65g stellen, wir warten auf den Winter. Ich möchte diesen Parameter nicht überwachen, weil Ich kann ihn nicht beeinflussen. Aber nach dem Hinzufügen von Thermostaten müssen Sie das Ergebnis kontrollieren.
Eisen
Um die Aufgaben zu lösen, wurde ausgewählt:
- PZEM004T - Energiemonitor mit UART. Sie können die Parameter des Netzes abrufen - alle 0,6 Sekunden einen Parameter: Spannung, Strom, Leistung, Energieverbrauch sowie die Frequenz und den Leistungsfaktor, die ich nicht benötige. Wird mit Messwandler 1: 1000 verwendet.
- ESP8266 NodeMCU - ein universeller Mikrocontroller mit WiFi, der gut zum PZEM004T passt - kann über Racks mit den verfügbaren Löchern auf den Platinen verbunden werden. Es gibt auch eine nützliche Flash-Taste auf der NodeMCU-Karte (verbunden mit GPIO0) - es ist praktisch, sie zur Steuerung des Betriebsmodus zu verwenden - zum Beispiel um SoftAP zu aktivieren.
Vorausgesetzt, das Gerät wird im Metallgehäuse des Stabilisators platziert - eine externe Antenne an das ESP gelötet. Ich habe versucht, das ESP über das PZEM004T mit Strom zu versorgen (Lötdrähte an den runden Kondensator - es sind ungefähr 7 V). Es hat nicht funktioniert, als ich das ESP angeschlossen habe, fällt die Spannung auf 2 V ab. Aber der Stabilisator hat bereits eine 5-V-Stromversorgung - für Lüfter, was bedeutet, dass er verwendet wird (ich dachte, es waren 12 V, also habe ich lange gelitten, ein ESP daran anzuschließen) - es hat in keinem funktioniert, ich habe eine Reihe von DC-DC-Wandlern ausprobiert, bis ich es umgedreht habe BP und las die Inschrift darauf nicht).

Firmware
In einem Netzwerk verfügbar angesehen. Wie immer fand ich keinen passenden und beschloss, meinen eigenen zu schreiben.
Ich habe mein eigenes Projekt für das Sonoff-Relais als Basis genommen (die einfachste Funktion, es wird über HTTP ein- und ausgeschaltet und kann über eine Taste nichts anderes tun; es wird in Verbindung mit
MacroDroid verwendet , um das Telefon
sparsam mit einem ständig auf dem Bildschirm befindlichen
Gerät zu versorgen - der vorherige Akku wurde durch eine konstante Ladung gesprengt und der Bildschirm herausgedrückt ) Zusätzlich zur Relaisfunktion verfügt die Baugruppe über einen http-Server, WLAN, NTP-Einstellungen und arbeitet mit der GPIO0-Taste - verschiedene Aktionen von der Dauer des Drückens bis zum Blinken in einem beliebigen Licht (z. B. Zählen der Sekunden des Drückens einer Taste, die den Status des Relais und des WLANs widerspiegeln) ...
Natürlich habe ich die Einstellungen leicht geändert:

Ich habe mir die vorhandene Bibliothek für die Arbeit mit PZEM004T angesehen - es hat mir nicht gefallen. Sie sendet eine Anfrage und wartet dann in einer geschlossenen Schleife auf eine Antwort. Das ist nicht richtig. Ich habe meine Bibliothek asynchron geschrieben - ich sage dem Hauptprogramm, welche Parameter ich erhalten möchte, und überprüfe dann regelmäßig, ob die erforderlichen Daten empfangen werden:
Codestatic PZEM004Tnb::flags flags = PZEM004Tnb::flags::all; static unsigned long lastReadEnergyTime = 0; if (Pzem004t.isDataUpdated()) { setLedState(3);
Ich habe berücksichtigt, dass der PZEM004T maximal 9999 kW * h berücksichtigt, dann wird er zurückgesetzt - ich habe die Überlaufabrechnung implementiert. Implementierung eines Zwei-Raten-Kontos. Ich habe auch die Abrechnung der Durchschnittswerte der Parameter implementiert - die Messwerte werden ungefähr alle 2 Sekunden abgelesen, und bei der
Personenüberwachung ist es erforderlich, alle 5 Minuten Daten zu übertragen, natürlich durchschnittlich.
Dem System hinzugefügt, arbeiten mit einer Reihe von Sensoren DS18B20. Die Daten werden nacheinander mit einer Zeitspanne von 2 Sekunden pro Sensor gelesen. Das heißt, Wir suchen nach einem Sensor, den wir gefunden haben - wir empfangen Daten, nach 2 Sekunden suchen wir nach dem nächsten usw. Beendete Sensoren - von vorne beginnen. Das heißt, Wenn nur ein Sensor verwendet wird, beträgt die Abfragezeit 4 Sekunden. Für diese Sensoren wurden auch die Durchschnittswerte berechnet.
Die aktuellen Energiemonitordaten können über HTTP abgerufen werden:

Alle Daten werden bei Bedarf in Ganzzahlen gespeichert (z. B. bei der Übertragung an
People's Monitoring ). An der gewünschten Position wird ein Punkt hinzugefügt.
Implementierung der Veröffentlichung von Daten mithilfe des
MQTT / UDP-Protokolls . Unterstützung für dieses Protokoll und den PZEM004T-Sensor wurde meinem
Monitor hinzugefügt:

Dies ist mein fehlgeschlagenes Temperaturreglerprojekt (
Fiasko. Die Geschichte eines hausgemachten IoT-Produkts ), das ich als einzigen Monitor verlassen wollte.
Implementierung der Veröffentlichung von Daten zur
Personenüberwachung :

Die Leute vom
People's Monitoring haben viel Respekt! Das Übertragen von Daten an den Dienst ist elementar. Es gibt eine Möglichkeit, die eingehenden Daten anzuzeigen, um die Interaktion zu debuggen. Sie können einfach die Sensordaten verwalten.
Das System kann Testdiagramme erstellen (unten ist ein Durcheinander aus den Diagrammen, nur ein Beispiel):

Es ist auch möglich, über den Status von Sensoren zu informieren (vorübergehend deaktivierte Datenübertragung für den Test):

Natürlich habe ich Einstellungen für die Datenveröffentlichung hinzugefügt:

Zusammenfassung
Als Ergebnis der Echtzeitüberwachung schaltete er bereits einen der beiden ständig eingeschalteten Minicomputer aus, konfigurierte den Ruhezustand auf dem Computer des Babys und konfigurierte den Schlafmodus im BD-Player neu (nur für Karaoke verwendet).
Wenn Statistiken für die Diagramme gesammelt werden, werde ich weitere Schritte unternehmen.
Wer möchte einen solchen Energiemonitor bekommen - in einem persönlichen Konto für Firmware (Freebie, Sir!).
PS
Bei der Entwicklung des Geräts stieß ich auf Mystik - wenn ESP von einem USB-Computer mit Strom versorgt wird, funktioniert alles. Bei Stromversorgung über ein eingebettetes Netzteil - funktioniert nicht. Ich habe einen Logikanalysator und ein
Simplescope zur Untersuchung verwendet - die Leistung des blauen Blocks scheint in Ordnung zu sein, die Signale vom ESP sind korrekt und die Rückstille. Noch ein Netzteil - alles funktioniert gut.
Durch das wissenschaftliche Stöbern wurde mir klar, dass ich das eingebaute Netzteil bei Verwendung mit dem Netzteil PZEM004T verbinde, dh in diesem Fall starten zwei Geräte gleichzeitig (bei anderen Netzteilen ist ein gleichzeitiges Einschalten nicht möglich). Und ich verwende Hardware-UART für die Kommunikation, auf die ESP beim Start viel Müll wirft. PZEM004T kann dies beim Start nicht verdauen und friert ein. Wenn PZEM004T bereits aktiviert ist, werden ESP und Garbage im Port ohne Probleme gestartet.
Die Lösung war die Verwendung von SoftwareSerial, alles funktioniert gut damit.
PPS
Für diejenigen, die sich ein solches Gerät machen wollen (und es gibt solche Helden!):
Beschreibung im Katalog der Geräte der nationalen Überwachung