Пример http-клиента esp8266 - PullRequest
0 голосов
/ 09 марта 2019

Привет, я использовал esp8266 пример клиента http модуля, и мой код точно такой же, как пример кода.

Это часть моего кода:

if (httpCode > 0) {
    if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) {
        String payload = http.getString();

        if(payload=="text") {
            digitalWrite(LED_BUILTIN, HIGH);
        } else {
            digitalWrite(LED_BUILTIN, LOW);
        }
    }
}

Я не могу сравнить мою переменную с моим текстом, и LED_BUILTIN всегда включен.Я уверен, что он может получить текст страницы клиента http, потому что я могу отправить его в Arduino nano с softwareserial.

Ответы [ 2 ]

0 голосов
/ 13 апреля 2019

Если светодиод был включен, то метод сравнения определенно работал. Попробуйте отправить другую строку с сервера, ваш светодиод должен быть выключен. А также, когда у вас возникли подобные проблемы, попробуйте распечатать «полезную нагрузку» на последовательном мониторе. По крайней мере, вы могли бы выяснить, где неисправность.

надеюсь, что это поможет.

0 голосов
/ 10 марта 2019

На самом деле, когда я хочу отправить его в Arduino Nano, он выдает мне ошибку: нет соответствующей функции для вызова HardwareSerial::write(String&)

я могу исправить ошибку с помощью этого примера кода

String mystring= http.getString();

  char* buf = (char*) malloc(sizeof(char)*myString.length()+1);
  myString.toCharArray(buf, myString.length()+1);
  Serial.write(buf);
  free(buf);

но модуль esp8266 не может сравнить полезную нагрузку с моим текстом

...