Hallo, ich habe eine Frage zu einer generellen Vorgehensweise. Ich habe an einem mehreren ESP8266 einen taster und Leds angeschlossen. Diese sollen nun untereinander über das Internet kommunizieren, als der Taster von Gerät A soll die LED von Gerät B steuern und umgekehrt. Ich habe nun das für ein Gerät das über php und GET gemacht. wird eine bestimmte Adresse aufgerufen, wird von php in eine txt-Datei eine 1 geschrieben. Der ESP8266 lädt sich diese Datei zyklisch herunter und überprüft deren Inhalt. So funktioniert das momentan. Ich frage mich aber, wie man das geschickt macht, wenn nun mehrere Gerät noch dazukommen. Für jedes dann eine eigene Datei etc, oder wie? Wie wird das denn bei diesen ganzen cloudbasierten IoT Geräten gemacht? Hat da jemand Erfahrung?
Max .. schrieb: > einem mehreren Einer oder Mehrere? Max .. schrieb: > Ich frage mich > aber, wie man das geschickt macht, wenn nun mehrere Gerät noch > dazukommen. Sinnvollerweise über eine Datenbank oder ähnliches. Mit GET kannst du ja die passenden Werte eingeben und abfragen. Daten eintragen: index.php?geraet=ESP8266-1&led=1 (AN) index.php?geraet=ESP8266-1&led=0 (AUS) Daten abfragen: index.php?geraet=ESP8266-2&check=1 (Datenstand von led ausgeben)
und solche Dinge wie SSL nicht vergessen ;-)
Schau dir MQTT an. Ist mit den ESPs schnell angesprochen, entkoppelt das Ganze, gibt fertige Android Apps dafür, Anzeige-Webseite kann mit Mqtt-websocket echt Live-Daten anzeigen, ist mit openhab koppelbar, .... Und bei allen Vorteilen ist der Server noch so "klein", dass er Problemlos auf einem Router mitlaufen kann, wo PHP Overkill wäre.
Kann "Planlos" nur zustimmen: Der sinnvolle Weg, so etwas zu machen, ist per MQTT. Das ist bislang auch quasi DAS Standard-Protokoll für IoT, und wird unter Anderem auch von Amazon AWS IoT genutzt. Die Kombination aus Webserver, PHP-Skript und zyklischem Herunterladen erscheint naheliegend, wenn man noch keine Erfahrung mit MQTT hat, ist in meinen Augen aber bestenfalls als Notlösung zu betrachten. Denn in diesem Fall müssen ja soundsoviel Geräte alle paar Sekunden einen Request an den Server schicken, um etwaige Änderungen zu erfragen. Eine Push-Lösung per WebSockets o.Ä. wie bei MQTT, bei dem die ESP8266-Clients von selbst informiert werden, ist da einfach viel vorteilhafter: Der ganze Overhead von soundsoviel Clients die alle paar Sekunden HTTP-Requests absenden fällt weg, und die Clients werden sofort informiert, statt erst beim nächsten zyklischen HTTP-Request. Nachteil ist halt, dass man einen eigenen MQTT-Server (üblicherweise "Mosquitto" - https://mosquitto.org/) installieren und laufen lassen muss. Aber das geht eigentlich ganz schnell, für die ersten Schritte muss man so gut wie gar nix konfigurieren.
Max .. schrieb: > Ich habe an einem mehreren ESP8266 einen taster und Leds angeschlossen. > Diese sollen nun untereinander über das Internet kommunizieren, Aus meiner Sicht solltest du einen Rechner haben, der per https im Internet erreichbar ist. Auf diesem dann Passwort-geschützten Zugriff und eine REST-Api implementieren und so per JSON Kommandos übertragen und Schaltzustände abfragen. Der Server kann dann meinetwegen per MQTT deine IoT-Devices ansteuern, indem er die JSON-Befehle kurz in MQQT übersetzt. Falls du auch die Zustände deiner IoTs visualisieren möchtest, schau dir Ajax an. Damit kannst du innerhalb deiner Webseite die Schaltzustände aktualisieren, ohne jedes mal die ganze Webseite neu zu laden. Wenn du noch Daten aufzeichnen und Verläufe anzeigen willst, kannst du auf dem Server eine MySql Datenbank laufen lassen. Der Vorteil der JSON/REST-Api ist, dass diese Zugriffsmethode von der Kommandozeile, Smartphone und den meisten Programmiersprachen problemlos unterstützt wird. Auch die Datenaufzeichnung würde über diese Schnittstelle zugreifen. ...das wäre meines Wissens dann auch der professionelle Ansatz.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.