Last Updated on 14. April 2024 by sfambach
Bei Projekte die nicht am seriellen Port hängen können ist die Fehleranalyse manchmal hardnäckick. Um so schöner dass es Projekte wie die WEB-Serial Biliothek gibt die es ermöglichen einfach eine Website auf dem ESP zu öffnen um serielle Ausgaben dort zu zeigen.
Ich habe die freie version der Bibliothek ausporbiert. Es gibt auch noch eine Pro Version die ein paar zusätliche Funktionalitäten wie eine Scrollbar, Stop Knopf und einen Clear Knopf besitzt.
https://github.com/ayushsharma82/WebSerial
In den Code Geschaut
Der Code is recht überschaubar, es gibt eine WebSerialClass und eine Website die mittels gzip komprimiert und als Array hinterlegt ist. Würde man die Seite decodieren, wäre viel Java Script zu sehen und wenig HTML.
Programmierung
Bibliotheken
Beispiel Programm
Ein Beispielprogramm wird auch hier mitgeliefert.
Meine Version des Programms ist unter folgenden Link zu finden wobei zum grösten Teil dem Beispielprogramm des Bibliotheksentwicklers entspricht.
https://github.com/sfambach/esp32/tree/master/src/WebSerial
So sieht es aus
Wie man sieht nimmt der freie Speicher ab 😉
Sonstiges
Es gibt ein ganz ähnliches Projekt, die Oberflächen sehen recht gleich aus. Allerdings entschuldigt sich der Entwickler, dass es sich hierbei schon um die Proversion handelt ;).
https://github.com/asjdf/WebSerialLite
Fazit
Dei Bibliothek ist einfach installiert und eingebunden und kann bei der Fehlersuche ohne serielle Verbindung sehr hilfreich sein. Ob die Pro Version die Investition von rund 60$ wert ist, muss jeder für sich entscheiden. Bei 20$ hätte ich wahrscheinlich garnicht viel drüber nachgedacht, 60$ finde ich für Hobbyprojekte etwas viel. Es gibt weitere Anbieter solcher Bibliotheken, jeder sollte für sich entscheiden ob ihn diese unter Sonstiges gezeigte Grauzone es wert ist.
Für mich war es der Einstieg in dynamische Webseiten. Ich wollte die Funktionalität analysieren, dies wurde etwas erschwert durch die gzip array variante der Website. Hat man diese Hyrde genommen zeichnet sich der Code durch unnötig komplexe JavaScript-Magie aus somit war dieses Beispiel nicht sehr hilfreich für mich und ich werde nach anderen Ausschau halten.