Нужна помощь с SIM800L
- Войдите на сайт для отправки комментариев
Вс, 27/11/2016 - 20:28
Добрый день.
Не могу заставить SIM800L передать данные на сервер. Питание отдельное от внешнего источника 12V 2A. Земля общая. Понижающий DC-DC до 4.2V.
Потратил немало времени, прошу совета.
Пробую это делать так (ответы на команды ниже):
void gprs_init() { //Процедура начальной инициализации GSM модуля int d = 500; int ATsCount = 15; String ATs[] = { //массив АТ команд "AT", "AT+CPIN?", "AT+CREG?", "AT+CGATT?", "AT+CIPSHUT", "AT+CIPSTATUS", "AT+CIPMUX=0", "AT+CSTT=\"internet.mts.ru\",\"mts\",\"mts\"", "AT+CIICR", "AT+CIFSR", "AT+CIPSTATUS", "AT+CIPSTART=\"TCP\",\"narodmon.ru\",\"8283\"", "#20CF301E72C9\n#Tin1#-1.32\n##\x1A", "AT+CIPQSEND?", "AT+CIPSHUT", }; int ATsDelays[] = {1, 2, 2, 2, 2, 4, 2, 6, 4, 4, 2, 2, 2, 2, 2}; //массив задержек Serial.println("GPRG init start"); for (int i = 0; i < ATsCount; i++) { Serial.println(ATs[i]); //посылаем в монитор порта GSMport.println(ATs[i]); //посылаем в GSM модуль delay(d * ATsDelays[i]); Serial.println(ReadGSM()); //показываем ответ от GSM модуля delay(d); } Serial.println("GPRG init complete"); }
Получаю вот такие ответы:
GPRS test GPRG init start AT AT OK AT+CPIN? AT+CPIN? +CPIN: READY OK AT+CREG? AT+CREG? +CREG: 0,1 OK AT+CGATT? AT+CGATT? +CGATT: 1 OK AT+CIPSHUT AT+CIPSHUT SHUT OK AT+CIPSTATUS AT+CIPSTATUS OK STATE: IP INITIAL AT+CIPMUX=0 AT+CIPMUX=0 OK AT+CSTT="internet.mts.ru","mts","mts" AT+CSTT="internet.mts.ru","mts","mts" OK AT+CIICR AT+CIICR OK AT+CIFSR AT+CIFSR 10.171.135.238 AT+CIPSTATUS AT+CIPSTATUS OK STATE: IP STATUS AT+CIPSTART="TCP","narodmon.ru","8283" AT+CIPSTART="TCP","narodmon.ru","8283" OK CONNECT OK #20CF301E72C9 #Tin1#-1.32 ## #20CF301E72C9#Tin1#-1.32## AT+CIPQSEND? AT+CIPQSEND? +CIPQSEND: 0 OK AT+CIPSHUT AT+CIPSHUT GPRG init complete SHUT OK
Заранее благодарен.
Здравствуйте! Вы разобрались с TCP соединением?
Я вижу ошибки в вашем скетче:
после AT+CIPSTART должно быть AT+CIPSEND, после чего должно быть приглашение от модуля для ввода сообщения ">".
Сообщение должно завершаться символом "ctrl+z".
Так вот у меня из терминальной программы сообщение отправить получается, а с помощью ардуино нет.