gpt4 book ai didi

tcp - 为什么使用 AT 命令从 Arduino GPRS 连接到 xively 时 TCP 连接一直关闭?

转载 作者:可可西里 更新时间:2023-11-01 02:42:44 29 4
gpt4 key购买 nike

我正在尝试使用 AT 命令将数据从蜂窝连接的 arduino 温度传感器发送到 xively.com。我可以打开 TCP 连接,但它会立即关闭。 为什么TCP连接一直关闭?

设置:arduino uno笔记本电脑seeedstudio GPRS v2.0att gophone sim 卡

这是我的终端读数:

Call Ready
AT

OK
AT+CPIN?

+CPIN: READY

OK
AT+CGATT?

+CGATT: 1

OK
AT+CIPSHUT

SHUT OK
AT+CIPSTATUS

OK

STATE: IP INITIAL
AT+CIPMUX=0

OK
AT+CSTT="wap.cingular"

OK
AT+CIICR

OK
AT+CIFSR

10.52.49.206
AT+CIPSTART="TCP","api.xively.com","80"

OK

STATE: TCP CLOSED

我的设置:SEEEDStudio GPRS 屏蔽阿杜诺乌诺笔记本电脑

为了向 sheild 发送 AT 命令,我使用以下代码设置了一个串行中继:

//Serial Relay - Arduino will patch a 
//serial link between the computer and the GPRS Shield
//at 19200 bps 8-N-1
//Computer is connected to Hardware UART
//GPRS Shield is connected to the Software UART

#include <SoftwareSerial.h>

SoftwareSerial GPRS(7, 8);
unsigned char buffer[64]; // buffer array for data recieve over serial port
int count=0; // counter for buffer array
void setup()
{
GPRS.begin(19200); // the GPRS baud rate
Serial.begin(19200); // the Serial port of Arduino baud rate.

}

void loop()
{
if (GPRS.available()) // if date is comming from softwareserial port ==> data is comming from gprs shield
{
while(GPRS.available()) // reading data into char array
{
buffer[count++]=GPRS.read(); // writing data into array
if(count == 64)break;
}
Serial.write(buffer,count); // if no data transmission ends, write buffer to hardware serial port
clearBufferArray(); // call clearBufferArray function to clear the storaged data from the array
count = 0; // set counter of while loop to zero


}
if (Serial.available()) // if data is available on hardwareserial port ==> data is comming from PC or notebook
GPRS.write(Serial.read()); // write it to the GPRS shield
}
void clearBufferArray() // function to clear buffer array
{
for (int i=0; i<count;i++)
{ buffer[i]=NULL;} // clear all index of array with command NULL
}

然后我输入命令并监控与 CoolTerm 的串行通信。

最佳答案

这对我有用:

send AT+CGREG? until you get +CGREG: 0,1
send AT+CGATT? response +CGATT: 1
send AT+CSTT="internet","","" response OK
send AT+CIICR response OK
send AT+CIFSR response IP address
send AT+CIPSTART="TCP","api.xively.com","80" response CONNECT OK

关于tcp - 为什么使用 AT 命令从 Arduino GPRS 连接到 xively 时 TCP 连接一直关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25634804/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com