Forum: Mikrocontroller und Digitale Elektronik Vernetzung mehrerer ESP8266


von Michael R. (michael_r27)


Lesenswert?

Hallo!
Ich hab vor kurzem von dem Wunderwerk ESP8266 erfahren und möchte mir 
damit nun ein kleines "Smart Home Netzwerk" aufbauen in dem ich ca. 10 
ESP8266 Module über das ganze Haus und den Garten verteile. Diese 
besitzen alle mehrere Ein-/ Ausgänge und Messwerterfassungen. Nun möchte 
ich aber von aussen nicht einzeln auf die Geräte zugreifen, sondern eine 
einzige Seite haben auf der ich zentral alles sehen uns steuern kann. Im 
Internet gibt es ja mehrere Anbieter (z.B. ThingSpeak und Thinger.io) wo 
ich mir Dashboards anlegen kann bei den ich auf mehrere Devices 
zugreifen kann. Leider nur auf 3 Stück - ansonsten muss man zahlen.
Ich würde mir also gerne selbst eine "Internet of Things - Plattform" 
basteln. Ich habe dazu 2 Ansätze:

1) Ich verwende einen zusätzlichen ESP8266 mit dem ich von aussen 
kommuniziere (nur mit diesem). Auf diesem ESP wird eine Webseite 
angezeigt, die mittels iframe auf all die anderen ESP-Devices im Haus 
zugreift

2) Ich spendiere einen zusätzlichen PC. Hier läuft ein Programm, welches 
mittels HTTP Request PUT und GET auf die einzelnen Devices zugreift

Welche Möglichkeit haltet ihr für die bessere? Der ganze Aufbau sollte 
auch möglich stromsparend sein und auf jegliche Hardware, die nicht 
unbedingt benötigt wird, sollte verzichtet werden. Vielleicht gibt es ja 
noch viel bessere Ansätze bzw. Programmbeispiele oder Posts zu diesem 
Thema.

von Wolfgang (Gast)


Lesenswert?

Michael R. schrieb:
> Der ganze Aufbau sollte auch möglich stromsparend sein ...
Dann ist Wi-Fi und ggf. zusätzlicher PC definitiv der falsche Weg.

von Michael R. (michael_r27)


Lesenswert?

Ich habe in anderen Foren gelesen, daß sich mit Hilfe der DeepSleep 
Funktion des ESP8266 mühelos Batterielaufzeiten von über einem Jahr 
realisieren lassen, wenn der uC nur relativ selten zum Senden aufgeweckt 
wird. Was ist aber, wenn ich das Device auch zum Schalten von Lasten 
verwenden will und der ESP praktisch ständig im "Listen-Modus" auf TCP 
Port 80 ist? Kann ich diesen dann eigentlich gar nie in Sleep-Modus 
schalten?

von Michael R. (michael_r27)


Lesenswert?

Mal abgesehen von der "Stromsparfunktion" - welche Lösung wäre wohl die 
schnellste und flexibelste umzusetzen?
Oder würdet ihr das komplett anders angehen?

von Jonas G. (jstjst)


Lesenswert?

Ich würde wahrscheinlich in Richtung raspberry pi als zentralen Server 
gehen.

Gruß Jonas

von Michael R. (michael_r27)


Lesenswert?

Und dann den Raspberry Pi als Webserver aufsetzen und mittels iframes 
auf die einzelnen Devices zugreifen?
Wie mache ich es, wenn ich zusätzlich auf externe Quellen im Internet 
z.B. über XPath zugreifen will? Kennst du irgendwelche 
Programmierbeispiele dazu? Geht sowas überhaupt über einen Webserver, 
oder können HTTP Request Anfragen nur z.B. über ein C-Programm gemacht 
werden?

von Oliver S. (phetty)


Lesenswert?

Espeasy. Wenn du nicht selber programmieren möchtest.
Wenn Du eine Last schalten möchtest hast Du auch Strom in der Nähe und 
kannst ein Netzteil verwenden.

von Michael R. (michael_r27)


Lesenswert?

Super, danke dir! Hört sich echt interessant an. Ich habe gerade nur 
grob über das Projekt drüber geschaut. Ich denke aber mal, daß ich damit 
alles erschlagen kann. Ich versuche es mal..

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Michael R. schrieb:
> Und dann den Raspberry Pi als Webserver aufsetzen und mittels iframes
> auf die einzelnen Devices zugreifen?

Nein. Die einzelnen Devices sind keine Webserver; nur der Pi ist ein 
Webserver. Die Devices übertragen nach einem von Dir auszudenkenden 
Protokoll gelegentlich ihre Daten an den Pi, der sie solange aufhebt, 
bis neue Daten eintrudeln. Angezeigt wird das, was der Pi gespeichert 
hat.

Bei Schalthandlungen muss, damit die Devices stromsparend bleiben, auf 
deren nächsten Aktualisierungszyklus gewartet werden. Die zu sendenden 
Daten werden erst dann vom Pi an das jeweils gerade "wache" Device 
übertragen.

