häufiges senden mit ESP8266

Hallo,

ich möchte einen kabellosen Controller für die Steuerungen eines Synthesizers selbst basteln. Meinen ESP8266 kriege ich mit der Arduino-Umgebung bespielt, das Einwählen ins WLAN-Netzwerk klappt auch. Ich kann mit HTTP Daten übertragen, was mich schonmal sehr freut.

Damit die Aktionen des Controllers sofort im Synthesizer ankommen, brauche ich niedrige Latenzen. Ich möchte eigentlich maximal 20ms.

Geht das überhaupt mit HTTP Get oder Post? Ich müsste ja mindestens 50 Abfragen pro Sekunde machen. Wenn nein, gäbe es ein besseres Verfahren für diesen Zweck?

Ich hoffe die Frage ist nicht zu trivial. Mit den Suchmaschinen habe ich nichts dazu gefunden, die Beispielscetches sind für mich zu kompliziert und ich fürchte mit rumexperimetieren ende ich dann doch nur auf Holzwegen. Danke für eure Hilfe.

TCP+HTTP UDP Aber, ob das reicht... ka

Willst du nur Daten streamen oder jeweils eine Antwort darauf?

Streamen könnte mit udp gehen, kommt natürlich auch drauf an, wieviel Daten 50 mal pro Sekunde

50mal pro Sekunde? So viel? Ich versende auch Daten per UDP und lasse mir jedes mal eine Bestätigung ausgeben. Habs jetzt nicht gezählt aber ich würde so aus 10 pro Sekunde tippen.

hi,

das kriegst Du nur mit node.js hin. da wird die verbindung ständig beibehalten.

am raspberry hab ich’s installiert:

http://playground.arduino.cc/PmWiki/Haustechnik-Eisebaer

geht auch auf dem 8266, nur sind da die infos ein wenig schwer zu finden, weil es das projekt nodeMCU gibt. hat zwar nichts mit node.js zu tun, aber durch die namensähnlichkeit ist das suchen schwer.

gruß stefan

Super! Danke für die Hinweise. Ich werde erst mal UDP probieren. Die Datenmenge ist auch echt kein, nämlich 1 Byte pro Paket.

Wenn es nicht reicht werde ich das mit dem node gerne probieren.

Ich werde auf jeden Fall hier schreiben, was raus kommt...

das kannste ja schnell testen

lass in einer Endlosschleife einen Zähler hochzählen und schicke ihn per udp zu einem PC. Dort schaust du mit Packetsender nach, wieviel in einer bestimmten Zeit ankommen. Und voila, schon weisst du ob es reicht. 10 Zeilen Code

Ich habs mal ausprobiert:

  INTERVAL(3){
      udp.beginPacket({172, 26, 255, 255}, 4100);
  udp << millis() << " # "  << x++;
  udp.endPacket();
  }

Also bis 3ms kann man runtergehen, sprich 333 mal pro Sekunde.

Wow okay. Liegt wohl an der Paketgröße vermute ich mal :)

Ich hab mal ein bisschen weiter gespielt, so aus Neugier. Senden alle 3 ms ist kein Problem, die Daten kommen auf meinem Win7 PC, der per LAN am Netz hängt alle an.

Edit: Hab ein Minimal udp Empfangssketch mit serieller Ausgabe 250.000Baud auf einem zweiten ESP. Der bekommt nahezu alle, nur alle paar huntert Werte fehlen mal ein paar (zwischen 6 und 16).

Hier mal ein paar Zeilen LOG aus Packetsender:

