我正在尝试将一些手动数据从Arduino发布到服务器。我正在使用SIM 900进行数据连接..数据没有到达服务器.. SIM已经初始化而没有错误,但数据没有发布到服务器..请帮我修复..代码是下面..
#include<SoftwareSerial.h>
SoftwareSerial client(2,3);
String testReading="{ \"testID\" : 1, \"testLevel\" : 1, }";
void setup()
{
Serial.begin(9600);
client.begin(9600);
delay(1000);
if(client.available())
{
Serial.print("Connected");
}
else
{
Serial.print("Not Connected");
}
checkSignal();
connectGPRS();
postData();
delay(1000);
}
void loop()
{
if(client.available())
{
checkSignal();
connectGPRS();
postData();
delay(1000);
}
}
void connectGPRS()
{
client.println("AT+CGATT?");
delay(1000);
ShowSerialData();
client.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");
delay(1000);
ShowSerialData();
client.println("AT+SAPBR=3,1,\"APN\",\"www\"");//Using Indian Standard Vodafone Sim and so APN is www
delay(1000);
ShowSerialData();
client.println("AT+SAPBR=1,1");
delay(1000);
ShowSerialData();
client.println("AT+SAPBR=2,1");
delay(1000);
ShowSerialData();
}
void checkSignal()
{
client.println("AT+CSQ");
delay(1000);
ShowSerialData();
}
void ShowSerialData()
{
while(client.available()!=0)
Serial.write(client.read());
}
void postData()
{
client.println("AT+HTTPINIT");
delay(1000);
ShowSerialData();
client.println("AT+HTTPPARA=\"CID\",1");
delay(1000);
ShowSerialData();
client.println("AT+HTTPPARA=\"URL\",\"http://test.server/insert-path");
delay(1000);
ShowSerialData();
client.println("AT+HTTPPARA=\"CONTENT\",\"application/json");
delay(1000);
ShowSerialData();
client.println("AT+HTTPDATA=99,10000");
delay(1000);
ShowSerialData;
client.println(testReading);
delay(1000);
ShowSerialData;
client.println("AT+HTTPACTION=1");
delay(10000);
while(!client.available());
ShowSerialData();
}
答案 0 :(得分:1)
您需要添加另一个'\“'来完成网址和内容类型。
client.println("AT+HTTPPARA=\"URL\",\"http://test.server/insert-path\"");
client.println("AT+HTTPPARA=\"CONTENT\",\"application/json\"");
另外,尝试增加client.println("AT+HTTPDATA=99,10000");
数据输入延迟10到20秒。