0

我需要使用 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 连接,因为它会改变我的系统)。

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

4

1 回答 1

1

我解决了!

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

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

例如:

//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!");
    }
}
于 2015-09-25T00:07:59.710 回答