Forum: Mikrocontroller und Digitale Elektronik ESP8266 mehrere clients auf einer webseite


von Uwe C. (Firma: privat) (olmuk)


Lesenswert?

Hallo,

ich suche mir den Wolf ( bitte keine Hinweise auf google.com )
für die Lösung meines Problemes.
Ich möchte gerne mehrere ESP8266 clients ( 3 Stck ) über eine
webseite steuern.
Die Steuerung eines clients funktioniert, aber ich scheitere
an der Zusammenführung mehrerer.
Ich glaube der Ansatz ist 1x AP und dann 3x clients ( alles ESP8266 ).

Aber wie leite ich die Ansteuerung durch/über den AP??

Vielleicht kann mir jemand einen Tipp geben.

Gruss

Uwe

von Cyblord -. (cyblord)


Lesenswert?

Eventuell liegt dein Problem im schieren Unwissen über einfachste 
Zusammenhänge der Netzwerk- und Internettechnik?
Und vielleicht(!) läge in dieser Erkenntnis auch ein Lösungsansatz.

Hat man eine Clientseitige Webseite, hat natürlich jeder Client seine 
eigene Webseite mit der er gesteuert wird. Der "Client" ist in diesem 
Fall allerdings (Web)Server.

Will man eine zentrale Steuerung über EINEN Webserver muss man komplett 
anders vorgehen.

von Ludwig (Gast)


Lesenswert?

> Ich möchte gerne mehrere ESP8266 clients ( 3 Stck ) über eine
> webseite steuern.

Dein Stichwort ist AJAX. Mittels AJAX kannst du die Daten zwischen 
deiner Webseite und den ESP8266 austauschen. Deine ESP fungieren dann 
allerdings als Server und deine Webseite(Browser) als Client.

von Hans W. (Gast)


Lesenswert?

Ludwig schrieb:
> Dein Stichwort ist AJAX

Im Jahr 2016 ist der elegantere Ansatz mit Websockets zu arbeiten.

von Cyblord -. (cyblord)


Lesenswert?

Hans W. schrieb:
> Ludwig schrieb:
>> Dein Stichwort ist AJAX
>
> Im Jahr 2016 ist der elegantere Ansatz mit Websockets zu arbeiten.

Das ist korrekt. Und bei AJAX hat man immer das Problem mit SOP. Lässt 
sich zwar umgehen, ist aber nicht so schön.

Aber alle Ansätze benötigen leider etwas fortgeschritteneres Grundwissen 
in verschiedenen Bereichen (Netzwerktechnik, Web-Entwicklung) die ich 
dem TE aufgrund seiner Fragestellung absprechen muss.
Darum sind erst mal sowieso alle Lösungsansätze utopisch. Außer jemand 
bietet ihm was fix und fertiges an.

von Uwe C. (Firma: privat) (olmuk)


Lesenswert?

Na so genau hatte ich mir die Tipps vorgestellt......

Statt Schlaumeiergedönse mal ne Richtung vorgeben.

Das ich am Anfang bin ist mir klar und versuche vielleicht
einen Wissenden sich herabzulassen mir einen Tipp zu geben.

@Ludwig : Danke

von Pete K. (pete77)


Lesenswert?

Deine ESP8266 bekommen eine eindeutige IP-Adresse von Deinem Router 
(Fritzbox?) per DHCP zugewiesen (wenn Du DHCP benutzt). Wenn Du die 
IP-Adresse im ESP8266 händisch einträgst, dann musst Du verschiedene 
Adressen vergeben.

Die Webseite muss dann nur noch dafür sorgen, dass nicht nur eine 
IP-Adresse angesprochen wird, sondern Du den jeweiligen ESP mit seiner 
IP-Adresse auswählen kannst.

Da Du ja geschrieben hast, dass es mit einem ESP funktioniert, musst Du 
nur dafür sorgen, dass Du auf der Webseite eine Möglichkeit einrichtest, 
verschiedene IP-Adresse anzusprechen.

von Pete K. (pete77)


Lesenswert?

Für gezieltere Hilfe brauchen wir mehr Informationen.

von Klaus (Gast)


Lesenswert?

Hans W. schrieb:
> Im Jahr 2016 ist der elegantere Ansatz mit Websockets zu arbeiten.

Modern und elegant ist immer gut. Hast du mal grad für so einen 
Simplewebserver auf dem ESP eine Websocket Implemation parat? AJAX kann 
ich mit den Mitteln machen, die ich auch für http "GET" brauche. Und für 
die paar Byte, die man so mit dem ESP austauscht, tuts auch AJAX. Ist 
viel schneller (fertig).

