SIM900 AT-команда HTTP GET-запрос не отображает веб-страницу
Я создаю простой HTTP-запрос GET с помощью SIM900. Вот оно:
-----1-----
AT+CSQ
+CSQ: 25,0
OK
-----2-----
AT+CGATT?
+CGATT: 1
OK
-----3-----
AT+SAPBR=3,1,"CONTYPE","GPRS"
OK
-----4-----
AT+SAPBR=3,1,"APN","indosatgprs"
OK
-----5-----
AT+SAPBR=1,1
OK
-----6-----
AT+HTTPINIT
ERROR
-----6.1-----
AT+HTTPPARA="CID",1
OK
-----7-----
AT+HTTPPARA="URL","http://www.minimalsites.com"
OK
-----8-----
AT+HTTPACTION=0
OK
-----9-----
AT+HTTPREAD
OK
-----10-----
AT+HTTPTERM
ERROR
+HTTPACTION:0,200,1240
-----10.0-----
AT+SAPBR=0,1
OK
Шаг 9. AT+HTTPREAD Я должен был увидеть HTML-код с http://www.minimalsites.com. Но я ничего не вижу. Что со мной не так?
@Tama, 👍1
Обсуждение4 ответа
Проверьте свое соединение. Попробуйте проверить IP-адрес вашего Arduino, и вместо использования AT-команд используйте эту библиотеку, это проще и приятнее https://github .com/amcewen/HttpClient
как узнать мой IP-адрес? мое устройство работает на SIM-карте, @Tama
Судя по вашим результатам, похоже, что AT+HTTPINIT
вернул ошибку. Это означает, что служба HTTP даже не была успешно активирована. Таким образом, команды, которые вы дали позже, никоим образом не могли быть успешными. Согласно руководству по командам AT, AT+HTTPINIT необходим, прежде чем вы сможете выполнять какие-либо действия, связанные с HTTP.
Вам нужно запустить команду AT+CGATT=1
, чтобы подключить GPRS, даже если ваш запрос показывает, что его значение уже равно 1.
Также может быть, что ваша APN требует аутентификации с использованием имени пользователя и пароля. Итак, как только вы узнаете имя пользователя и пароль, авторизованные «indosatgprs» (служба поддержки клиентов?), вы сможете использовать их в следующих командах.
AT+SAPBR=3,1,"USER","Enter the username here"
AT+SAPBR=3,1,"PWD","Enter password"
Обе команды должны вернуть OK в случае успеха. Чтобы просмотреть все установленные вами параметры, вы можете использовать AT+SAPBR=4,1
. Если все параметры удовлетворительны и у вас достаточно эфирного времени на SIM-карте, то можно попробовать AT+HTTPINIT
. Только если эта команда вернет «ОК», вам следует приступить к выполнению команд, связанных с AT+HTTPPARA
.
Вам придется подождать после AT+HTTPACTION=0
некоторое время, пока не появится что-то вроде +HTTPACTION:0,200,1240
Затем продолжайте AT+HTTPREAD
, вы увидите результат.
Наконец, завершите HTTP.
после нескольких дней борьбы с асинхронностью и ограничением размера последовательного буфера (64 байта). Я нашел это.
Эта ссылка мне поможет, она использует стандартную библиотеку SoftwareSerial, и мой большой текстовый файл размером 1100 байт или мой html-файл (5814 байт) загружаются снова и загружаются снова. снова без проблем!
https://www.youtube.com/watch?v=cpgQOmQwUL8&t=1263s http://www.iforce2d.net/sketches/gsm_HTTPGet.zip Примечание: я меняю его на AltSoftSerial, тоже без проблем. Спасибо, iforce2d
ps: вы также можете использовать библиотеку «ModuleSerial-master», но мне нужно сохранить место для другого кода (который уже использует 74% 2 КБ ОЗУ), поэтому я придерживаюсь AltSoftSerial, который уже найден в моем скетче< /п>
- Проблема с получением SMS - GSM-модуль Arduino Uno и SIM900A
- SIM900 3G? Или SIM900A умеет подключаться к 3G?
- Мини-модем SIM900a, IMEI 0, помощь с контактами TX RX
- Как получить данные из базы данных моего сервера в переменную в моем Arduino?
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- SIM800L не регистрируется в сети
- Как проверить, работает ли GSM-модуль?
- Как отправлять сообщения на несколько номеров с помощью модуля Arduino uno и SIM800?
Прежде чем делать что-либо по HTTP, вам следует ввести «AT+SAPBR=2,1» и посмотреть, действительно ли вы подключены к каналу связи. Он должен вернуть «+SAPBR: 1,1,aa.bb.cc.dd»., @Majenko
Он возвращает +SAPBR: 1,3, «0.0.0.0». Что это сказано?, @Tama
Это означает, что вы не подключены., @Jake C