Prof. J. Walter - Informationstechnik, Mikrocomputertechnik, Digitale Medien Konzeptentwicklung
Informationstechnik
Remote Entwicklung beim eMalRob
Sommersemester 2021
weel1017@h-ka.de
--

Konzeptentwicklung

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.
gsgdrsgd
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:
Quelle:https://i1.wp.com/randomnerdtutorials.com/wp-content/uploads/2018/11/esp32-login-page.jpg?w=667&quality=100&strip=all&ssl=1
Abb.: Login Seite des Sketches

Wobei der Upload über folgende Seite Stattfindet:


Abb.: Einfaches Interface des Sketches
Quelle: https://i2.wp.com/randomnerdtutorials.com/wp-content/uploads/2018/11/serverindex.jpg?w=621&quality=100&strip=all&ssl=1
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"



  Mit Unterstützung von Prof. J. Walter Sommersemester 2021