SIM900 AT-команда HTTP GET-запрос не отображает веб-страницу

gsm

Я создаю простой 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. Но я ничего не вижу. Что со мной не так?

, 👍1

Обсуждение

Прежде чем делать что-либо по HTTP, вам следует ввести «AT+SAPBR=2,1» и посмотреть, действительно ли вы подключены к каналу связи. Он должен вернуть «+SAPBR: 1,1,aa.bb.cc.dd»., @Majenko

Он возвращает +SAPBR: 1,3, «0.0.0.0». Что это сказано?, @Tama

Это означает, что вы не подключены., @Jake C


4 ответа


0

Проверьте свое соединение. Попробуйте проверить IP-адрес вашего Arduino, и вместо использования AT-команд используйте эту библиотеку, это проще и приятнее https://github .com/amcewen/HttpClient

,

как узнать мой IP-адрес? мое устройство работает на SIM-карте, @Tama


2

Судя по вашим результатам, похоже, что 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.

,

0

Вам придется подождать после AT+HTTPACTION=0 некоторое время, пока не появится что-то вроде +HTTPACTION:0,200,1240

Затем продолжайте AT+HTTPREAD, вы увидите результат.

Наконец, завершите HTTP.

,

0

после нескольких дней борьбы с асинхронностью и ограничением размера последовательного буфера (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, который уже найден в моем скетче< /п>

,