graphische Auswertung eines Stromzählers

Raspberry Pico W und Fotowiderstand

In vielen Haushalten wurden schon die älteren Ferraris-Stromzähler (Drehscheibenzähler) durch moderne elektronische Zähler ersetzt. Diese Zähler kann man leichter ablesen und bei fast allen Zählern gibt es eine LED, die durch Blinkimpulse den momentanen Energieverbrauch des Haushalts anzeigt. Was ein Blinkimpuls bedeutet, ist auf der Beschriftung des Stromzählers angegeben. Meiner blinkt 500 mal bei einer Abnahme von 1KWh. Ich habe aber auch schon Elektrozähler gesehen, die 1 KWh mit 10000 Impulsen anzeigen. Ein kleiner Fotowiderstand wird mit Klebeband vor dieser LED befestigt und wird mit einem einfachen zweiadrigen Kabel zum Raspberry Pico W verbunden.
Meine simple Software im Raspberry Pico wertet die LED Impulse (Energieverbrauch) aus und stellt diese in verschiedenen Diagrammen per WLAN dar. Auf sehr leichte Art und Weise kann man erkennen, wann welche elektrischen Verbraucher was aus dem Stromnetz bezogen haben. Leicht lassen sich auch mit diesen Auswertungen Rückschlüsse auf eigene Gewohnheiten und Einsparpotentiale ziehen.
Die vier Graphen werden alle 5 Minuten aktualisiert und können mit jedem beliebigen Endgerät (Smartphone, Tablet, Laptop, PC…) aufgerufen werden. Der kleine Raspberry Pico W ist dabei mit Ihrem WLAN verbunden und über seine IP Adresse von Ihren Geräten (PC, Laptop, Tablet, Smartphone) aufrufbar. Dargestellt werden die letzte 2 Stunden in Schritten von 5 Minuten, der letzte Tag mit 24 Einzelwerten zu jeder Stunde, der letzte Monat und die letzten 2 Jahre mit einer Auswertung zu jedem der 24 Monate. Im Kopf jedes der 4 Graphen wird der aktuelle Durchschnittsverbrauch dargestellt.

Softwaredetails
– die aktuelle Uhrzeit wird aus dem Netz per NTP bezogen
– zu jeder vollen Stunde werden automatisch alle Daten gesichert
– es ist jederzeit möglich, eine weitere zweite Sondersicherung der Daten durchzuführen
– die Umstellung zwischen Winter- und Sommerzeit erfolgt manuell
– die Software wurde in MicroPython geschrieben und kann beliebig von Ihnen geändert / angepasst werden
Achtung ! Ich schreibe Ihnen keine Anpassungen und Verbesserungswünsche in die Software. Der Quellcode ist gut dokumentiert und wird nicht weiter von mir erklärt / beschrieben.

Materialien (Summe < 7,50 Euro)
– Raspberry Pico W (etwa 6-7 Euro)
– Fotowiderstand 20K (Berrybase.de, LDR Fotowiderstand, 100mW, 8-20kΩ 0,18 Euro)
– älteres 5 Volt Netzteil mit Micro-USB Anschluss (hat jeder…)
– kostenfreie Software Thonny (zum Übertragen das Programms in den Pico)

