Ich experimentiere mit Arduino und ESP8266-Modul, und jetzt versuche ich, einige Sensordaten an einen TCP-Server zu senden. Zu diesem Zweck verwende ich den AT + CIPSTART-Befehl (um eine TCP-Verbindung herzustellen) und AT + CIPSEND, um die Daten zu senden.ESP8266: So senden Sie TCP-Nachrichten mit AT + CIPSEND Befehl
Wenn ich es mit Serial Monitor testen, funktioniert es gut. Nach Eingabe des CIPSEND-Befehls kann ich Text in ein Terminal schreiben und diese Nachricht/Text wird an den TCP-Server gesendet.
Wenn ich versuche, es in Arduino Skizze zu machen, dann sendet es eine leere Nachricht. Die Verbindung funktioniert, aber ich sehe keine Daten.
Wie kann ich einen Nachrichtentext (msg) mit meinem TCP-Paket senden? Hier
ist ein Code-Snippet
// ESP8266 Client
String cmd = "AT+CIPSTART=\"TCP\",\"";// Setup TCP connection
cmd += IP;
cmd += "\",3103";
sendDebug(cmd);
delay(2000);
if(Serial.find("Error"))
{
debug.print("RECEIVED: Error\nExit1");
return;
}
String msg = "test";
Serial.print("AT+CIPSEND=");
Serial.println(msg.length());
if(Serial.find(">"))
{
debug.print(">");
debug.print(msg);
Serial.print(msg);
}
else
{
sendDebug("AT+CIPCLOSE");//close TCP connection
}
if(Serial.find("OK"))
{
debug.println("RECEIVED: OK");
}
else
{
debug.println("RECEIVED: Error\nExit2");
}
}
Haben Sie AT + CIPMUX = 0 gesendet, um mitzuteilen, dass nur eine Verbindung besteht? Gibt es nach Ihrer AT + CIPSEND = Len etwas anderes als '>' zurück? Könnten Sie ein Protokoll veröffentlichen? – leetibbett