Hallo,
ich bin komplett neu im Bereich der App Entwicklung, was aber nicht bedeutet, dass ich gar keine Ahnung von Programmierung habe. Da die Tage wieder kürzer und die Temperaturen kälter werden, möchte ich mich einem neuen Projekt widmen: Swift programmieren lernen. Diesbezüglich arbeite ich die Tutorials von Paul Hudson durch (Hacking with Swift) und mache auch ganz gute Fortschritte.
In den vergangenen Jahren habe ich viele kleine Projekte mit dem ESP8266 umgesetzt. Ein Mikrocontroller mit WiFi und einigen GPIOs. Dieser ist im Heimnetz eingebunden und kommuniziert mit einem Raspberry Pi (Homebridge). Der Mikrocontroller lässt sich schließlich über Apples Home App steuern. Die Kommunikation zwischen Raspberry und ESP8266 erfolgt relativ simpel via URLrequest.
Ich würde gerne etwas ähnliches realisieren, allerdings ohne Raspberry als Server. Die Kommunikation soll ausschließlich zwischen dem ESP8266 und meiner eigenen IOS App erfolgen. Dabei sollte der ESP8266 so energiesparend wie möglich arbeiten, da er zukünftig in eine Batterie angeschlossen wird. Nun mache ich mir Gedanken, wie die Kommunikation zwischen beiden Endgeräten ablaufen könnte.
Mein erster Gedanke war ebenfalls auf URLrequest zu setzen. Dafür müsste die App aber permanent auf den ESP8266 zugreifen (vermutlich über einen Loop der im Hintergrund läuft um die App nicht zu blockieren) und den Status diverser Sensoren abfragen, um Zustandsänderungen unverzüglich übermittelt zu bekommen. Diese sollen ja nicht nur beim Aufrufen der App aktualisiert werden. Ich denke das wäre alles andere als Energiesparend. In meiner eingebildeten Theorie dachte ich mir, dass das Smartphone bzw. die App auch als HTTP Server fungieren und Zustandsänderungen erfassen könnte. Somit würde nur Traffic entstehen, sobald sich am ESP8266 etwas ändert und dieser den neuen Wert ans Smartphone sendet. Aber ob das so funktioniert, keine Ahnung... War nur eine Idee.
Theoretisch würde ich auf MQTT setzen. Das habe ich bereits ausprobiert und war in Kombination mit Smartphone und einem Rapsberry Pi als MQTT Broker (mosquitto) erfolgreich. Soweit ich weis gibt es sogar ein MQTT library für den ESP8266 um diesen als Broker laufen zu lassen.. zu einem späteren Entwicklungsstand würde ich den ESP8266 aber durch einen ESP32-S2 (sobald verfügbar) ersetzen, für den es dann wiederum keine Library gibt um ihn als Broker laufen zu lassen. Eine eigenen Library zu schreiben und zu implementieren fällt an dieser Stelle aufgrund mangelnder Fachkenntnisse aus.
Nur frage ich mich: Was gibt es noch für Möglichkeiten? Wie würdet Ihr die "Echtzeit" - Kommunikation zwischen App und Mikrocontroller realisieren?
Viele Grüße
ich bin komplett neu im Bereich der App Entwicklung, was aber nicht bedeutet, dass ich gar keine Ahnung von Programmierung habe. Da die Tage wieder kürzer und die Temperaturen kälter werden, möchte ich mich einem neuen Projekt widmen: Swift programmieren lernen. Diesbezüglich arbeite ich die Tutorials von Paul Hudson durch (Hacking with Swift) und mache auch ganz gute Fortschritte.
In den vergangenen Jahren habe ich viele kleine Projekte mit dem ESP8266 umgesetzt. Ein Mikrocontroller mit WiFi und einigen GPIOs. Dieser ist im Heimnetz eingebunden und kommuniziert mit einem Raspberry Pi (Homebridge). Der Mikrocontroller lässt sich schließlich über Apples Home App steuern. Die Kommunikation zwischen Raspberry und ESP8266 erfolgt relativ simpel via URLrequest.
Ich würde gerne etwas ähnliches realisieren, allerdings ohne Raspberry als Server. Die Kommunikation soll ausschließlich zwischen dem ESP8266 und meiner eigenen IOS App erfolgen. Dabei sollte der ESP8266 so energiesparend wie möglich arbeiten, da er zukünftig in eine Batterie angeschlossen wird. Nun mache ich mir Gedanken, wie die Kommunikation zwischen beiden Endgeräten ablaufen könnte.
Mein erster Gedanke war ebenfalls auf URLrequest zu setzen. Dafür müsste die App aber permanent auf den ESP8266 zugreifen (vermutlich über einen Loop der im Hintergrund läuft um die App nicht zu blockieren) und den Status diverser Sensoren abfragen, um Zustandsänderungen unverzüglich übermittelt zu bekommen. Diese sollen ja nicht nur beim Aufrufen der App aktualisiert werden. Ich denke das wäre alles andere als Energiesparend. In meiner eingebildeten Theorie dachte ich mir, dass das Smartphone bzw. die App auch als HTTP Server fungieren und Zustandsänderungen erfassen könnte. Somit würde nur Traffic entstehen, sobald sich am ESP8266 etwas ändert und dieser den neuen Wert ans Smartphone sendet. Aber ob das so funktioniert, keine Ahnung... War nur eine Idee.
Theoretisch würde ich auf MQTT setzen. Das habe ich bereits ausprobiert und war in Kombination mit Smartphone und einem Rapsberry Pi als MQTT Broker (mosquitto) erfolgreich. Soweit ich weis gibt es sogar ein MQTT library für den ESP8266 um diesen als Broker laufen zu lassen.. zu einem späteren Entwicklungsstand würde ich den ESP8266 aber durch einen ESP32-S2 (sobald verfügbar) ersetzen, für den es dann wiederum keine Library gibt um ihn als Broker laufen zu lassen. Eine eigenen Library zu schreiben und zu implementieren fällt an dieser Stelle aufgrund mangelnder Fachkenntnisse aus.
Nur frage ich mich: Was gibt es noch für Möglichkeiten? Wie würdet Ihr die "Echtzeit" - Kommunikation zwischen App und Mikrocontroller realisieren?
Viele Grüße