Проверка AT-команды не отображается на последовательном мониторе
Я не могу проверить AT-команду. Есть ли у кого-нибудь какие-либо предложения относительно того, что я могу делать неправильно? Должно быть напечатано сообщение "Отправка успешна!" или "Отправка не удалась!", но никакого текста не отображается.
if (httpReadResponse.indexOf("OK") != -1) {
Serial.println("Envio bem-sucedido!");
} else {
Serial.println("Falha no envio!");
}
Мой последовательный монитор печатает это:
AT+HTTPDATA=192,5000\ СКАЧАТЬ\ ХОРОШО\ AT+HTTPACTION=0\ ХОРОШО\ AT+HTTPREAD
Полная функция:
void sendHttpRequest(int distance_cm) {
gsm_send_serial("AT+HTTPINIT");
gsm_send_serial("AT+HTTPPARA=CID,1");
gsm_send_serial("AT+HTTPSSL=1");
gsm_send_serial("AT+HTTPPARA=URL," + url2 + "/" + distance_cm + "/" + id_cliente + "/" + id_caixa + "/" + ipadd1 + "/" + sinal + "/" + totalMilliLitres + "/" + vazao_atual + "/" + apikey);
gsm_send_serial("AT+HTTPPARA=CONTENT,application/x-www-form-urlencoded");
gsm_send_serial("AT+HTTPDATA=192,5000");
gsm_send_serial("param=Aqualizar");
gsm_send_serial("AT+HTTPACTION=0");
String httpReadResponse = gsm_send_serial("AT+HTTPREAD");
gsm_send_serial("AT+HTTPTERM");
if (httpReadResponse.indexOf("OK") != -1) {
Serial.println("Sending successful!");
} else {
Serial.println("Sending failed!");
}
}
@Fabio Henrique, 👍0
Обсуждение1 ответ
AT+HTTPACTION=0
AT+HTTPACTION=0
запускает сеанс GET. На основе вашего кода вы должны создать сеанс POST, который должен иметь вид AT+HTTPACTION=1
.
Прочитайте SIM800 Series_IP_Application Note, в котором приведены примеры запросов GET и POST на основе набора AT-команд SIMCOM HTTP. Рекомендации по применению можно найти на веб-сайте SIMCOM (для бесплатной загрузки требуется регистрация) или просто в Google «SIM800 Series_IP_Application Note». поскольку существует множество сайтов, на которых документ доступен без необходимости регистрации.
- ESP32 — SIM800 — HTTPS lwIP
- ESP Sim800l Firebase
- Ошибка Выполнения HTTP GET - запроса на google sheets (Apps Script) с помощью TTGO T-CALL
- Ошибка ftp sim800l после http-запроса
- Как перехватывать ответы GSM SIM800L всякий раз, когда отправляется AT-команда?
- esp32, platformio A fatal error occurred: Packet content transfer stopped (received 8 bytes) *** [upload] Error 2
- Как выбрать альтернативные контакты I2C на ESP32?
- Драйверы для чипа последовательного порта CH9102X
Объявление
url2
может быть важным для интерпретацииgsm_send_serial("AT+HTTPPARA=URL," + url2
... Было бы лучше предоставить все задействованные объявления переменных, если бы не компилируемый и тестируемый код., @timemageкаково значение
httpReadResponse.indexOf("OK")
?, @jsotolaЗНАЧЕНИЕ «ОК» В СЕРИАЛЕ, @Fabio Henrique
Выведите значение ответа, т.е.
Serial.println(httpReadResponse);
, @Nick GammonString httpReadResponse = gsm_send_serial ("AT+HTTPREAD");
Как определяется функция gsm_send_serial()? Вы явно ожидаете, что он вернет строку в тех обстоятельствах, когда вы ее используете. Кроме того, какой экземпляр «Serial» подключен к последовательному монитору? Например, работает ли Serial.println("Hello World")? Какой последовательный экземпляр подключен к устройству GSM?, @6v6gtБыло бы полезно, если бы вы предоставили минимальный компилируемый пример кода, демонстрирующий вашу проблему. Как подключен SIM800, чтобы последовательный монитор и Arduino видели ответ модулей AT?, @chrisl