Webserver MicroPython Software.

Zurück

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)


Webserver main.py -1- Webserver main.py -2-


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.


Webserver GPIO Rlais1 Webserver GPIO Rlais2


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.


Webserver boot.py


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.



ESP32 Ordnerstruktur


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!



Zurück