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

原文:https://blog.csdn.net/uyy203/article/details/54445725

本文主要讲述Arduino和SIM900A通过HTTP协议将数据上传至云服务器上的相关操作,如果想了解 Zigbee和SIM900A的相关操作请看 https://www.jianshu.com/p/4c69e7172aff

主要使用AT命令

主要使用AT命令

Arduino 代码

#include <SoftwareSerial.h>
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);
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。