PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2 ESP8622 latenzfrei miteinander verbinden



mjovi
14.12.2018, 08:09
Hallo..
Ich schon wieder... ;)
Ich habe mein Projekt "Schießuhr - Countdown" jetzt soweit fertig.. doch nun stehe ich vor einem anderen Problem.
Ein Display zur Anzeige reicht mir nicht. Ich würde gerne einen 2ten erstellen. Es müssen beide immer das gleiche anzeigen also dachte ich mir, ich machen einen zum Master(der rechnet den Countdown) und wenn ich auf dem Master die Anzeige mache soll er ein Signal per ... weis ich noch nicht.. an den Slave schicken der dann das gleiche anzeigt.
Einen HTTP Server kanns denke ich nicht sein da hier die Latenz zu unberechenbar ist.
Gibts da was schickes für die NodeMCU?

Vielen Dank und Viele Grüße
Michael.

HaWe
14.12.2018, 08:32
Seriell (UART) per Kabel...?
fast genau so schnell:
Bluetooth, ebenfalls seriell (UART)...?

mjovi
14.12.2018, 08:33
Hmm.. kann schonmal etwas länger >30 meter sein. Was mit Funk wäre mir lieber

Ceos
14.12.2018, 08:38
Du musst dir eigentlich nur ein System zur Synchronisation ausdenken dann geht das auch in HTTP + JS

Du musst ja nur zeitlich vorhersagbar Signale senden und die Antwortzeit nehmen um die Differenz zu berechnen, das ist dann deine Verzögerungszeit auf Master Seite damit der Master nicht schneller darstellt als der Slave anzeigen kann ... idealerweise codierst du in den Signalen noch die loakle Zeit von beiden Seiten mit ein und übermittelst dann eine Referenzzeit + Offset ... am Master musst du dann die Anzeige nur definiert verzögern und die Empfangsseite sollte dann vorhersagbar/synchronisiert funktionieren.

Du kannst ja einen kleinen Test bauen, bei dem du Master und Slave etwas blinkendes anzeigen lässt und dann mit einer Photodiode die Differenz misst um es fein abzustimmen.

shedepe
14.12.2018, 10:02
Beide ESP mit einem NTP Server synchronisieren. Timestamp mitschicken.

Moppi
14.12.2018, 10:08
Ich würde einfach anfangen und die Netzwerkfähigkeit nutzen. Es ist ja alles vorhanden. Möglichst ohne Latenz? - Ich würde erstmal verschiedene Dinge probieren: UDP-Pakete versenden und empfangen, serielle Kabelverbindung herstellen. Man könnte bei den Verbindungen jeweils eine Antwort zurückschicken und der Einfachheit halber die halbe Gesamtverzögerungszeit (vom Senden bis zum Empfangen der Rückantwort) berücksichtigen. Und dann mal sehen, ob die ein oder andere Lösung sogar völlig ausreichend ist.

MfG

mjovi
14.12.2018, 11:14
Hat das schonmal jemand mit MQTT versucht?

HaWe
14.12.2018, 11:56
ich nicht, aber probier's doch mal aus!
https://smarthome-blogger.de/tutorial/esp8266-mqtt-tutorial/
https://arduinodiy.wordpress.com/2017/11/24/mqtt-for-beginners/

Moppi
14.12.2018, 13:31
sieh sehr übersichtlich, wenn das so funktioniert, wie von mjovi gedacht, muss man das rad ncht unbedingt neu erfinden.