meta data for this page
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
gadget_entwicklung [2021/06/13 13:44] – [Kontakt mit einem WLAN aufnehmen] tom | gadget_entwicklung [2025/04/17 05:39] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 7: | Zeile 7: | ||
Die Bedienbarkeit über Mobilgerät (Tablet, Handy, Android oder iOS, PC) erfordert eigentlich zwangsläufig eine Browserlösung mit Javascript. Das hat zwar ein paar hässliche Implikationen, | Die Bedienbarkeit über Mobilgerät (Tablet, Handy, Android oder iOS, PC) erfordert eigentlich zwangsläufig eine Browserlösung mit Javascript. Das hat zwar ein paar hässliche Implikationen, | ||
- | Von der Hardware Seite war gefordert: Robustes Gehäuse, integrierte Stromversorgung, | + | Von der Hardware Seite war gefordert: Robustes Gehäuse, integrierte Stromversorgung, |
===== Hardwarekonzept ===== | ===== Hardwarekonzept ===== | ||
Zeile 39: | Zeile 39: | ||
Die Kommunikation erfolgt auf zwei Ebenen. Zum einen steht ein WebServer bereit, der statische Seiten serviert. Die Ursprungsidee war, dort nur die Konfiguration abzuhandeln und die eigentlichen LED-Programme lokal auf den Clients zu speichern. Das funktioniert auch prima mit dem FireFox auf dem Desktop, aber so gar nicht mit mobilen Clients unter Android (Safari unter iOS habe ich dann gar nicht mehr probiert...). Dort sind die Browserhersteller der Meinung, lokale Dateien sind viel gefährlicher als Web-Seiten, deswegen muss das unbedingt verboten sein. Kann man sich gar nicht ausdenken, so was. | Die Kommunikation erfolgt auf zwei Ebenen. Zum einen steht ein WebServer bereit, der statische Seiten serviert. Die Ursprungsidee war, dort nur die Konfiguration abzuhandeln und die eigentlichen LED-Programme lokal auf den Clients zu speichern. Das funktioniert auch prima mit dem FireFox auf dem Desktop, aber so gar nicht mit mobilen Clients unter Android (Safari unter iOS habe ich dann gar nicht mehr probiert...). Dort sind die Browserhersteller der Meinung, lokale Dateien sind viel gefährlicher als Web-Seiten, deswegen muss das unbedingt verboten sein. Kann man sich gar nicht ausdenken, so was. | ||
- | Also braucht man entweder einen externen Web-Server oder die Seiten müssen auf den ESP. Wenn man als AP einen RasPi 4 nimmt, kann man auch noch gleich einen nginx oder lighttpd draufsetzen und gut. Das verkompliziert aber den Aufbau, also kommen die Seiten auf die Micros. | + | Also braucht man entweder einen externen Web-Server oder die Seiten müssen auf den ESP. Wenn man als AP einen RasPi 4 nimmt, kann man auch noch gleich einen nginx oder lighttpd draufsetzen und gut. Das verkompliziert aber den Aufbau, also kommen die Seiten auf die Micros. |
- | Es gibt ein paar spezielle Seiten. Unter der Adresse " | + | Der Web-Server liefert HTML, Javascript und ein bischen CSS aus. Für die Kommunikation baut der Client eine Web-Socket Verbindung zu den ESPs auf, über die er Kommandos schicken kann. |
+ | Das einfachste Kommando ist " | ||
- | * Async WebServer | + | Die weiteren Kommandos von Clientseite sind: |
- | * Start mit AP& | + | * setX, wobei X zwischen 0 und 2 liegt: Schaltet Farbe X an (Rot, Grün, Blau) |
- | * Wenn in WLAN, Stop AP | + | * SETxyz: x, y, z jeweils 0 oder 1: Setzt den Zustand Rot auf x, Grün auf y, Blau auf z. |
- | * Ansonsten bleibt AP 20 Minuten aktiv, dann Schlaf | + | |
- | * in AP: http:// | + | |
- | + | ||
- | Web-Sockets, | + | |
+ | Als Antwort schickt der Micro jeweils den neuen Zustand, Zeit und Toucheingang zurück. | ||
===== Software auf dem Browser ===== | ===== Software auf dem Browser ===== | ||
Es braucht nicht viel, ein Browser, der JavaScript kann. Getestet habe ich mit dem Firefox unter Linux und Windows, Safari unter iOS, sowie Fennec und Bromite unter Android. Etwas nervig ist die Angewohnheit moderner Browser, '' | Es braucht nicht viel, ein Browser, der JavaScript kann. Getestet habe ich mit dem Firefox unter Linux und Windows, Safari unter iOS, sowie Fennec und Bromite unter Android. Etwas nervig ist die Angewohnheit moderner Browser, '' | ||
+ | |||
+ | Bislang gibt es drei Seiten, die man tatsächlich im Training gebrauchen kann: | ||
+ | |||
+ | demo01.html: | ||
+ | |||
+ | demo02.html: | ||
+ | |||
+ | demo03.html: | ||
===== Anwendung in der Praxis ===== | ===== Anwendung in der Praxis ===== |