LED WS2812b - Controller ESP8266 - Verbessern (Fragen)

Hallo,

Ich plan aktuell meine Lichtsystem (WS2812b + LED RGB#5050) zuverbessern bzw. die Handhabung zu vereinfache. Folgende Komponenten habe ich

  • 5x Wemos D1 Mini ESP8266
  • 5m WS2812b (Aufgeteilt auf 1m/60LEDs)
  • 10m RGB#5050 (2x 5m)
  • 3x Smart Touch Switch Wireless (marke unbekannt)
  • Power 1: 2x Meanwell 5v 12a
  • Power 2: 1x MeanWell 12v 10a

Mein Aufbau Aktuell:

doch ich würde gern noch 2 Weitere 1m WS2812b verbauen, doch hier müsste ich dann ein 3ten Wemos nutzen der auch wieder umständlich angesteuert werden. das heißt mein Raum (L Förmig) hat 3 Bereiche Wohn, PC und Arbeitsbereich. Wohn und PC werden bereits "Smart" beleuchtet.

Aktuell funktioniert es so:

Mein Ziel wäre es alles über einen Controller bzw. Wemos laufen zulassen. Meine Idee:

1 Wemos als Empfänger der Befehle
1 Wemos als Übermittler für die Befehle an die anderen Wemos/Controller

Sprich Wemos "LightMain" bekommt die Befehle, diese werden an dem Wemos (Name: LightSpot) dieser ist verbunden mit den 3 Anderen Wemos: LightWemosOne, LightWemosTwo und LightWemosThree

Ablaufen soll es dann:

Handy -> Befehl http://LightMain/one/on -> Wemos "LightSpot" erkennt das er LightWemosOne auf On schalten soll. das selbe mit je falls den anderen http://LightMain/two/... usw. (später wird nur für An/aus noch Smart Touch Switch Wireless kommen.)

Meine Logik wäre bzw. so würde ich es versuchen

Wemos Name: LightMain verbindet sich mit dem Router Dieser ist Verbunden mit Wemos "LightSpot"
dieser ist wieder rum mit den anderen drei Verbunden.

Einfacher:
Router <> Wemos[LightMain] ---(kabel)--- Wemos[LightSpot] <> Wemos[LightWemosOne/Two/Three]

So, nun zu den Fragen:

  • Die frage ist wie kann ich das am besten umsetzten?
  • Ist meine ansatzweise wie ich das umsetzten möchte soweit richtig?
  • Gibt es ein Sketch der, derartiges als Grundbasis hat?
  • Was sollte ich anderes machen?

Ich bedanke mich fürs Lesen :slight_smile:

mfg
Odin

Nach etwas suchen hab ich herausgefundenen das ich einen Wemos als AP(access point) einrichten muss, das hat soweit Funktioniert, ich kann auch darauf zugreifen per WLan, aber ab hier häng ich noch fest und weiß nicht direkt wie ich Weiter Vorgehen soll.

Mein Plan ist immer noch wie folgt:

  • Wemos [LightMain] Verbindet sich mit dem Router
  • [LightMain] is/Soll per Kabel Befehle an Wemos [LightAP] übermittel (beispiel http://192.168.../one/on)
  • [LightAP] übermittelt die über [LightMain] einkommende Befehle an [LightWemosOne] die durch den Befehle die LEDS einschalten.

Das musst Du nur, wenn er ein eigenes WLAN aufspannen soll.
Wenn er im lokalen WLAN laufen soll, dann musst Du das nicht.

Deine Beschreibung ist etwas sehr schwammig.
Z.B. Wie willst Du vom "MasterESP" auf die anderen ESP zugreifen? Über Wlan, über I2C, über SPI oder Seriell (wohl eher nicht).
Wenn Du Da etwas genauer wirst, könnte es auch zielführende Antworten geben.

Ich würde WLAN nutzen, weil das schon da ist.

Gruß Tommy

Hallo,

so und was willst Du jetzt wissen?

ich bin im Moment an so einer ähnlichen Planung, Ich habe folgendes vor:

Ein Wemos ist im Heimnetzt und stellt einen Webserver mit mehreren, derzeit 4 htlm Seiten als Menue-Struktur mittels dem Filesystem zur Verfügung. Gleichzeitig läuft er als AP und baut eine "Sensornetzt" nach unten auf. Mehrere Client´s z.B für Messung BM280, Aussen-Beleuchtung, LED WS2812B Lampe mit mehreren Parametern, hängen and dem Sensornetz . Die Kommunikation auf der Ebene soll mittels UDP laufen.

Das Konzept dazu steht. Der Server ist eigendlich fertig. Die erste Test LED hab ich mit dem Handy über den Webserver und dann weiter über UDP auf einem ESP-01 ein/aus geschaltet. Ein zweiter ESP hat zyklisch seine Versorgunsspannung gesendet. Also im Prinzip geht rauf und runter, jetzt gehts dann, je nach Lust und Laune Schritt für Schritt an die Feinplanung.

Heinz

@Tommy56:
Da ich noch recht neu in dem bereich bin sagt mir I2C, SPI oder Seriell so nichts.

Ich fasse nochmal zusammen was genau ich vorhaben bzw. wie meine gedanken sind:

Sprich würde ich folgendes am Handy per Browser oder PC eingeben:
http://[IP von LightController]/one/rainbow?s=100&b=255

Würde folgendes passieren bzw. soll

  • Wemos[LightController] übermittelt über PIN D4 kabel zu Wemos[LightAP] PIN D4
  • Wemos[LightAP] erkennt das mit one der Wemos[LightWemosOne] gemeint ist und übermittelt ihm per WLan den Befehl rainbow?s=100&b=255
  • (ab hier geht alles, nur das davor)
  • Wemos[LightWemosOne] bekommt per WLan den Befehl und Aktiviert den Mode Rainbow mit Speed 100 und Brightness 255 (100%)

Meine Fragen:

  • Ist das soweit von der Logik her richtig, was sollte ich ändern im Aufbau?
  • Wie bekomme ich das hin mit dem Befehlen über PIN D4 zu [LightAP] Pin D4 das dieser den Befehle weiter gibt über WLan

Ziel ist es alle 3 Wemos direkt über 1 Wemos Anzusteuern statt jeden über mehre IPs anzusteuren

Genau Deinen Punkt, wie über Pin 4 ein WLAN-Befehl weitergegeben werden soll, verstehe ich nicht. Ich vermute, da bist Du auf dem Holzweg.

Wenn die WLAN-Verbindung zu den 2 ESP bereits funktioniert, dann laufen die in Deinem WLAN zu Hause. Richtig?

Warum willst Du dann zusätzlich noch einen AP einrichten?

Im einfachsten Fall spielt ein ESP den Master, den Du von irgendwoher ansprichst.
Der wertet die Info aus und sendet dann dem 1./2.oder 3. ESP, was der tun soll. Das kann alles im bestehenden WLAN laufen.

Die Weiterführung kannst Du per http-Client machen oder per UDP. http ist einfacher, UDP hat weniger Overhead, was hier aber nicht das Problem sein sollte.

Für beide Varianten brauchst Du aber einiges an Kenntnissen, da wirst Du nichts zum kopieren finden.

Ich würde Dir vorschlagen, das Handy erst mal beiseite zu legen und über einen ESP dem anderen "Befehle" senden, so wie Du das vom Browser aus machen würdest. Damit kannst Du beides nebeneinander Testen und findest Dich eher rein. Schau Dir dazu die Beispiele zum Http-Request ind den ESP8266WiFi-Libs an.

Erst danach solltest Du Dich um Fragen der Weiterleitung kümmern.

Gruß Tommy

Gruß Tommy

Hallo,

also die eingabe Z.B http://192.168.2.107/rainbow?s=100&b=255". am Handy ist doch sorry wenig Benutzer freundlich.

Eine Webseite mit Program-Nummer, ClientNr (z.B Auswahlbox). und 2-3 Slider , Speed, Brightness, und einem Send Button kannst Du auch in einem halben Jahr noch bedienen, Deine Eingabe oben eventuell nicht mehr, und Deine Frau sicher nie sorry soll kein Vorurteil sein .

Der Master mit dem Webserver wertet die eingegebenen Daten auf der Webseite aus und schichkt sie z.B mittels UDP an den entsprechenden Wemos Client weiter.

für alle WS LED Ketten hast Du eine einzige Webseite. Darauf gibst Du den Empfänger ein und die Daten dazu.

Heinz

Warum so einen Aufwand treiben?
3x Wemos als Server an denen die jeweiligen Led Strips hängen.
Einer davon liefert die Webseite aus, von der du alle drei Steuern kannst.
Mehr braucht es nicht.

Gruß Fips

Ich kann Derfips' Vorschlag nur unterstützen.

Wichtig wäre für den TO, dass er sich klar aufzeichnet was auf welchem ESP läuft und mit welchen Komandos was gesteuert wird.

Alle ESP mit fixen IP's einrichten.
Alle ESP im Standard Station Modus im Heim-LAN, damit diese von jedem Smartphone im Heim-LAN erreichbar sind.

Die Steuerseite läst sich übersichtlich auf einen Server (der ja auch auf einen ESP laufen kann) darstellen. Die fixen IP's machen es leicht, die jeweiligen Kommandos an die richtigen ESP's zu senden.

Aber wie schon erwähnt, der TO möge sich das zunächst aufzeichnen.

@Tommy56:

Ah, Okay das war ja mehr oderweniger mein Ziel das ich erstmal das Grundlegende haben sprich ein Ansatz an dem ich micht setzten kann und dann weiter und weiter Probieren testen und somit Erfahrung sammel. Vielen dank für die Denkanstöße :slight_smile:

@Rentner:
Naja ich könnte mich ohne Fahrkenntnis in ein Rennauto setzten... das mit dem http://[......]/rainbow?s=100&b=255 sollte mehr dazu dienen das ich die Grundkenntnis erstmal hin bekomme bzw. Ansatz wie ich etwas mache damit das Ergebnis Passiert. danach kann man sich hinsetzten und alles direkt schön einrichten ggf. ne direkte App Programmieren. jetzt werden die LEDs auch über Webinterface angesteuert etc. nur habe ich aktuell 3x 3 Webinterface und das wollte ich alles in einem Packen 1 WebInterface für 3 Wemos anzusteuern. @Derfips hat hier direkt mal einen Vorschlag gemacht, wo mich ich mich über Wochenende beschäftigen kann. son Copy&Paste ding will ich nicht. sondern Ansätze was wie am besten umzusetzen wäre. Nun hab ich einige Dinge Denkanstöße erhalten hier auch noch mal Danke über PNs.

Das was ich da geschreiben habe war soweit ja wenn ich es richtig raus lesen eine richtige Richtung nur kompliziert bzw. umständlicher als gedacht, wie gesagt so war mein Gedanke und wurde verbessert.

in dem Sinne
Vielen Dank und euch ein Schönen Abend und Wochenende :slight_smile:

//EDIT:
@noiasca:
Genau, soweit bin ich jetzt auch das ich mir ein Plan und liste mache was welcher ESP machen soll Static IP usw. nun hab ich soweit Info und Ansätze bekommen womit ich mich ganz in Ruhe über das WE beschäftige. falls ich mal was nicht verstehe oder eine Blockade habe kann ich ja immer nochmal hier nach Fragen :slight_smile:

Das was ich geplant habe war ja fast soweit ganz richtig, ich kann mir dem Weg mit dem Wemos als AP sparen und direkt alle über Heimnetz laufen lassen und 1 Wemos der die Kontroller über alle 3 Nimmt.

Für was soll der Kontroll ESP gut sein?

Gruß Fips

Derfips:
Für was soll der Kontroll ESP gut sein?

Gruß Fips

Mein Ziel war und ist es statt 3 Webinterface zuhaben nur noch 1 Webinterface das mach ich wenn richtig raus gelesen und verstanden habe über den 4ten Wemos der nur als Webinterface dient und die Befehle an die anderen übergibt über das Heimnetz, vorher war mein Gedanken das über nen AP zumachen dieser dann... sprich mein erst Gedanke/Plan war mehr Komplizierter als einfacher :slight_smile:

lg

DerOdin:
Mein Ziel war und ist es statt 3 Webinterface zuhaben nur noch 1 Webinterface das mach ich wenn richtig raus gelesen und verstanden habe über den 4ten Wemos der nur als Webinterface dient und die Befehle an die anderen übergibt über das Heimnetz, vorher war mein Gedanken das über nen AP zumachen dieser dann... sprich mein erst Gedanke/Plan war mehr Komplizierter als einfacher :slight_smile:

lg

Ich hatte es doch deutlich geschrieben.
3x einer davon liefert die Webseite.

Gruß Fips

Hallo,

ich hab da noch mal eine Frage zum Konzept von Fips

  1. auf einem up läuft ein Webserver basieren auf der Lib ESP8266WebServer.h damit läuft dann die Kommunkation nach oben zum Benutzer auf dem Hausnetz.

  2. Zusätzlich kann es nach unten einen weiteren up als Client geben der an diesen Webserver ein paar Daten los werden will. Zugegeben bei dem Beispiel mit den LED ist das andersherum der Server ist ja dann unten. Dazu hab ich vor einiger Zeit mal mit dem Beispiel TCP Server / Client basieren auf ESP8266WiFi.h rumgespielt. Das klappte auch.

Beides zusammen hab ich, zu meiner Schande gestehend, noch nicht probiert weil !!

Auf dem Webserver aus 1. müsste dann ja eine TCP Anfrage eines Clients aus 2. dennoch richtig beantwortet werden? Allerdings stellt das Webserver Beispiel aus 1. keinen handle für den Fall zur Verfügung , endet also vermutlich auf der Fehlerseite (seite nicht vorhanden ) . Im Loop ist da ja eigendlich nix drin. ausser server.handleClient();

  1. Oder man erstellt auf dem ersten noch ein zusätzliches Server Objekt mit ESP8266WiFi.h . In dem Fall könnte das klappen, auf die Idee bin ich bisher allerdings noch nicht gekommen. Meine Vermutung ist das zwischen den beiden Objekten der Krieg ausbrechen könnte :slight_smile:

Deshalb grundsätzlich meine Idee nach unten UDP zu nehmen. Da bei UDP kein Protokoll verwendet wird und mir nichts verloren gehen soll , bin ich dann auf die Idee mit dem eigene Sensornetz gekommen, da ist ja eigendlich nix los und die Frau sieht auch gerade keine Film wie auf dem Heimnetz.

Jetz zur oben angedrohten Frage

klappt das mit einem zus. Server Objekt so einfach :slight_smile:

Noch mal zusammen gefasst

up1 Webserver ( behandel die Webseiten für den Benutzer und sammelt und verteilt Daten)
ist nach unten Server um Daten zu empfangen von up2
nach unten Client um Daten zu senden an up3
macht selber auch noch was ( z.B Lichterkette)

up2 Misst daten
ist Client

up3 Empfänger (z.B Licht)
ist Server

upn (..... )

Heinz

OT: es ist überhaupt kein Problem auf einem ESP einen Webserver und einen Webclient laufen zu lassen.

Wenn du mal Zeit hast, ich habe vor einiger Zeit ein Muster erstellt, wie zwei ESP Daten austauschen können:

http://werner.rothschopf.net/201809_arduino_esp8266_server_client_0.htm

HTTP ist sicher nicht das einfachste Protokoll für derartiges und UDP klappt für eine Maschine-Maschine Kommunikation ganz bestimmt auch, aber ich finde HTTP zum Schrittweisen Testen und Weiterentwickeln zum Anfangen einfacher. Besonders wenn bereits ein Webserver im Spiel ist, finde ich die Verwendung eines Clients der dann wieder HTTP mit dem Server spricht übersichtlich.

Rentner:
3. Oder man erstellt auf dem ersten noch ein zusätzliches Server Objekt mit ESP8266WiFi.h

Du machst Witze!!
Warum soll auf einem Webserver ein Webserver laufen???

Deshalb grundsätzlich meine Idee nach unten UDP zu nehmen.

Kann man machen.

Mit deinem oben und unten komme ich nicht ganz klar.

Konzept für den TO:

3x

ESP8266WebServer.h ESP8266WebServer.h ESP8266WebServer.h

und eine Webseite, die kann von irgend einen der drei ESP8266WebServer kommen oder auch von einem Server bei einen Hoster im Internet, das ist egal. Diese Seite im Browser aufgerufen kann Anfragen an alle drei Esp schicken. Die melden zB. Licht ist an und 22°C. Genauso kann von der Webseite per Button das Licht geschaltet werden und der EspServer sendet als Antwort "200 OK ausgeknippst".

Auf meinem Nodemcu im Heizungsraum läuft ein ESP8266WebServer.h.

Mit dabei ist ESP8266HTTPClient.h, damit holt er von einem Wemos D1 mini pro in der Garage einmal pro Nacht die Aussentemperatur. Zweite Aufgabe ist dem Sonoff Dual auf dem Dachboden das betätigen des mechanischen Taster im Heizraum mitzuteilen, worauf der Sonoff das Aussenlicht schaltet.
WiFiClientSecure secureClient habe ich mit drauf um Push Nachrichten zum Handy zu schicken. (Holz nachlegen oder Anheizen)
WiFiClient client sendet alle 16 Sekunden die Werte von den 5 Stück Ds18b20 an Thingspeak.
Die Uhrzeit holt er einmal in der Nacht als Ntp von der Fritzbox.
Es ist auch noch ein LCD dran auf dem aller 5 Sekunden die Temperaturen und jede Sekunde die Uhrzeit aktualisiert wird.

Wüsste jetzt nicht für was ein zweiter Webserver auf einem Esp8266 gebraucht würde.

Gruß Fips

Derfips:
auch von einem Server bei einen Hoster im Internet

Das ist richtig, aber dazu muss man den Router von außen zu den ESP öffnen und das sollte man nur machen, wenn es unbedingt notwendig ist und man genau weiß, was man tut.

Gruß Tommy

Tommy56:
Das ist richtig, aber dazu muss man den Router von außen zu den ESP öffnen und das sollte man nur machen, wenn es unbedingt notwendig ist und man genau weiß, was man tut.

Gruß Tommy

Ich wollte damit vor allen Dingen ausdrücken das es egal ist wo die Webseite her kommt.

In #7 hatte ich ja geschrieben das die Webseite von einem der EspWebserver ausgeliefert werden soll.
Von unterwegs kann man dann auch per VPN Tunnel zugreifen. Geht easy mit der Fritzbox und der Fritzapp.

Gruß Fips

Hallo
Danke für die Ausführung und den Link , da gibt's doch wieder was zum probieren für mich .

Ein schönes Wochenende noch
Heinz