Arduino Uno + GSM Shield SIM900 TCP客户端无法接收数据

时间:2015-09-23 21:11:03

标签: node.js sockets tcp arduino sim900

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

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

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

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

1 个答案:

答案 0 :(得分: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!");
    }
}