Hallo, ich habe vor mir eine Datenübertragung zwischen 2 ESP 8266 Modulen zu realiesieren. Hierbei sollen Messwerte vom AD-Wandler (8bit davon würden reichen) per WLAN auf einen zweiten ESP8266 übertragen werden. Ich habe mir schon einige Beispielcodes angeschaut. Diese basieren alle auf einem Webserver. Meine Frage: Reicht eine solche Übertragung bei einer Datenhäufigkeit von ca 5000 Messwerten/Sekunde aus oder gibt es hier bessere Techniken für solche Übertragungen? Hat jemand so etwas schon mal gemacht? Gruß Günter
Guenter B. schrieb: > Ich habe mir schon einige Beispielcodes angeschaut. Diese basieren alle > auf einem Webserver. Logisch, weil das Ding einen Netzwerkanschluss hat und das derzeit übliche Terminal für Netzwerk-Dienste ist eben der Web Browser. Diese Module können problemlos mehr als 100 Kilobyte pro Sekunde senden und empfangen. Wenn deine Messwerte nicht allzu groß sind, sollte das reichen. Sie können aber nicht 5000 einzelne Zahlen (Netzwerk-Pakete) pro Sekunde senden. Außerdem hast du zwischendurch immer wieder mal Aussetzer von typischerweise bis zu 200ms (selten noch mehr). Du musst die Daten also Puffern und in großen Blöcken übertragen. Hier sollte man die Unterschiede zwischen TCP und UDP kennen lernen: Siehe http://stefanfrings.de/esp8266/index.html
Da einen Web(HTTP-)server zu verwenden erscheint in der Tat unnötig und sogar eher kontraproduktiv. Da braucht's nun wirklich keinen unnötigen HTTP-Overhead. Würde vorschlagen, einfach einen gewöhnlichen TCP Socket zu verwenden. Wenn 8 Bit genügen, entspricht dann einfach jedem über den Socket gesendeten Byte genau ein Messwert. Wichtig wäre halt noch, dass nicht für jeden der 5000 Messwerte pro Sekunde ein eigenes Paket gesendet wird, sondern immer erst soundsoviele Messwerte in einem Puffer gesammelt werden, bevor sie zusammen als ein Paket verschickt werden. Mglw. passiert das sogar eh automatisch, ohne dass Du Dich darum kümmern müsst, da bin ich mir gerade nicht sicher. Google am besten einfach mal nach "ESP8266 TCP Socket Server Client", da dürftest Du recht schnell was passendes finden.
Joachim S. schrieb: > Mglw. passiert das sogar eh automatisch, ohne > dass Du Dich darum kümmern müsst, da bin ich mir gerade nicht sicher. Die AT Firmware macht es automatisch. Sie sammelt in 100ms Intervallen. Aber der Arduino Core macht es nicht automatisch (hätte ich dort auch weder erwartet noch begrüßt).
ESP-Now kannte ich noch nicht. Danke für den Tipp. Könnte ich eventuell die Module mit der AT-Firmware betreiben und einfach als serielle Übertragungssteckke laufen lassen? Dann hätte ich ja bis zu 115.000 bps. Die AD-Wandlung müßte ich dann wahrscheinlich über einen ATTiny oder ATMega realisieren und dem ESP seriell zuführen ?
Guenter B. schrieb: > Könnte ich eventuell die Module mit der AT-Firmware betreiben und > einfach als serielle Übertragungssteckke laufen lassen? Dann hätte ich > ja bis zu 115.000 bps. Ja kannst du, aber bedenke die 100ms Intervalle. Kannst du damit leben? Die 115.000 bps sind für die serielle Übertragung. Bedenke, dass du nach jedem Kommando auf die Antwort warten musst, welche schon ohne Störungen 100 bis 200ms dauert. Während dieser Wartezeit kannst du nichts senden, das drückt den Datendurchsatz erheblich nach unten. Wenn es dann immer noch schnell genug ist, nutze ruhig die AT Firmware.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.