使用SIM 900

时间:2017-02-21 09:14:28

标签: http-post arduino-uno at-command

我正在尝试将一些手动数据从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();
}

1 个答案:

答案 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秒。