【问题标题】:SIM900 gprs web with arduinoSIM900 gprs web with arduino
【发布时间】:2015-11-26 07:45:13
【问题描述】:

我对这个简单的代码有疑问。

#include <SoftwareSerial.h>

SoftwareSerial SIM900(7, 8); // configure software serial port

void setup() {     
  pinMode(9, OUTPUT);
  digitalWrite(9, HIGH);

  SIM900.begin(19200);
  Serial.begin(19200); 
  Serial.println("power up" );
  delay(15000); 
}

void loop()
{
  Serial.println("SubmitHttpRequest - started" );
  SubmitHttpRequest();
  //callSomeone();
  Serial.println("SubmitHttpRequest - finished" );
  delay(10000);

}

void SubmitHttpRequest()
{
  SIM900.println("AT+CSQ"); // Signal quality check
  delay(100);
  ShowSerialData();

  SIM900.println("AT+CSQ"); // Signal quality check
  delay(100);
  ShowSerialData();

  SIM900.println("AT+CGATT?"); //Attach or Detach from GPRS Support
  delay(100);
  ShowSerialData();

  SIM900.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");
  delay(1000);
  ShowSerialData();

  SIM900.println("AT+SAPBR=3,1,\"APN\",\"gprs-service.com\"");
  delay(1000);
  ShowSerialData();

  SIM900.println("AT+SAPBR=1,1");
  delay(1000);
  ShowSerialData();

  SIM900.println("AT+HTTPINIT"); //init the HTTP request
  delay(1000); 
  ShowSerialData();

  SIM900.print("AT+HTTPPARA=\"URL\",\"http://xxxxxx.com/master.php");
  SIM900.println("\"");
  delay(1000);
  ShowSerialData();

  SIM900.println("AT+HTTPACTION=0");//submit the request 
  delay(10000);
  ShowSerialData();

  SIM900.println("AT+HTTPREAD");// read the data from the website you access
  delay(500);
  ShowSerialData();

  SIM900.println("");
  delay(100);

  SIM900.println("AT+HTTPTERM");// read the data from the website you access
  delay(300);
  ShowSerialData();
}

void getContent()
{
  String content = "";
  while(SIM900.available() != 0)
  {
    content = content + String(char(SIM900.read()));
    Serial.write(char(SIM900.read()));
    delay(500);
    Serial.flush();
  }
}

void ShowSerialData()
{
  while(SIM900.available()!=0)
    Serial.write(char (SIM900.read()));
}

接收几个字符,输出是这样的:

power up
SubmitHttpRequest - started
AT+CSQ

+CSQ: 25,0

OK
AT+CSQ

+CSQ: 25,0

OK
AT+CGATT?

+CGATT: 1

OK
AT+SAPBR=3,1,"CONTYPE","GPRS"

OK
AT+SAPBR=3,1,"APN","gprs-service.com"

OK
AT+SAPBR=1,1

OK
AT+HTTPINIT

OK
AT+HTTPPARA="URL","http://xxxxxx.com/master.php"

OK
AT+HTTPACTION=0

OK

+HTTPACTION:0,200,66
AT+HTTPREAD

+HTTPREAD:66
Numero de accesos: 77 | Identifica
AT+HTTPTERM

OK
SubmitHttpRequest - finished

==> "Numero de accesos: 77 | Identifica"

但是,实际上,输出应该是:

访问数量:77 |标识符:4l02pnl828o3kctg4strc87ed1

一模一样:HTTPREAD missing characters with Arduino and SIM900

有什么想法或帮助吗?

谢谢!

【问题讨论】:

    标签: arduino gprs sim900


    【解决方案1】:

    Numero de accesos: 77 | Identifica 是 34 个字符。这意味着 sim900 返回 66 个字符,这是正确的长度。

    尝试增加ShowSerialData 之前的延迟或等到串行缓冲区中有66 bytes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-01
      相关资源
      最近更新 更多