Je nachdem, was Du da mit welcher Hektik betreiben willst, musst Du 
diese Aktualisierungzyklen entsprechend anpassen. Bei einer 
Heizungssteuerung genügt ein Zyklus im Minutenbereich, denn eine Heizung 
ist extrem träge.


Deine iFrame-Idee würde erfordern, daß zur Anzeige Deiner Webseite die 
Devices ständig aktiv sind, was die Stromsparidee konterkariert.

von Michael R. (michael_r27)


Lesenswert?

Wie kann ich aber am Besten Daten zwischen dem Pi und den einzelnen 
Devices austauschen? Vielleicht eine blöde Frage, aber ich bin neu in 
dem Thema. Mach ich dies am Besten über HTTP Request PUT und GET?

von Michael U. (amiga)


Lesenswert?

Hallo,

auch mal in Richtung MQTT schauen, RasPi als MQTT-Broker und zentraler 
Webserver.
Kommt darauf an, wieviel Du selbst machen willst.
Meine ESP haben außer dem MQTT-Client auch fast alle einen Webserver 
drauf, so daß ich die im Notfall auch direkt erreichen kann.
Dazu noch ein FallBack auf Access-Point-Mode, wenn sie nicht ins 
zentrale WLAN verbinden können.
OTA-Update auch anschauen, man will ja wegen einer Änderung nicht erst 
den Lichtschalter zum PC tragen.

Das ist mit den ESP machbar, auch stabil, wirklich fertiges mit allen 
diesen Funktionen habe ich aber wenig gefunden.
Bei mir ist es noch Experimentierphase, aber schon seit ca. 6 Wochen 
stabil.
Mit den Sleep-Geschichten ist ein Bekannter gerade am Testen, mal 
schauen, wie die realen Reaktionszeiten sind, z.B. Bewegungsmelder wecht 
den ESP usw.
Das Licht soll ja nicht erst angehen, wenn man schon wieder aus dem Flur 
rausgeht...

Gruß aus Berlin
Michael

von Kolja (Gast)


Lesenswert?

Wenn du die Arduino IDE zum flashen benutzt,
gibt es unter den Beispielen ein Mash Sketch.
Damit könntest du alle ESPs zum untereinander kommunizieren bekommen.
Der "Server" also dein PC oder ein RasPi, bekommt dann einfach auch ein 
ESP.

Gruß Kolja

von Michael R. (michael_r27)


Lesenswert?

Ok, danke. Ich seh schon - es gibt ganz unterschiedliche Möglichkeiten. 
Ich schau mir einfach mal alles an und geb euch wieder Bescheid..

von Jay (Gast)


Lesenswert?

Weil das Stichwort noch nicht fiel: Der zentrale Server speichert die 
empfangenen Daten in einer Datenbank.

Der Webserver zur Anzeige der Daten ließt die anzuzeigenden Daten aus 
der Datenbank. Der Webserver redet nicht direkt mit den Sensoren.

von Pi (Gast)


Lesenswert?

Schon mal von den jeenode gehört?
http://jeelabs.net/projects/hardware/wiki/JeeNode
Hier gibt es eine Vielzahl an Messwertaufnehmern, Schaltern usw...
In Openhab lässt sich alles einbinden.

http://www.openhab.org/
Das ganze läuft auf dem pi.

von Thomas Z. (thomas_z41)


Lesenswert?

Michael R. schrieb:
> Ich habe in anderen Foren gelesen, daß sich mit Hilfe der DeepSleep
> Funktion des ESP8266 mühelos Batterielaufzeiten von über einem Jahr
> realisieren lassen, wenn der uC nur relativ selten zum Senden aufgeweckt
> wird. Was ist aber, wenn ich das Device auch zum Schalten von Lasten
> verwenden will und der ESP praktisch ständig im "Listen-Modus" auf TCP
> Port 80 ist? Kann ich diesen dann eigentlich gar nie in Sleep-Modus
> schalten?

Ich habe dazu hier: Beitrag "Re: Temp. Messung im Haus?" 
mal meine Messergebnisse gepostet.
Ich konnte mit einem ca. 2000mAh Akku ca. 10000 Messwerte, über einen 
Zeitraum von einem Monat, übertragen.
Das geht aber natürlich nur wenn man den Deep Sleep Modus nutzt, sonst 
ist der Akku nach etwa 2 Tagen leer.

von Michael U. (amiga)


Lesenswert?

Hallo,

als Aktor muß der ESP natürlich ständig im WLAN sein.
Allerdings soll er dann ja meist was schalten o.ä., damit dürfte 
Stromversorgung machbar sein. Bleibt der Energieverbrauch.
Meine WLAN-Steckdose verbraucht ca. 1,3W Wirkleistung gegenüber ca. 0,7W 
der Originalen Funksteckdose. Mit normalen Bauteilen ist da nicht mehr 
allzuviel Spielraum nach unten.

Eben der Preis für den Komfort, man zahlt ihn oder läßt es...

Mit dem alten RFM12 und einem Tiny45 reicht eine CR2032 ein gutes halbes 
Jahr, um mir ca. alle Minute die Temperatur aus dem Gefrierfach des 
Kühlschranks zu schicken.

Gruß aus Berlin
Michael

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.