如何将串行数据(URL)发送到sim800l以获取长字符串

时间:2019-05-17 07:53:33

标签: string arduino serial-port concatenation sim800

我尝试使用sim800l发送发帖请求,但是当我发送长字符串时,我遇到了一个奇怪的问题

我的串行控制台的输出

AT+SAPBR=3,1,"APN","free"
OK

AT+SAPBR=1,1
OK

AT+SAPBR=2,1

+SAPBR: 1,1,"10.124.170.82"
OK

AT+HTTPINIT
OK

AT+HTTPPARA="CID",1
OK

AT+HTTPPARA="URL",","http://naviwatt.fr/api/boat/AETFC58003****/*****/time/35"
AT+HTTPPARA="URL",","http://naviwatt.fr/api/boat/AETFC58003****
AT+HTTPACTION=1

ERROR

可能存在错误的部分

//setup the request
String request = "AT+HTTPPARA=\"URL\",\",\"http://naviwatt.fr/api/boat/" + Id + "/" + Password + "/time/" + counter + "\"";

Serial.println("" + request);

delay(200);
sim.println(request);
sleep();

和sleep();功能

void sleep(){
  String dump;
  delay(100);
  while(!sim.available()){
    Serial.print("waiting");
    delay(200);
  }
  while(sim.available()){
     dump = sim.readString();
     Serial.println(dump);
   }
}

Serial.println在控制台中打印要使用的正确字符串

但是当我将相同的字符串发送到sim800l时,URL似乎不完整

1 个答案:

答案 0 :(得分:0)

您的AT + HTTPPATA命令不正确。

应该是

AT+HTTPPARA="URL","http://naviwatt.fr/api/boat/AETFC58003****/*****/time/35"

代替

AT+HTTPPARA="URL",","http://naviwatt.fr/api/boat/AETFC58003****/*****/time/35"

它们在您的命令中是额外的,"

类似地,您的第二个命令应该是

AT+HTTPPARA="URL","http://naviwatt.fr/api/boat/AETFC58003****

代替

AT+HTTPPARA="URL",","http://naviwatt.fr/api/boat/AETFC58003****

您的设置请求应该是

String request = "AT+HTTPPARA=\"URL\",\"http://naviwatt.fr/api/boat/" + Id + "/" + Password + "/time/" + counter + "\"";