banner
Nachrichtenzentrum
Mit einem unermüdlichen Streben nach Exzellenz verfeinern wir kontinuierlich unsere Techniken und Qualität.

Bauen Sie einen Energielogger zur Messung und Aufzeichnung des Stromverbrauchs

May 20, 2023

Es gibt viele Einsatzmöglichkeiten, bei denen eine kontinuierliche Aufzeichnung der Erzeugung oder des Verbrauchs elektrischer Energie sinnvoll ist. Denken Sie nur an den Energieverbrauch bestimmter Stromkreise im Haus oder an die Energieversorgung eines Balkonkraftwerks oder einer größeren Photovoltaikanlage. Für die Aufzeichnung gibt es fertige Lösungen, Sie können aber auch selbst einen passenden Logger bauen. Der hier vorgestellte Logger nutzt einen Zähler mit S0-Ausgang zur Erfassung des elektrischen Stromverbrauchs. Passende Messgeräte gibt es schon für unter 20 Euro (z. B. bei Amazon, eBay oder direkt aus Fernost). Damit lässt sich der Energieverbrauch angeschlossener Stromkreise oder auch der Ertrag von Photovoltaikanlagen messen und mit der hier beschriebenen Elektronik „protokollieren“ bzw. erfassen.

Tipp der Redaktion: Schauen Sie sich Dr. Thomas Scherers Artikel „DIY Solar PV Installation: Building a Balcony Power Plant“ an.

Denn wofür wurden Mikrocontroller erfunden? Ziemlich genau für diese Art von Anwendung. Vor dem Computerzeitalter wäre es für den Heimgebrauch schwierig und nahezu unmöglich gewesen, den Energieverbrauch oder die Energieerzeugung über die Zeit zu erfassen. Dank kostengünstiger Mikrocontroller mit all ihren großartigen Fähigkeiten ist die digitale Protokollierung heute nicht nur kein Problem, sondern auch ausgefallene Dinge wie eine WLAN-Verbindung und mehr werden möglich. Was der Energielogger kann, erfahren Sie imMerkmale Kasten. Einen Eindruck von der fertigen Lösung erhalten Sie hierFigur1Dargestellt ist die Kombination aus Messgerät und Logger inklusive Netzteilen, eingebaut in einem Kunststoff-Verteilerkasten.

Dank des Mikrocontrollers ist die Schaltung des Energieloggers (Figur2 ) ist ganz einfach. Auf der linken Seite befinden sich mehrere Optokoppler zur galvanischen Trennung, über die die Daten von der S0-Schnittstelle des Messgeräts an die entsprechenden Eingänge des Mikrocontrollers gesendet werden. Diese sind unterbrechungsgesteuert, um sicherzustellen, dass kein Impuls verloren geht. Ich habe ein günstiges ESP32-Modul verwendet, da dieses über genügend Rechenleistung und auch eine WLAN-Schnittstelle verfügt. Auf der rechten Seite befinden sich zwei Speichermodule – ein Steckplatz für eine SD-Karte zur Massenspeicherung und ein zusätzliches FRAM-Modul, das die Daten für 5 Minuten zwischenspeichert, um die Anzahl der Schreibzyklen auf die SD-Karte zu reduzieren.

Da die Schaltung so einfach ist, habe ich sie auf einem Steckbrett aufgebaut. Wie Sie an den beiden hellblauen Blöcken erkennen können, sind aus Sicherheitsgründen zwei separate Netzteile vorgesehen. Für die S0-Schnittstellen links reichen 6,5 V. Der Rest der Schaltung wird von einem 5-V-Netzteil versorgt (rechts). Eine Belastbarkeit von jeweils 0,5 A ist ausreichend. Zur galvanischen Trennung dürfen die beiden GND-Leitungen der Netzteile auf keinen Fall verbunden werden. Darüber hinaus muss unterhalb der Optokoppler – zwischen ihren Ein- und Ausgängen – das gesamte Kupfer auf einer Strecke von mindestens 4 mm entfernt werden.Figur3 zeigt, wie das aussehen soll. Die galvanische Trennung mittels zweier separater Netzteile ermöglicht zudem den Anschluss des ESP32 an die USB-Schnittstelle eines PCs (z. B. um zukünftige Updates an den verbauten Controller senden zu können). Anstelle der Verwendung von zwei Netzteilen wäre auch eine Lösung mit nur einem Netzteil mit höherer Strombelastung plus einem trennenden DC/DC-Wandler und einem Spannungsregler möglich gewesen, was aber weder wirklich einfacher noch billiger wäre.

