Проверка AT-команды не отображается на последовательном мониторе

esp32 sim800

Я не могу проверить 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!");
  }
}

, 👍1

Обсуждение

Объявление url2 может быть важным для интерпретации gsm_send_serial("AT+HTTPPARA=URL," + url2... Было бы лучше предоставить все задействованные объявления переменных, если бы не компилируемый и тестируемый код., @timemage

каково значение httpReadResponse.indexOf("OK")?, @jsotola

ЗНАЧЕНИЕ «ОК» В СЕРИАЛЕ, @Fabio Henrique

Выведите значение ответа, т.е. Serial.println(httpReadResponse);, @Nick Gammon

String httpReadResponse = gsm_send_serial ("AT+HTTPREAD"); Как определяется функция gsm_send_serial()? Вы явно ожидаете, что он вернет строку в тех обстоятельствах, когда вы ее используете. Кроме того, какой экземпляр «Serial» подключен к последовательному монитору? Например, работает ли Serial.println("Hello World")? Какой последовательный экземпляр подключен к устройству GSM?, @6v6gt

Было бы полезно, если бы вы предоставили минимальный компилируемый пример кода, демонстрирующий вашу проблему. Как подключен SIM800, чтобы последовательный монитор и Arduino видели ответ модулей AT?, @chrisl


1 ответ


0

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». поскольку существует множество сайтов, на которых документ доступен без необходимости регистрации.

,