【问题标题】:Sending datas using HTTP request using SIM 900使用 SIM900 使用 HTTP 请求发送数据
【发布时间】:2017-02-21 09:14:27
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    您需要添加另一个 '\"' 来完成 URL 和内容类型。

    client.println("AT+HTTPPARA=\"URL\",\"http://test.server/insert-path\"");
    client.println("AT+HTTPPARA=\"CONTENT\",\"application/json\"");
    

    另外,尝试增加client.println("AT+HTTPDATA=99,10000"); 数据输入延迟10s到20s。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      • 2014-12-24
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多