Reputation: 11
I have a problem with this simple code.
#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()));
}
Receipt few characters, the output is this:
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"
But, realy, the output should be:
Numero de accesos: 77 | Identificador: 4l02pnl828o3kctg4strc87ed1
Exactly like: HTTPREAD missing characters with Arduino and SIM900
Any ideas or help?
Thanks!
Upvotes: 1
Views: 757
Reputation: 3831
Numero de accesos: 77 | Identifica
is 34 charcters. This means that sim900 gives back 66 characters which is the correct length.
Try to increase the delay before ShowSerialData
or wait until you have 66 bytes
in serial buffer.
Upvotes: 1