Der PiLogger One kann jetzt auch mit einem ESP32 Modul von Espressif Systems betrieben werden.
Dazu haben wir den PiLogger Web-Monitor entsprechend angepasst (portiert). Das Archiv mit allen benötigten Dateien findet ihr hier : PiLogger Web-Monitor ESP32
Voraussetzung für den erfolgreichen Logger-Betrieb ist eine schnelle SD Card als Datenspeicher. Da der ESP32 üblicherweise ohne SD-Card-Halter kommt und verfügbare SD card shields dann die SPI Schnittstelle mit nur 1 Datenleitung benutzen, haben wir für den PiLogger One eine spezielle Adapterplatte entworfen, die die SDIO Schnittstelle des ESP32 mit 4 Datenleitungen benutzt. Den Adapter könnt ihr hier kaufen : Adapterplatte kaufen
Der PiLogger Web-Monitor ESP32 basiert auf MicroPython von Damien George. Das bedeutet, dass zunächst die Firmware des ESP32 Moduls mit dem ESP32 port von MicroPython überschrieben werden muss. Die notwendige .bin Datei ist im Download-Archiv enthalten.
Danach kann der ESP32 direkt auf der Kommandozeile des Python-Interpreters angesprochen werden (REPL).
Deshalb empfehlen wir für die weiteren Schritte Thonny als komfortable Entwicklungsumgebung. Thonny kann auch als GUI für das Espressif Flash-Tool esptool verwendet werden.
Der grundsätzliche Ablauf der Installation der Software auf einem ESP32 WROOM 32 Modul sieht so aus:
- Installation von Thonny
- Überprüfung/Aktualisierung von esptool
- Vorbereitung Modul mit Adapter
- Flashen von MicroPython
- Kopieren der Archiv-Dateien
- Anpassen der WiFi Zugangsdaten
Installation Thonny
Auf der Homepage von Thonny findet ihr die für euren PC passende Installationsvariante. Thonny kann bei Bedarf Python gleich mitbringen.
Nach erfolgreicher Installation - einmal Starten bitte - muss Thonny nun auf den ESP32 eingestellt werden. Dazu bitte unter Extras' auf 'Optionen...' gehen. Hier auf den Karteireiter 'Interpreter' wechseln. Jetzt in der Ausklappliste nach 'MicroPython (ESP32)' suchen und auswählen.
Die USB Einstellung 'automatisch' unter 'Port oder WebREPL' wählen und den Rest erstmal so lassen - 'OK'.
Nun könnt ihr den ESP32 mit einem MicroUSB-Kabel an einen USB Port eures PC anschliessen.
Die rote LED zeigt an, dass das Modul Strom hat - der Strombedarf ist niedrig genug (< 250 mA) um vom PC versorgt zu werden. Jetzt in Thonny einmal auf den roten Stop/Restart-Knopf drücken und anschließend am Modul auf den Reset-Knopf. Ein frisches Modul sollte sich dann so melden:
Das heisst: es ist keine Application im Flash. Alles gut bis hierher.
Überprüfung/Aktualisierung 'esptool'
Thonny bringt nicht nur Python mit, sondern auch das Flash-Tool 'esptool', welches selber unter Python (auf dem PC) läuft. Hier sollte darauf geachtet werden die neueste Version (> 4.51) zu haben. Das kontrollieren wir in Thonny, indem wir unter 'Extras' auf 'Verwalte Plug-ins...' gehen.
Jetzt in der links angezeigten Liste von Paketen nach 'esptool' suchen und mit einem Mausklick auswählen. Das Hauptfenster zeigt jetzt die installierte Version und das Installationsverzeichnis. Bei Bedarf dann bitte eine neuere Version von PyPi nachinstallieren.
Vorbereiten Modul mit Adapter
Wenn das ESP32 Modul bereits auf die Adapter-Platte gelötet ist, verhindert der Pull-Up für das Signal SD_D0 an GPIO2, dass das Flash erkannt und programmiert werden kann. Also muss vor dem Flashen dieser Pin mit seinem Nachbarn GPIO0 kurzgeschlossen werden. Diese beiden Pins sind auf der Adapterplatte durch den nicht bestückten Widerstand R7 gekennzeichnet. Die einfachste Methode ist hier, sich die Steckbrücke (Jumper) vom PiLogger One auszuleihen und auf die beiden Modulstifte zu stecken (nicht vergessen, ihn nachher wieder auf den PiLogger zu stecken) :
Flashen MicroPython
Thonny sucht die zu flashende Datei standardmässig im Download-Verzeichnis. Da die Entwicklung und die Tests auf der MicroPython Version 'esp32-20220618-v1.19.1' stattgefunden haben, ist diese Version der .bin Datei im Download-Archiv enthalten.
Diese Datei entpacken wir also in das Download-Verzeichnis auf dem PC.
In Thonny rufen wir wieder unter 'Extras' , 'Optionen...' die Seite 'Interpreter' auf:
Jetzt klicken wir auf 'MicroPython installieren'.
Dieser Screenshot ist beispielhaft von einem Linux-Rechner, weshalb hier der USB Port 'ttyACM0' heißt. Durch das automatische Suchen ist der echte USB Port in der Ausklappliste auswählbar. Leider ist hier der Thonny Dialog noch nicht übersetzt - erschliesst sich aber auch so... die Auswahl 'Flash mode' nicht ändern und auch das 'Erase flash' aktiv lassen.
Mit Klick auf 'Installieren' geht's los !
Kopieren der Archiv-Dateien
Jetzt entpacken wir das heruntergeladene Archiv in einen passend benannten Arbeitsordner für Thonny.
Wenn wir jetzt Thonny öffnen, das ESP32 Modul anstecken, in Thonny 'Stop/Restart' drücken und das Modul reseten
dann sollte es auf dem Bildschirm so ähnlich aussehen:
Das heißt: Auf dem 'Target' - dem 'MicroPython device' gibt es jetzt genau eine Datei: 'boot.py'. Die tut nichts - die spielt noch nicht mal...
Mit einem Rechtsklick auf den Ordner 'static' im oberen Datei-Baum rufen wir das Kontextmenü auf, in dem wir den ganzen Ordner auf das Target mit 'Upload nach /' zum Target kopieren können.
Dann wechseln wir in beiden Datei-Bäumen in die Ordner 'static' und kontrollieren kurz, dass sie den gleichen Inhalt haben:
Jetzt können wir in beiden Bäumen wieder jeweils eine Ebene zurückgehen. In 'Dieser Computer' wählen wir mit 'Strg'+Linksklick die folgende 9 Dateien aus :
Mit einem Rechtsklick auf eine der gewählten Dateien können wir dann mit 'Upload nach /' alle 9 gleichzeitig hochladen.
Für die Datei 'boot.py' wird dabei rückgefragt, ob sie überschrieben werden soll, was wir bestätigen.
Damit sind die benötigten Dateien auf dem ESP32.
Anpassen der WiFi Zugangsdaten
In der Datei 'wifi_config.py' auf dem ESP32 müssen nun die tatsächlich benötigten Daten eingetragen werden, mit denen sich der ESP32 im Heimnetzwerk anmelden kann.
Dazu doppelklicken wir auf diese Datei, wodurch sie vom ESP32 heruntergeladen wird und im oberen Fenster von Thonny - dem Editor - angezeigt wird:
Nach dem Eintragen der echten individuellen Werte für die Platzhalter zwischen den Hochkommas, speichern wir mit Klick auf das Icon 'Speichern (Ctrl+S)' oder über 'Datei', 'Speichern'
Wichtiger Hinweis : Die Software geht normal davon aus, dass der Heimnetz-Router als interner NTP Server agiert (bei vielen Routern einstellbar).
Wenn dies nicht möglich ist, muss die Datei 'boot.py' auf dem ESP32 geändert werden. Dazu muss der Wert für 'NTP_SERVER' in Zeile 16 auf zum Beispiel 'pool.ntp.org' geändert werden :
Bitte beachten !
Dadurch ist für die Zeitsynchronisation ein Internet-Zugriff notwendig und der ESP32 kann nicht mehr für den Internet-Zugriff gesperrt werden !
Die lokale Zeitsynchronisation (Router als interner NTP Server) ist aus Sicherheitsgründen die bessere Lösung.
Finale
Nun muss nur das Modul resetet werden und schon bootet der ESP32 als PiLogger mit dem Netznamen 'espressif'.
Der ESP32 meldet beim Starten mit Thonny im Debug-Fenster die IP-Adresse unter der er zu erreichen ist.
An einem beliebigen Gerät im Heimnetz kann nun in einem Browser als Adresse die IP mit dem Zusatz ':8080' eingeben.
Also zum Beispiel '192.168.178.53:8080'.
Viel Spaß und Erfolg !