我正在尝试向服务器发布一些手动数据。我正在使用SIM 900进行数据连接。数据未达到服务器。.SIM是在没有错误的情况下初始化了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();
}
您需要添加另一个'''才能完成URL和内容类型。
client.println("AT+HTTPPARA="URL","http://test.server/insert-path"");
client.println("AT+HTTPPARA="CONTENT","application/json"");
另外,尝试增加client.println("AT+HTTPDATA=99,10000");
数据输入延迟10到20s。