Wie bereits erwähnt ist die Verwendung von zwei Speichermodulen kein Luxus. Die S0-Schnittstellen können teilweise mehrere Impulse pro Sekunde liefern. Würden die Messwerte im internen Speicher des Mikrocontrollers gesammelt, könnte es bei einem Reset zu Datenverlust kommen. Andererseits würde das sofortige Schreiben auf eine SD-Karte die Lebensdauer der Karte massiv verkürzen. Bei nur einem Wert pro Sekunde würden 31,5 Millionen Schreibzyklen pro Jahr erfolgen. Allerdings erreichen die Speicherzellen einer SD-Karte bereits nach 1.000 bis 3.000 Schreibzyklen das Ende ihrer Lebensdauer. Selbst eine Karte mit hoher Kapazität würde daher mit ziemlicher Sicherheit vor Ablauf eines Jahres Defekte aufweisen. Um dies zu vermeiden, ist ein stabiler Puffer vorgesehen. Das hier verwendete externe FRAM-Modul verfügt zwar über eine Speicherkapazität von gerade einmal 8 kB, das reicht aber locker aus, um einige Werte zu erfassen. Der größte Vorteil von FRAM besteht darin, dass es je nach Hersteller mindestens 1010 Mal beschrieben werden kann – typischerweise übersteht ein solcher Speicher sogar Billiarden Schreibzyklen. Alle fünf Minuten werden die im FRAM gesammelten Daten auf die SD-Karte übertragen. Das bedeutet knapp über 100.000 Schreibvorgänge pro Jahr, und da eine SD-Karte über viele Speicherzellen verfügt, kann sie problemlos mehrere Jahre betrieben werden. Darüber hinaus wird die Anzahl der Neustarts des Loggers im FRAM aufgezeichnet Sie können jederzeit überprüfen, wie oft ein Reset ausgelöst wurde. Darüber hinaus wird jeden Tag eine neue Datei auf der SD-Karte erstellt und die Daten dieses Tages darauf gespeichert. Um Speicherplatz zu sparen, wird die Aufzeichnung nur dann gestartet, wenn sich einer der Zählerwerte seit Mitternacht geändert hat. Wird der Energielogger zur Erfassung des Stromverbrauchs genutzt, ist diese Funktion eigentlich überflüssig. Wenn jedoch die Energieproduktion einer Solaranlage überwacht wird, ist es sinnvoll, dass die Aufzeichnung erst nach Sonnenaufgang beginnt (also wenn der erste Strom erzeugt wird).

Figur4 zeigt einen Abschnitt einer Tabelle, in die die Daten im CSV-Format importiert wurden. Zelle A1 enthält das Datum und die Uhrzeit, zu der die Datei erstellt wurde. Zeile 2 enthält dann als neuen Ausgangspunkt die letzten Werte des Vortages. Die erste Änderung eines Zählerwerts erfolgte um 05:55 Uhr (Zelle A3). Ab Zeile 5 folgen die neuen Daten dieses Tages. Die Spalten enthalten die Daten der einzelnen Zähler. Jede Reihe hat einen Zeitunterschied von fünf Minuten zur nächsten Reihe. Die Daten werden jeden Tag bis Mitternacht aufgezeichnet. Jeden Tag wird eine neue Datei erstellt. Aus der Differenz der Zählwerte kann dann anhand der Impulswertigkeit der Zähler (z. B. 0,5 Wh/Impuls) die Energiemenge berechnet werden. Das CSV-Format ist kostengünstig und eignet sich für den Import in jede Tabellenkalkulation wie Excel, OpenOffice/LibreOffice Calc oder Numbers auf dem Mac. Anschließend können die Daten nach Ihren Wünschen weiterverarbeitet werden.

Auf der SD-Karte werden die Daten in einer zeitlichen Ordnerstruktur gespeichert. Auf der obersten Ebene gibt es Ordner für jedes Jahr, die jeweils Unterordner für die Monate enthalten, und diese wiederum enthalten die Dateien für die einzelnen Tage.Figur5 zeigt die Struktur. In diesem Beispiel werden die Werte von fünf Metern als ganze Zahlen aufgezeichnet (sieheFigur4 ). Dank des CSV-Formats wird hierfür relativ wenig Speicher benötigt. Daraus ergeben sich einige Kilobyte pro Meter und Tag. Die Übertragung der Daten vom Logger an einen PC erfolgt per FTP. Hierfür eignen sich gängige FTP-Clients wie FileZilla. Da der Logger über WLAN in das Heimnetzwerk eingebunden wird, ist diese Methode wohl die einfachste. Den Quellcode für den ESP32 habe ich mit der PlatformIO IDE für VSCode erstellt. Der Code steht auf der Webseite dieses Artikels zum kostenlosen Download zur Verfügung. Folgende Daten müssen in der Datei main.cpp angepasst werden: Ab Zeile 30 müssen die SSID und das Passwort des WLAN-Netzwerks eingegeben werden. In Zeile 813 werden der Benutzername und das Passwort für FTP angegeben. Als Benutzername und Passwort ist standardmäßig „esp32“ eingetragen. Natürlich benötigt der FTP-Client auch die IP-Adresse des Energieloggers. Diese Adresse wird nach einem Reset über die USB-Schnittstelle ausgegeben. Idealerweise sollten Sie Ihren Router jedoch so konfigurieren, dass dem Energielogger immer die gleiche IP-Adresse zugewiesen wird.

