Webserver MicroPython Software.
Zuerst führe ich hier externe Bibliotheken auf, die für das ESP32-PICO W-Relais-Webserver-Projekt
notwendig sind. An allen Entwicklern herzlichen Dank für diese hervorragenden libraries.
microdot, Framework für Python und MicroPython,
von Miguel Grinberg, Irland.
utemplate, Python-Generator für HTML, CSS und JavaScript,
von Paul Sokolowski.
Drei Python-Module sind für dieses Projekt notwendig.
Du willst wissen, wie hoch mein Anteil an dieser
Software ist? Ganz wenige Zeilen:
main.py (Zeile 12 bis 17)
relais_modul.py (Zeile 1 bis 32)
boot.py (nichts, alles vom Entwickler Miguel Grinberg)
Datei: main.py.
Das JavaSript Programm index.js sendet jedes Mal,
wenn der Anwender einen Mausklick auf einen der vier Schalter auslöst, eine Anfrage (request)
zum Server main.py (Zeile 12 bis 17).
Das Webserver Framework microdot
stellt hierfür eine Routing Funktion zur Verfügung (Zeile 13). Zwingend erforderlich ist eine
Return Anweisung in diesem Teil des Programms (Zeile 17) und macht damit den Mechanismus
request und response perfekt.
Uns muss klar sein, dass
im Hintergrund ein unglaublich komplexer Vorgang ausgelöst wird, jedoch wir hier nur wenige
Zeilen Kode schreiben müssen.
In Zeile 16 werden nun die Daten weitergeleitet und hierfür gibt es ein eigenes Modul! Warum?
Wir wollen ja Relais ansteuern und verlassen nun Python und verwenden das für Microkontroller
speziell vorgesehene Werkzeug MicroPython. Warum machen wir das? Den gesamte Webserver wollen
wir auf der PC-Ebene entwickeln mit mächtigen Debugger Werkzeugen, das stellt der Microkontroller
nicht zur Verfügung.
Datei: relais_modul.py.
Die Daten, die main.py uns zur Verfügung stellt sind vom Typ String. Ich habe mich für
das CSV-Format entschieden. Damit habe ich in anderen Projekten immer gute Erfahrungen
gemacht.
Hier nun ein Beispiel: Der erste Schiebeschalter sendet einen String
BT2;On; oder BT2;Off;. In den Zeilen 14 bis 23 wird dieser
String zerlegt in eine GPIO-Adresse (hier 2) und eine Information, ob der GPIO-Ausgang
ein- oder ausgeschaltet werden soll.
Datei: boot.py.
Zeile 4: (WLAN) Deine SSID (Service Set Identifier) eingeben!
Zeile 5: (WLAN) Dein Passwort eingeben!
boot.py sendet zur Konsole die vierstellige IP-Adresse, diese musst du dir kopieren
und in den Browser deiner Wahl eingeben.
Bei mir sieht das so aus:
http://192.168.8.115:5000.
Wobei 5000 die
Portadresse ist! Diese kann man ändern, indem du in der Datei main.py Zeile 31
Funktion run() eine andere Portadresse als Argument
übergibst.
Der Relais-Webserver wird sauber heruntergefahren mit dem Befehl:
http://192.168.8.115:5000/shutdown.
Das obige Bild zeigt die Speicherverwaltung des Microkontrollers ESP32 oder PICO W an.
Die Entwicklungsumgebung Thonny liefert so einen Explorer. Eine saubere Trennung
zwischen HTML, CSS, JavaScript und MicroPython Modulen! Ich liebe es! Nie wieder ohne Template!