Arduino+SIM900A 通过http协议实现上传数据到云服务器

本文主要讲述Arduino和SIM900A通过HTTP协议将数据上传至云服务器上的相关操作,如果想了解 Zigbee和SIM900A的相关操作请看  http://blog.csdn.net/uyy203/article/details/55017571




主要使用AT命令



AT+CFUN=1
选择模式为 全功能模式

AT+SAPBR=1,1
打开承载,打开网络通道

AT+HTTPINIT
初始化HTTP

AT+HTTPPARA="CID","1"
设置承载上下文标识

AT+HTTPPARA="URL",http://120.9.9.129/xxx/update?tem=12"
设置要访问的url

AT+HTTPACTION=0

激活HTTP请求,0表示Get,1表示Post,2表示head

AT+HTTPREAD=0,60

读取返回信息,从第0到第60个字节


Arduino 代码

#include 
SoftwareSerial softSerial(10, 11);//自定义软串口 RX=10 TX=11
void setup() {
  Serial.begin(9600);
  softSerial.begin(9600);

  Serial.println("Initing...please wait.");
  //选择模式为 全功能模式
  softSerial.println("AT+CFUN=1");
  delay(15000);
  printLine();

  //打开承载,打开网络通道
  softSerial.println("AT+SAPBR=1,1");
  delay(5000);
  printLine();

  //初始化HTTP
  softSerial.println("AT+HTTPINIT");
  delay(500);
  printLine();

  Serial.println("finished init!");



}

void loop() {

  //设置承载上下文标识,每次登陆网页前都需要进行一次,不然网页缓存会造车频繁更新的数据无法通过url传值到web后台
  softSerial.println("AT+HTTPPARA=\"CID\",\"1\"");
  delay(500);
  printLine();

  //设置要访问的url,假设需要传tem字段,值为12,通过如下URL传值可以实现,当然web端要与之对应
  String sendDaata = "AT+HTTPPARA=\"URL\",\"http://120.9.9.129/xxx/update?tem=12\"";
  softSerial.println(sendDaata);
  delay(750);
  printLine();


  //激活HTTP请求,后面参数表示Http请求方式,参数0表示Get方式,1表示Post方式,2表示head方式。
  //  softSerial.flush();
  softSerial.println("AT+HTTPACTION=0");
  delay(2000);
  printLine();

  // 读取返回信息读取数据,从第0个字节到第60个字节
  softSerial.println("AT+HTTPREAD=0,60");
  delay(100);
  printLine();



  delay(2000);

}


//读取串口返回信息
void printLine() {
  String data;
  while (softSerial.available() > 0)
  {
    char c = softSerial.read();
    data += c;
  }
  Serial.println(data);
}





你可能感兴趣的:(硬件,C++)