Wenn Du zum Verschicken des UDP-Paketes WIFIClient verwendest, solltest Du auch damit empfangen können.
Um das abkürzen, hier ist eine Doku: https://arduino-esp8266.readthedocs....rom-the-server
interessant wird dann dieser Abschnitt sein:
Code:
if (client.available())
{
String line = client.readStringUntil('\n');
Serial.println(line);
}
Ich habe das in der Form: Senden und dann wieder Empfangen auf einem nodeMCU, noch nicht ausprobiert. Ich habe bisher nur empfangen und zurückgesendet. Mehr brauchte ich nicht. Für weiteres muss ich mich damit beschäftigen.
Die Zeile mit: Serial.println(line)
musst Du nat. ersetzen durch einen Vergleich, ob das Zeichen oder die Zeichen angekommen ist oder sind, das oder die Du gesendet hast.
MfG
- - - Aktualisiert - - -
Allerdings, kann man mit WIFIClient UDP-Pakete verschicken?
Wozu nutzt Du:
??
Ich werde das mal selber ausprobieren. Mal sehen..
MfG
- - - Aktualisiert - - -
------------------------------------------------------------------------
Nochmal ein Anlauf.
Ich habe das eben schnell selbst zusammengwürfelt.
Ausgehend davon, dass es ein nodeMCU gibt, das als Zugriffspunkt und Server funktioniert und die ankommende Nachricht auch zurückschickt,
wäre das mein (nicht verifizierter Code), mit dem ich eine Nachricht dort hin schicke und auch anschließend empfange:
Code:
void loop()
{
send = 0;
if (udp.beginPacket(IPAddress(192,168,0,64),50000)==1)
{
udp.write("%");
udp.endPacket();
send=1;
}
if (send==1 && udp.parsePacket()) {
// Nachricht abholen
int len=udp.read(udp_buffer,sizeof(udp_buffer)-1);
udp_buffer[len] = 0;
if (strstr(udp_buffer, "%")){
.... //alles andere hier, wenn das angekommene Zeichen (können auch mehrere sein) dem Versendeten entspricht
}
}
Entscheidend ist jetzt nicht, ob der Code so funktioniert oder auch etwas anders. Aber die Reihenfolge:
Senden der Daten mit:
- udp.beginPacket
- udp.write()
- udp.endPacket()
Dann warten bis was zurück kommt, mit:
- if(udp.parsePacket()){...}
und lesen der Daten mit:
- udp.read(udp_buffer,sizeof(udp_buffer)-1);
Lesezeichen