mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ESP 8266 Datenübertragung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Guenter B. (gbl)


Bewertung
0 lesenswert
nicht lesenswert
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

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
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

: Bearbeitet durch User
von Joachim S. (oyo)


Bewertung
0 lesenswert
nicht lesenswert
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.

von TR.OLL (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Esp-Now?

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
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).

: Bearbeitet durch User
von Guenter B. (gbl)


Bewertung
0 lesenswert
nicht lesenswert
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 ?

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.