Hallo zusammen,
Beim googlen konnte ich leider nichts entsprechendes finden. Da ging es immer nur um das gleichzeitige Ausführen auf einem Arduino.
Ich habe drei verschiedene Stationen (Arduino+ESP8266, ESP8266, ESP8266) und an zwei davon sind LED-Strips angeschlossen. Der dritte soll als Controller dienen.
Das Ziel ist es das der Controller einmalig einen Zeitwert (Integer) an die anderen Stationen schickt und diese daraufhin die Farbe alle X (je nach Zeitwert) Millisekunden anpassen. Soweit so einfach.
Mein Problem ist das beide Stationen Zeitgleich die gleiche Farbe anzeigen sollen. Der Controller muss also die ausgewählte Farbe alle X (wieder je nach Zeitwert) Millisekunden an die Stationen senden. Diese müssen dann diese Farbe zeitgleich ausgeben.
Leider weiß ich nicht wie ich beide Geräte zeitgleich das Signal ausgeben lassen kann.
Eine Idee wäre über NTP die Zeit von einem Zeitserver zu holen und damit zu arbeiten. Allerdings hoffe ich das es eine einfachere möglichkeit gibt da diese Möglichkeit recht unbequem ist (Über NTP erhalt man die Sekunden die vergangen sind seit 1970 oder 1980 oder so ähnlich).
Die Geräte sind alle im gleichen WLAN Netzwerk und ein Kabel zwischen den Geräten gibt es nicht.
Ich hoffe ich konnte mein Anliegen verständlich erklären. Wenn nicht: Fragt einfach 
Vielen Dank schonmal 
Viele Grüße,
Alex
Die UNIX-Time (Anzahl der Sekunden) ist doch die einfachste Möglichkeit, um Zeiten zu vergleichen. Da brauchst Du Dich nicht um Stunden/Minuten/Tage usw. zu kümmern. Alle 3 ESP nutzen die NTP-Zeit (z.B. alle Stunden leicht versetzt).
Vorschlag: Der Controller übergibt 2 Werte (Struct) an die Slaves über UDP: Neues Intervall und UNIX-Time, ab wann das gilt. So bekommst Du am Einfachsten eine weitgehende Synchronisation hin.
Gruß Tommy
Hi Tommy,
Danke für die Hilfe!
Das Intervall kann allerdings auch kleiner als eine Sekunde sein (Min. Ca 100ms).
Bekomme ich eine solche Genauigkeit mit der NTP hin?
Ich müsste dann einen Startzeitpunkt definieren, richtig? Quasi bei Y-Sekunden NTP-Zeit starten die Geräte mit ihrem Intervall.
Verstehe ich das richtig und bekomme ich damit die 100ms Genauigkeit?
Je nachdem wie lange die Geräte brauchen um die NTP-Zeit zu erhalten kann doch eine Schwankung von einigen MS vorkommen welche sich bei der Anwendung bemerkbar machen sollte oder wie siehst du das?
Danke und Gruß,
Alex
Auf die Millisekunde genau wirst Du mehrere ESP8266 wohl nicht synchronisiert bekommen. Entscheidend ist, wie genau Du es wirklich brauchst, nicht die Wunschgedanken.
Wenn ich falsch liege, möge man zeigen, wie es doch auf die ms genau geht.
NTP kürzer als 1 Mal pro Stunde auf 3 Devices abzufragen halte ich nicht für praktikabel, da dann evtl. die Betreiber sperren.
Das Intervall sollte genau genug sein.
Gruß Tommy
Wie genau die Geräte synchron laufen ist mir egal solange der Effekt vernünftig aussieht. Wenn dabei einige MS unterschied sind, ist das egal.
Ich werde das einmal ausprobieren und mich dann nochmal melden.
Vielen Dank!
Ich nehme an, du willst das ganze über WIFI lösen oder?
Vieleicht reicht es auch, wenn du mittels UDP dem ersten ESP mitteilst
"Farbe x in 10ms" und dem zweiten ESP gleich danach "Farbe x in 8ms" ... also bereinigt um einen kleinen Offset um den Vearbeitungsunterschied auszugleichen.
Hi
Warum nicht zur Not ein Interrupt via Funk auslösen?
Wenn der Interrupt kommt, 'ist es 10 Uhr, 25 Minuten und 23 Sekunden ... piep'.
So bekommen ALLE angeschlossenen Slaves ziemlich gleichzeitig mit, was die Stunde geschlagen hat.
Funk, Da WLan an verschiedene Slaves auch durchaus verschieden lang brauchen kann - und bei einem Ping von 200ms brauche ich nicht drauf hoffen, daß ich im 1-stelligem Bereich bleibt.
(auch bei 31ms wird's mit 1-stellig langsam eng)
Nur eine Idee!
MfG