Сервер Sim900 + Arduino перестает слушать через некоторое время

Поэтому я пытаюсь создать сервер arduino + sim900 gprs, но через некоторое время сервер перестает отвечать на запросы http, статус все еще "прослушивается", но он просто не "обнаруживает" новые запросы. перезапуск соединения решает проблему,

ниже команды at и ответы от сервера:

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

Как я могу это исправить? это сводит меня с ума, sim900 поставляется с семенем студии gprs: www.seeedstudio.com/wiki/GPRS_Shield_V2.0

после некоторых попыток я пришел к выводу, что отправка нескольких запросов часто вызывает эту проблему, но этот CIPMUX равен 1, поэтому предполагается, что может быть до 10 множественных подключений.

1 ответ

Я нашел решение, но я не уверен, что оно будет работать для всех. Я обнаружил, что мне нужно отправить разрыв строки после запуска AT+CIPCLOSE, чтобы получить текст из буфера. Например:

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

Также следует отметить, что вам нужно как можно быстрее прочитать буфер, иначе он переполнится, и вы пропустите часть ответа

Другие вопросы по тегам