将数据从SIM800发送到服务器

3

有人可以帮我吗?

我在将数据从SIM800C发送到网站时遇到了问题。

第一个问题是,我将以下代码上传到Arduino(我使用Arduino IDE中的串行监视器向SIM800发送AT命令并读取响应)。

#include <SoftwareSerial.h>

#define TX 10
#define RX 11
#define t 2000

SoftwareSerial mySerial(RX, TX);
int k=0, aS=0, amS=0;

void setup() {
  Serial.begin(9600);
  while(!Serial); // Wait for Serial ready
  Serial.println("Intalizing...");
  mySerial.begin(9600);
  delay(5000);
  mySerial.println("AT"); // Send the first AT command to auto set baud rate
  delay(1000);
  Serial.println("You can type AT command and send to SIM800 by using Serial Monitor");
}

void loop() {
  k=0;
  aS=Serial.available();  // aS: The number of bytes available to read from the buff of Serial
  amS=mySerial.available(); // amS: The number of bytes available to read from the buff of mySerial
  while(aS>0) {
    mySerial.write(Serial.read());
    k=1; aS--;
  }
  if (k==1) {
    mySerial.println();
  }
  while (amS>0) {
    Serial.write(mySerial.read());
    k=2; amS--;
  }
  delay(1000);
}

接下来,我将逐一发送以下 AT 命令并查看响应。所有 AT 命令和响应都可以在串口监视器上看到。
AT+SAPBR=3,1,"Contype","GPRS"
AT+SAPBR=3,1,"APN","m3-world"
AT+SAPBR=3,1,"USER","mms"
AT+SAPBR=3,1,"PWD","mms"
AT+CSTT="m3-world","mms","mms"
AT+SAPBR=1,1
AT+HTTPINIT
AT+HTTPPARA="CID",1
AT+HTTPPARA="URL","http://weatherstation.byethost3.com/"
AT+HTTPDATA=9,10000
value=YOU
AT+HTTPACTION=1

最后的回复显示数据(value=YOU)已经成功发送。
OK
++HTTPACTION:1,200,839

我创建了一个网站以使用GET方法读取数据。 我的问题是网站上没有任何变化。这意味着该网站尚未从SIM800发送的数据中读取到内容。


如果你想要数据作为GET请求,为什么要将它们作为POST参数发送呢? - gre_gor
抱歉,我使用GET方法(AT+HTTPACTION=0)得到了相同的结果。 - Huy Nguyen
1个回答

0

你的示例正在发送POST请求。如果您想使用名称/值对发送GET请求,则应该稍微改变结构。将上面的示例更改为:

AT+SAPBR=3,1,"CONTYPE","GPRS"
AT+SAPBR=3,1,"APN","m3-world"
AT+SAPBR=3,1,"USER","mms"
AT+SAPBR=3,1,"PWD","mms"
AT+SAPBR=1,1
AT+HTTPINIT
AT+HTTPPARA="CID",1
AT+HTTPPARA="URL","http://weatherstation.byethost3.com/?value=YOU"
AT+HTTPACTION=0

请注意,现在URL中的名称/值对已更改,并且AT+HTTPACTION=1已更改为AT+HTTPACTION=0,以表示GET而不是POST。

感谢您的答复。我解决了这个问题。我的问题是我的服务器阻止了所有IP访问,所以我换了一个服务器。现在一切都很好。 - Huy Nguyen
1
这是在SIM800上进行HTTP GET的正确顺序,以防其他人也遇到此问题。请确保您的调制解调器首先已在GSM网络中注册。 - skot9000

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接