Sim900 + arduino server stops listening after a while

1.6k Views Asked by At

So I try to make an arduino + sim900 gprs server, but after a while the server stops responding to http requests, the status is still "listening" but it just doesn't "discover" any new requests. restarting the connection fixes the problem,

below is the at commands and replies from the server:

AT+CREG?

+CREG: 0,1
AT+CSCLK=0

OK
AT+CIPMUX=1

OK
AT+CIPMODE=0

+CME ERROR: 3

AT+IFC=2,2

OK
AT+CGATT=1

OK
AT+CIPRXGET=1

OK
AT+CIPCSGP=1,"publicip.net.il","",""

OK
AT+CSTT

OK
AT+CIICR

OK
AT+CIFSR

2.
AT+CSQ

+CSQ: 22,0

OK
AT+CIPSERVER=1,80

OK

SERVER OK


0, REMOTE IP
AT+CIPRXGET=2,0,1024
: 192.163.218.62

+CIPRXGET:1,0

+CIPRXGET:2,0,53,0
GET /get HTTP/1.1
Host: 2.55.73.164
Accept: */*
SEND DATA
SEND_DATA FUNCTION::
AT+CIPSEND=0,221

>
1;1000;2000;0;0;1;2;0;0;0;1;1000;2000;0;0;1;2;0;0;0;1;0;10;0;0;1;2;0;0;0;1;0;10;0;0;1;2;0;0;0;1;0;10;1;0;1;2;0;0;0;1;0;10;1;0;1;2;0;0;0;1;0;10;1;0;1;2;0;0;0;1;0;10;0;0;1;2;0;0;0;0;1;941;0;1003166680;0;0;51;52;20;31;5;2013

0, SEND OK
AT+CIPCLOSE=0,0

0, CLOSE OK

how can I fix this? it drives me crazy, the sim900 comes with seed studio gprs sheild: www.seeedstudio.com/wiki/GPRS_Shield_V2.0

after some tries I came to realize that sending multiple requests often cause this issue, but this CIPMUX is 1 so there suppose to be up to 10 multiple connections..

1

There are 1 best solutions below

1
On

I found a solution however I am not sure if it will work for everyone. I found that I need to send a linebreak after running AT+CIPCLOSE to get the text out of the buffer. For example:

SIM900.println((char)26);
SIM900.println("");
SIM900.println("AT+CIPCLOSE");
SIM900.println("");

Also another thing to note is that you need to read the buffer as fast as possible or else it will overflow and you will miss some of the response