• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Ответ на исходящий POST запрос

skyax

New member
Приветствую!

Имеется Arduino Leonardo + esp8266 и удаленный веб-сервер.

Аrduino cчитывает данные с датчиков, AT командами подключает esp-шку к WiFi (esp на борту Arduino, в данном случае это не самостоятельный МК), esp отправляет POST запрос на сервер. Тут проблем нет. Все работает корректно.

Веб-сервер (node.js + express) парсит тело запроса, складывает данные в JSON. Последним, задается ответ со статусом 200 и значением 1. Ответ уходит именно с этим статусом и именно с этим значением. Со стороны сервера проблем нет.

Теперь задача: Как получить это значение из ответа? Дело в том что отталкиваясь от него нужно включать реле, да или хотя бы просто вывести его в Serial . Но как бы я не старался, ничего не получается. Возможно дело во времени ожидании этого самого ответа?

Проще говоря, как мне отправлять данные на включение реле с сервера?

Ниже код POST запроса :

Код:
void httppost () {
  Serial1.println("AT+CIPSTART=\"TCP\",\"" + server + "\",80");

  while (Serial1.available()) Serial.write(Serial1.read());
  if( Serial1.find("OK")) {
    Serial.println("TCP connection ready");
  }
  delay(1000);

  String postRequest =
  "POST " + postUri + " HTTP/1.0\r\n" +
  "Host: " + server + "\r\n" +
  "Accept: *" + "/" + "*\r\n" +
  "Content-Length: " + data.length() + "\r\n" +
  "Content-Type: application/x-www-form-urlencoded\r\n" +
  "\r\n" + data;

  String sendCmd = "AT+CIPSEND=";
  Serial1.print(sendCmd);
  Serial1.println(postRequest.length());
  delay(500);

  if(Serial1.find(">")) {
    Serial.println("Отправка данных..");
    Serial1.print(postRequest);

    if(Serial1.find("SEND OK")) {
      Serial.println("Данные отправлены");
    }
  }
}
 
Сверху Снизу