Hallo keeev,
das ist eine gute Frage. Ich habe diesen Webserver noch auf meinem alten Mäher im Einsatz. Da ich aber Allrad-Antrieb habe, wurde das ursprüngliche Azurit von mir merklich verändert. Nicht desto trotz sollte der Webserver „alle“ Versionen abdecken, also die CPUs Mega, Due und Teensy. Das war damals der Anspruch, mit einer Version nur durch Auswahl von Items vorm compilieren zurecht zu kommen. Ob das jetzt Azurit1.0a10 war kann ich nicht sagen.
Man muß wissen, das der ursprüngliche Webserver den ich nur weiter angepaßt habe mit einer Android-App zusammen lief. Da ich nur iOS-Geräte benutze, habe ich selbst die App nie gesehen. Der Webserver bietet deßhalb die Möglichkeit von jedem Browser aus die Seiten aufzurufen, parallel zur App oder auch ohne sie. Ich konnte logischer Weise nur die Webserver-Funktionen testen.
Bei dieser Webserver-Variante werden die benötigten Daten über die Webseite angefordert und der esp32 leitet die Anfrage an Azurit weiter. Azurit antwortet auf die Anfrage und sendet die benötigten Daten.
Daher würde ich dir empfehlen, es einmal auszuprobieren.
Ich habe für meine aktuellen Mäher einen neuen Webserver geschrieben. Er sollte eigentlich etwas schneller und zuverlässiger funktionieren als der alte. Hier ist das Funktionsprinzip anders. Die CPU, bei mir ein Teensy sendet wichtige/relevante Daten an den esp32, egal ob die jetzt benötigt werden oder nicht. Im Prinzip kann man das so gestalten, daß nur bei einer Änderung überhaupt Daten gesendet werden. Im esp32 liegen alle Daten aktualisiert vor und werden bei Bedarf an die Webseite gesendet. Umgekehrt sendet die Webseite eine Änderungen der Daten an den esp32 und dieser an die CPU. Diese erkennt das daran, daß ihr signalisiert wird, daß es eine Datenänderung gegeben hat. Damit beschränkt sich der Datenaustausch nur auf Datenänderung.
Was auch anders ist, ist die Bezeichnung der Daten. Hier werden keine Schlüssel mehr verwendet sondern verständliche Bezeichnungen.
Ich habe es so umgesetzt, daß die Daten-Bezeichner identisch sind im esp32-Webserver-Programm und in meinem Teensy-Programm. Außerdem habe ich eine Tabelle aufgesetzt mit der der Code für die Initialisierung erzeugt wird, damit man nicht so viel tippen muß. Du kannst dir das gerne anschauen, es liegt hier:
Hallo Ritter und Vasallen,
gerne möchte ich Euch Einblick in meinen neuen asynchronen Web-Server auf esp32 Basis geben.
Folgende Eckpunkte habe ich berücksichtigt:
- PCB (Teensy) sendet Daten nur bei Änderung an Web-Server (esp32)
- Web-Server sendet Daten nur bei Änderung an PCB
- Web-Server hält aktuelle Daten im Speicher vor und aktualisiert Web-Seite nach Bedarf
- esp32 sendet/empfängt nur 1 Datum/Datensatz an/von Webseite, aber sendet/empfängt nach jedem Datentransfer
- einfache Gestaltung der Web-Seiten - keine individuelle Beschriftung (ist aber möglich)
- PCB sendet/empfängt nur...
Gruß
Fürst Ruprecht