Über den integrierten Webserver werden die aktuellen Daten sowie der Gesamtwert des Tages und des Vortages angezeigt. Der Server hostet zwei Seiten. Auf einer Seite wird die aktuelle Leistung pro Zähler sowie die Summe aller angeschlossenen Zähler angezeigt. Zusätzlich wird die Gesamtenergie des Tages und des Vortages in kWh angezeigt. Auf der anderen Seite wird die Feldstärke des WLAN-Netzwerks und die Anzahl der Neustarts des Loggers angezeigt.Zahlen6Und7 sind Screenshots von einem Smartphone. Wie Sie sofort bemerken werden, nutze ich den Energielogger nicht zur Verbrauchsmessung, sondern zur Überwachung meiner Photovoltaikanlage, die über fünf Wechselrichter verfügt. Daher habe ich die Beschriftungen der einzelnen Werte an meinen Verwendungszweck angepasst. Sie können dies jedoch bei Bedarf problemlos in der Software ändern. Wenn Sie im Browser eine Verbindung zur IP-Adresse herstellen, erhalten Sie die Anzeige vonFigur6 . Durch Anhängen von „/about“ an die Adresse oder durch Klicken auf den Info-Button,Figur7erscheint.

Noch ein Hinweis zur WLAN-Verbindung: Wenn Sie den Energielogger in ein Metallgehäuse einbauen, kommt es mit ziemlicher Sicherheit zu Empfangsproblemen.

Sobald der Energielogger in ein Gehäuse eingebaut und installiert ist, möchten Sie die Elektronik im Falle einer Softwareänderung wahrscheinlich nicht mehr ausbauen. Daher kann der Datenlogger aktualisiert werden.ÖverTErAir“ (also über WLAN). Die komplette Software sowie das Dateisystem – die Webseiten mit JavaScript und der CSS-Datei – können so bei Bedarf neu geladen werden. Wenn Sie das möchten, geben Sie die IP-Adresse ein mit angehängtem „/update“.Figur8 zeigt, wie das in meinem Fall aussieht. Ich habe die OTA-Funktion mithilfe der Bibliothek von Ayush Sharma implementiert.

Die Schaltung ist so einfach, dass eine Teileliste eigentlich überflüssig ist. Wichtige Komponenten sind neben dem ESP32-Entwicklungsboard, das überall erhältlich ist, ein SD-Kartensteckplatz, der auf günstigen Breakout-Boards verfügbar ist, und das FRAM-Modul – praktischerweise auch auf Breakout-Boards verfügbar. Da es Breakout-Boards mit unterschiedlichen Pin-Belegungen gibt, sollte man beim Anschluss nicht auf die Pin-Nummern, sondern auf die Pin-Bezeichnungen achten. Für das SD-Kartenmodul kann MOSI an DI oder SI und MISO an DO oder SO angeschlossen werden. Bei den Zählern kann es sich um jedes preiswerte Modell zur DIN-Schienenmontage mit S0-Schnittstelle handeln. Der von mir verwendete Typ DDS5188 (Figur9) ist leicht erhältlich und sehr kostengünstig.

Während es selbstverständlich ist, dass Sie beim Arbeiten mit Netzstrom die nötige Sorgfalt walten lassen müssen, sollten Sie einen Hinweis beachten: Für Arbeiten am Sicherungskasten gelten unterschiedliche nationale Gesetze. In Deutschland müssen Sie hierfür beim Netzbetreiber als ausgebildete Elektrofachkraft angemeldet sein. Auch Arbeiten an externen Unterverteilern, die an den Sicherungskasten angeschlossen sind, sind nur einer Elektrofachkraft mit entsprechender Ausbildung und Kenntnissen gestattet.

Anmerkung des Herausgebers: Artikel 220079-01 (Übersetzt von J. Starkmuth) erscheint im Elektor Mai/Juni 2023. Haben Sie Fragen oder Kommentare zu diesem Artikel? Kontaktieren Sie Elektor unter [email protected].

Georg Luber ist gelernter Elektroinstallateur, studierte Elektrotechnik und war viele Jahre in den Bereichen elektrische Sicherheit und Elektroinstallation tätig. Er hat national und international in Normungsgremien (DKE/VDE, CENELEC, IEC und ISO) gearbeitet. Ein weiterer Schwerpunkt seiner Arbeit war die Gebäudeautomation, insbesondere KNX. Georg Luber ist an der Entwicklung von Software- und Elektronikprojekten in diesen Bereichen beteiligt.

Merkmale Abbildung 1 Abbildung 2 Abbildung 3 Abbildung 4 Abbildung 5 Abbildung 4 Abbildungen 6 7 Abbildung 6 Abbildung 7 OTA Abbildung 8 Abbildung 9