MfG Klaus

von Uwe C. (Firma: privat) (olmuk)


Angehängte Dateien:

Lesenswert?

Ich habe mich wahrscheinlich falsch ausgedrückt.
Der ESP8266 läuft mit der zugewiesenen DHCP Adresse.
Nun möchte ich aber gerne mehrer einbinden und nicht jedesmal
eine andere Webseite aufrufen.
Was der Onkel Goggle ausspuckte war einen ESP als AP zu nutzen
und die anderen als client.

Da muss ich dem Schlaumeier leider recht geben das hier ein
gefährliche Halbwissen und bei HTML gar nix vorliegt.

Das ist der mit der Arduino IDE 1.6.12 laufende Code :

von Dauergast (Gast)


Lesenswert?

Uwe C. schrieb:
> bei HTML gar nix

http://www.w3schools.com/tags/tag_iframe.asp

Beispiel:

<iframe src="http://esp1.local"></iframe>;
<iframe src="http://esp2.local"></iframe>;
<iframe src="http://esp3.local"></iframe>;

Die drei Zeilen kannst Du einfach als c:\temp\x.html speichern und vom 
Browser aufrufen (brauchst also keinen Webserver). Das ist zwar weder 
elegant noch rocket technologie, funktioniert aber schon mal ohne 
Aufwand (Du kannst die Seite natürlich später auf alle ESPs flashen).

Wenn's dann schicker werden soll, helfen Dir

https://de.wikipedia.org/wiki/Ajax_(Programmierung)
https://de.wikipedia.org/wiki/Cross-Origin_Resource_Sharing

weiter.

Websockets sind zwar schick, aber für diese Anwendung und auf diesen 
Devices unnötig kompliziert, und vor allem findest Du um Größenordnungen 
weniger Beispiele.

von Joachim S. (oyo)


Lesenswert?

Verstehe ich Dich richtig?
Du möchtest mehrere ESP8266 steuern.
Bei Deinem derzeitigen Ansatz müsstest Du dafür aber auf jeden ESP8266 
einzeln zugreifen, also z.B.
http://<IP-Adresse des ersten ESP8266>/
im Webbrowser eintippen und dann auf irgendeinen Button drücken, dann
http://<IP-Adresse des zweiten ESP8266>/
im Webbrowser eintippen und dann auf irgendeinen Button drücken, dann
http://<IP-Adresse des dritten ESP8266>/
im Webbrowser eintippen und dann auf irgendeinen Button drücken.
Das ist Dir aber zu umständlich, daher würdest Du stattdessen gerne alle 
drei ESP8266 über eine einzige zentrale Anlaufstelle steuern.
Soweit richtig verstanden?

Falls ja: Diese Frage wird sinngemäss in den letzten Wochen häufiger 
gefragt, habe ich das Gefühl. Die sinnvollste (auf manchen aber auch 
etwas abschreckend wirkende) Lösung dafür ist, die ESP8266s nicht direkt 
über HTTP/HTML zu steuern, sondern über das MQTT-Protokoll. Dafür muss 
man allerdings einen MQTT-Broker/Server installieren, üblicherweise 
"mosquitto".
Die ESP8266 können bei diesem Ansatz natürlich trotzdem über HTTP/HTML 
gesteuert werden, z.B. über eine zentrale Webseite.

von Uwe C. (Firma: privat) (olmuk)


Lesenswert?

Jubel !!!
Der Joachim hat es verstanden - genau das ist das Problem.

Leider und da zähle ich mich auf jeden Fall dazu ( bin bei
der SPS zuhause ) stürzt man sich auf so ein tolles Teil wie
den ESP 8266 und hat schnellen Erfolg.

Und dann ist Schluss mit Codeschnispseln und probieren !

Und C / C++, HTML, VB etc. auf einmal ist dann wohl zuviel
und erzeugt halbseidene Lösungen.

Ich muss mich wohl noch viel einlesen und werde weiter berichten.

An alle die noch einen Ansatz haben ( im Thread von Joachim ist es
am besten erklärt )

von Stefan F. (Gast)


Lesenswert?

Dann benutze Javascript, um mit den drei Zielen zu kommunizieren. AJAX 
war da schon das richtige Stichwort. Wikipedia hat sogar ein brauchbares 
minimales Beispiel.

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.