Notwendige Schritte / Softwareanpassungen
1. Raspberry Pico W mit der aktuellen Micropython Firmware bespielen UF2 File ( https://micropython.org/download/rp2-pico-w/rp2-pico-w-latest.uf2 )
2. Download APP Thonny ( https://thonny.org )
3. Editieren der Zeilen 13-15 der „main.py“ (eigene WLAN Zugangsdaten und Anzahl der Impulse pro 1 KWh von Deinem Stromzähler eintragen)
4. Raspberry Pico W mit der Fotowiderstanddiode verbinden ( Pin 17 und Pin18 )
5. Fotowiderstand vor der blinkenden LED des Stromzählers befestigen (Klebeband)
6. Mit Thonny die Datei main.py zum Raspberry Pico W übertragen
7. über die IP Adresse den Raspberry Pico W in einem beliebigen Browser öffnen

  Der neueste und aktuellste Versionsstand der Software kann über Github geladen werden. 

Micropython - Webrepl mit Raspberry Pico W nutzen

Mit diesem kurzen Beitrag möchte ich beschreiben, wie man die Webrepl Verbindung auch auf einem Raspberry Pico W nutzen und verwenden kann. Webrepl ist eine Verbindungsart zwischen PC und Controller die ich bei einem ESP Controller und meinen ersten Micropython Versuchen kennen gelernt habe. Ich konnte damit die Ausgaben des ESP Controllers ohne physische Kabelverbindung zu meinem PC sehen und diesen Controller auch darüber bequem programmieren. Es reichet die WLAN Verbindung. Diese Art ist sehr hilfreich, wenn man im Haushalt Controller verwendet und dort mal die Ausgaben sehen will bzw. auch neu Software einspielen möchte. Man kann es auch als OTA – Over the Air Programmierung bezeichnen.

Micropython kann man mit sehr vielen Microcontrollern nutzen. Auch auf einem Raspberry Pico läuft Micropython schnell und einwandfrei. Als etwas später der Raspberry Pico W mit WLAN auf dem Markt erschien, wollte ich natürlich wieder Webrepl anstatt der USB Verbindung nutzen. Leider führten alle Versuche zu nichts. Um Webrepl auf dem ESP nutzen zu können ist eine kleine Setup Routine vorab nötig. Es wird ein Passwort und die Art das Starts der Webrepl Anwendung voreingestellt. Dieses Setup Programm startet man an einem mit dem WLAN verbundenen ESP mit „import webrepl_setup“. Dieser Programmaufruf führt auf dem Pico W zu Fehlern. In verschiedensten Foren fand ich keine Hilfe.

Prinzipiell gibt es am Pico W neben dem nicht startenden Setup „import webrepl_setup“ noch ein zweites Problem. Der Pico W merkt sich einfach nicht die WLAN Anmeldedaten, wenn dieser neu gestartet wird. Der ESP machte aber so etwas.

Lösung:

Auf den frisch installierten Pico W z.B. mit aktuellem Micropython V1.22.1 (Stand 5.1.2024) müssen zwei kleine Dateien übertragen werden. Eine Datei nennt sich „webrepl_cfg.py“ und die andere ist die „boot.py“. Die erste der beiden genannten Daten enthält das für Webrepl notwendige Passwort (4-9 Zeichen) zum Verbindungsaufbau. Die „boot.py“ startet automatisch erst einmal die WLAN Verbindung zu Ihrem Netzwerk und dann die Programme um Webrepl nutzen zu können. Sie müssen natürlich vorab die eigenen WLAN Zugangsdaten eintragen. Sobald der Pico W gestartet wird, ist Webrepl aus dem Browser am PC nutzbar. Die 15 Sekunden Pause habe ich am Ende der „boot.py“ eingefügt, weil man so nach einem Neustart noch genügend Zeit haben muss um sich wieder per Browser und Webrepl verbinden zu können. Man würde sonst evtl. auftauchende Fehlermeldungen der aktualisierten Programme nicht sehen.

boot.py

webrepl_cfg.py

Der einfachste Weg die Webrepl Webseite aufzurufen funktioniert bei mir über ein privates Fenster und diesem Link http://micropython.org/webrepl/#192.168.1.125:8266   Unbedingt auf das http am Anfang achten. Natürlich muss die IP Adresse auf die von Ihrem eigenen Pico angepasst werden. Https kann nicht verwendet werden ist aber hier an dieser Stelle kein Problem. Sollte der Browser immer wieder allein auf https umschalten, den müssen Sie sich Webrepl – findet man im Netz – lokal auf dem PC übertragen.
Ggfs. schreibe ich in den kommenden Tagen wie.

webrepl mit Raspberry Pico W