ArduinoとESP8266モジュールを試していて、TCPサーバーにセンサーデータを送信しようとしています。この目的のために、私はAT + CIPSTARTコマンド(TCP接続を確立するため)とAT + CIPSENDを使用してデータを送信しています。ESP8266:AT + CIPSENDコマンドを使用してTCPメッセージを送信する方法
シリアルモニタを使用してテストしている場合、正常に動作します。 CIPSENDコマンドを入力した後、私は端末に何らかのテキストを書くことができ、このメッセージ/テキストはTCPサーバに送られます。
Arduinoのスケッチの中に入れようとすると、空のメッセージが送信されます。接続は機能しますが、データは表示されません。
TCPパケットでメッセージテキスト(msg)を送信するにはどうすればよいですか?ここで
は、コードスニペットは、すべての
// 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");
}
}
接続が1つしかないことを伝えるためにAT + CIPMUX = 0を送信しましたか?あなたのAT + CIPSEND = lenの後に '> '以外のものを返していますか?ログを投稿できますか? – leetibbett