Arduino Uno + GSM Shield SIM900 TCP 客户端收不到数据

Arduino Uno + GSM Shield SIM900 TCP Client Dont Receive Data

我需要使用 TCP/IP 套接字将带有 Tinysine GSM Shield(sim 900 模块)的 Arduino Uno R3 与 NodeJS 服务器套接字通信。所以,嵌入式系统是一个TCP客户端。我需要 Arduino 发送一些消息并接收答案,使用接收到的数据使不同颜色的 LED 闪烁。 tcp 套接字正在工作,我可以发送消息,并在我的服务器套接字中处理它,但无法在嵌入式中收到答案(socket.write)(实际上,我收到了一些模糊和可变的字符)。

我的服务器套接字工作正常,使用客户端 TCP 之类的 Hercules,我可以完成整个过程。

我正在使用带有 AT 命令的 SIM900 和 InetGSM 库到 TCP 连接(最初我不想使用 AT HTTP 连接,因为它会改变我的系统)。

如何从我的服务器套接字接收到清晰的消息?谢谢

我解决了!

当我发送 AT+CIPSEND 命令时,我收到的是一系列字符,其中包含命令的 AT 响应和从我的服务器发送的数据。

所以,我需要做的是将它存储在一个数组中,select 数据在这个数组中的位置,或者在正确的数组位置选择答案,如下例所示。

例如:

//Im waiting for char '1'
//After sending message with AT commands ...
char answer;

for(i = 0; i < 15; i++){ //15 is an random limit value that worked for me, I dont know why
    answer = (char)gsm.read();
    if(answer == '1'){
        Serial.println("I find the answer!");
    }
}