原文:https://blog.csdn.net/uyy203/article/details/54445725
本文主要讲述Arduino和SIM900A通过HTTP协议将数据上传至云服务器上的相关操作,如果想了解 Zigbee和SIM900A的相关操作请看 https://www.jianshu.com/p/4c69e7172aff
主要使用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);
}
网友评论