SIM900 не работают at команды прикладного уровня
- Войдите на сайт для отправки комментариев
Втр, 04/02/2020 - 13:27
Все at команды прикладного уровня не воспринимаются моим SIM900. Я не могу выполнить ни одну команду из категорий "AT Commands for IP Application" и "AT Commands for HTTP Application". Настроить TCP клиент у меня получилось, а дальше не получается. HTTP сервис не запускается, настройки "Bearer Settings for Applications Based on IP" (они же AT+SAPBR=********) не принимаются, после ввода команд выводится просто ERROR. Подозреваю что мой модуль на SIM900 не поддерживает работу с HTTP службой, только не знаю как проверить.
Вывод с консоли:
AT
OK
AT+CIPSHUT
SHUT OK
AT+CIPSTATUS
OK
STATE: IP INITIAL
AT+CIPMUX=0
OK
AT+CSTT= internet, gdata, gdata
+CME ERROR: operation not allowed
AT+CSTT= \"internet\", \"gdata\", \"gdata\"
+CME ERROR: operation not allowed
AT+CSTT= "internet", "gdata", "gdata"
OK
AT+CIICR
OK
AT+CIFSR
10.252.148.125
AT+SAPBR=3,1,"CONTYPE", "GPRS"
ERROR
AT+SAPBR=3,1,"APN", "gdata"
ERROR
AT+SAPBR=3,1,"APN", "internet"
ERROR
AT+SAPBR=3,1,"APN","internet"
ERROR
Точнее я думаю, что у меня не та версия прошивки, но я не знаю где посмотреть на каких версиях что доступно
мне кажется вы какие-то не те команды пытаетесь использовать.
После получения IP-адреса уже никакие GPPS не нужны. Вы уже вышли на уровень TCP/IP, надо просто коннектится к серверу и все
что-то типа так: ("AT+CIPSTART=\"TCP\",\"www.google.com\"', 80\r\n")
вот вам типичная сессия с использованием sim800. для sim900 отличия в мелочах
ссылка
https://exploreembedded.com/wiki/Setting_up_GPRS_with_SIM800L
Да, это способ работает, спасибо
Зачем все эти заморочки, СИМко-зависимость и т.п? Контекст открывать не обязательно, подключайтесь сходу как зарегистрируетесь в сети по уведомлению SMS Ready например:
Контекст нужен если используете LBS - геолокацию, синхронизируете время по оператору или используете подобные GSM - фичи.
На самом деле я вас обманул. Ответ от сервера не приходит. У меня все заканчивается на строке SEND OK. При этом соединение не разрывается.
Отдельно проверял качество сети, вроде показания в норме
Обманул дважды, сервер ответил спустя 5 минут
Вот еще немного о настройках
зачем вы к тому серверу подключаетесь, он неизвестно где и не факт, что вообще работает
Проверьте на чем-нибудь заведомо быстром, типа сайта Яндекса
Подключился к гуглу, все работает, спасибо
Основная проблема из за чего я не мог отправить запрос оказалась в том, что ОБЯЗАТЕЛЬНО нужно добавлять пустую строчку после http запроса и потом писать символ ctrl+z (в моем случае это квадрат в терминале). Этот момент я подсмотрел здесь https://electronics.stackexchange.com/questions/209672/sim800-http-get-request-time-out . Иначе модуль не отправит сообщение, а сервер будет долго ожидать запрос.
После я попробовал подключиться к своему серверу и тут нужно было ОБЯЗАТЕЛЬНО указать хост в запросе
Для чистоты эксперимента проверил и сайт из вашего примера, все работает
Ну да, всё будет работать, если правильно формировать HTTP-запросы :) Что вы и продемонстрировали ;) А когда неправильно сформирован запрос - то и результат, в зависимости от - может быть разный. Вон, в вашем случае сервер честно ждал один раз, когда к нему полностью запрос поступит. Но - не дождался, и отрапортовал о таймауте.
В общем же случае - есть официальный RFC для протокола HTTP - там изложены все тонкости этого протокола. Если хотите реально понимать, что происходит и как с этим работать - советую ознакомиться хотя бы рамочно.
Теперь понятно что гуглить, спасибо
Кроме того все SIMCom'ы поддерживают HTTP на аппаратном уровне. User guide листали?