Remotes Programmieren: OTA Ziel ist es über eine
Schnittstelle (WLAN/Internet) ein Programm vom PC auf den ESP32
hochzuladen. Hierfür wird "Over The Air programming" benötigt. OTA
kann über spezielle Pakete über die Arduino IDE Verwendet werden,
doch kann auch über einen Webserver auf den ESP32 zugegriffen werden
und über den separaten Updatespeicher anderer Code aufgespielt
werden. Da von überall auf den ESP32 zugegriffen werden sollte,
werden hier lediglich die möglichkeiten über eine das Internet erörtert.
Hierzu gibt es bereits eine beispielhafte Implemetierung im ESP32
Paket für die ArduinoIDE.
Abb.: Auswahl des gegebenen
OTAWebUpdaters Dieser Sketch liefert alles, womit
eine einfache Updatefunktion über den Browser gewählreistet ist.
Die einzige Eigenleistung bei diesem Programm ist das eintragen der
eigenen WLAN-Daten:
Abb.: Einziger Bereich in dem
etwas geändert werden soll
Dabei sollte die
Landing page dann folgendermaßen aussehen:
Abb.: Login Seite des Sketches
Wobei der Upload über folgende Seite Stattfindet:
Abb.: Einfaches Interface des
Sketches
Jedes Programm, dass hochladen werden
soll braucht nun ein OTA-Gerüst und muss dementsprechend angepasst
werden. Dazu gehört eine OTA-Setup-Methode um eine Verbindung zum
WLAN herzustellen. Anfangs muss das Programm über eine serielle
Schnittstelle hochgeladne werden. Anschließend muss beim Hochladen
darauf geachtet werden immer das OTA-Gerüst in seinem Programm zu
haben, da sonst die WLAN-Verbindung mithilfe von OTA verloren geht.
Diese Möglichkeit wäre die "einfachste", doch auch eine
unschönere Möglichkeit diese Funktionalität zu implemntieren, da
viel eigener code implementiert werden muss und dies zu einem großen
Sketch ührt Daher ergab sich nach etwas Recherche im Web die
Lösungsalternative mit
AsyncElegantOTA. Dies ist eine Bibliothek, die mit sehr
wenigen Veränderungen im Code eine Möglichkeit bietet, neue
.bin-Files hochzuladen und SPIFFS zu modifizieren.
Abb.: Schematische Darstellung der
Funktionsweise von WebOTA mit ElegantOTA
Die
einzige Modifikation am Code beträgt eine zeile Code, falls die
benötigten Bibliotheken bereits Installiert sind.
Abb.: GIF zur Visualisierung von
AsyncElegantOTA
Remotes Debugging
Der Zweite Teil der aufgabe besteht darin, die Möglichteit
zum Debugging über den seriellen Monitor zu implementieren. Für
diese Aufgabe wurden zwei Möglichkeiten herausgearbeitet:
RemoteDebug: Nach Absprache hat
diese Bibliothek eine andere Gruppe mit einem ähnlichen Projekt
diese Bibliothek erörtert. Deswegen wird hier auf RemoteDebug nicht
eingegangen. Link zum Projekt:
VEU-Entwicklung
und Updates Ventilator
WebSerial: WebSerial ist eine
Bibiolthek, die über einen asyncronen Webserver eine Webseite mit
einer Ausgabe hostet, die nicht die "normale" serielle Schnittstelle
ins Web spiegelt, sondern mit eigenen print Befefehlen eine eigene
ausgabe schafft. Daher werden Print-Befehle, welche vor der
Etablierung der Webseite geschrieben werden, nicht angezeigt. Die
Webseite ist mit einem Websocket kompatibel.
Es befinden sich Links zu den
vollständigen Dokumentationen im Abschnitt "Softwaredoku"
|