TIME Port To IP To Port 
9:04:25.138 You 4100 UDP 27467 # 8077 
9:04:25.138 You 4100 UDP 27470 # 8078 
9:04:25.138 You 4100 UDP 27473 # 8079 
9:04:25.138 You 4100 UDP 27476 # 8080 
9:04:25.138 You 4100 UDP 27479 # 8081 
9:04:25.153 You 4100 UDP 27482 # 8082 
9:04:25.153 You 4100 UDP 27485 # 8083 
9:04:25.153 You 4100 UDP 27488 # 8084 
9:04:25.153 You 4100 UDP 27491 # 8085 
9:04:25.153 You 4100 UDP 27494 # 8086 
9:04:25.169 You 4100 UDP 27497 # 8087 
9:04:25.169 You 4100 UDP 27500 # 8088 
9:04:25.169 You 4100 UDP 27503 # 8089 
9:04:25.169 You 4100 UDP 27506 # 8090 
9:04:25.169 You 4100 UDP 27509 # 8091 
9:04:25.184 You 4100 UDP 27512 # 8092 
9:04:25.184 You 4100 UDP 27515 # 8093 
9:04:25.184 You 4100 UDP 27518 # 8094 
9:04:25.184 You 4100 UDP 27521 # 8095 
9:04:25.184 You 4100 UDP 27524 # 8096 
9:04:25.231 You 4100 UDP 27527 # 8097 
9:04:25.231 You 4100 UDP 27530 # 8098 
9:04:25.231 You 4100 UDP 27533 # 8099 
9:04:25.231 You 4100 UDP 27536 # 8100 
9:04:25.231 You 4100 UDP 27539 # 8101 
9:04:25.231 You 4100 UDP 27542 # 8102 
9:04:25.231 You 4100 UDP 27545 # 8103 
9:04:25.231 You 4100 UDP 27548 # 8104 
9:04:25.231 You 4100 UDP 27551 # 8105 
9:04:25.231 You 4100 UDP 27554 # 8106 
9:04:25.231 You 4100 UDP 27557 # 8107 
9:04:25.231 You 4100 UDP 27560 # 8108 
9:04:25.262 You 4100 UDP 27563 # 8109 
9:04:25.262 You 4100 UDP 27566 # 8110 
9:04:25.262 You 4100 UDP 27569 # 8111 
9:04:25.262 You 4100 UDP 27572 # 8112 
9:04:25.262 You 4100 UDP 27575 # 8113 
9:04:25.262 You 4100 UDP 27578 # 8114 
9:04:25.262 You 4100 UDP 27581 # 8115 
9:04:25.262 You 4100 UDP 27584 # 8116 
9:04:25.262 You 4100 UDP 27587 # 8117 
9:04:25.262 You 4100 UDP 27590 # 8118 
9:04:25.262 You 4100 UDP 27593 # 8119 
9:04:25.262 You 4100 UDP 27596 # 8120 
9:04:25.262 You 4100 UDP 27599 # 8121 
9:04:25.262 You 4100 UDP 27602 # 8122 
9:04:25.278 You 4100 UDP 27605 # 8123 
9:04:25.278 You 4100 UDP 27608 # 8124 
9:04:25.278 You 4100 UDP 27611 # 8125 
9:04:25.278 You 4100 UDP 27614 # 8126 
9:04:25.278 You 4100 UDP 27617 # 8127 
9:04:25.278 You 4100 UDP 27620 # 8128 
9:04:25.294 You 4100 UDP 27623 # 8129 
9:04:25.294 You 4100 UDP 27626 # 8130 
9:04:25.294 You 4100 UDP 27629 # 8131 
9:04:25.294 You 4100 UDP 27632 # 8132 
9:04:25.387 You 4100 UDP 27635 # 8133 
9:04:25.387 You 4100 UDP 27638 # 8134 
9:04:25.387 You 4100 UDP 27641 # 8135 
9:04:25.387 You 4100 UDP 27644 # 8136 
9:04:25.387 You 4100 UDP 27647 # 8137 
9:04:25.387 You 4100 UDP 27650 # 8138 
9:04:25.387 You 4100 UDP 27653 # 8139 
9:04:25.387 You 4100 UDP 27656 # 8140 
9:04:25.387 You 4100 UDP 27659 # 8141 
9:04:25.387 You 4100 UDP 27662 # 8142 
9:04:25.387 You 4100 UDP 27665 # 8143 
9:04:25.387 You 4100 UDP 27668 # 8144 
9:04:25.387 You 4100 UDP 27671 # 8145 
9:04:25.387 You 4100 UDP 27674 # 8146 
9:04:25.387 You 4100 UDP 27677 # 8147 
9:04:25.387 You 4100 UDP 27680 # 8148 
9:04:25.387 You 4100 UDP 27683 # 8149 
9:04:25.387 You 4100 UDP 27686 # 8150 
9:04:25.387 You 4100 UDP 27689 # 8151 
9:04:25.387 You 4100 UDP 27692 # 8152 
9:04:25.387 You 4100 UDP 27695 # 8153 
9:04:25.387 You 4100 UDP 27698 # 8154 
9:04:25.387 You 4100 UDP 27701 # 8155 
9:04:25.387 You 4100 UDP 27704 # 8156 
9:04:25.387 You 4100 UDP 27707 # 8157 
9:04:25.387 You 4100 UDP 27710 # 8158 
9:04:25.387 You 4100 UDP 27713 # 8159 
9:04:25.387 You 4100 UDP 27716 # 8160 
9:04:25.387 You 4100 UDP 27719 # 8161 
9:04:25.387 You 4100 UDP 27722 # 8162 
9:04:25.418 You 4100 UDP 27725 # 8163