esp8266 http客户端示例

问题描述 投票:0回答:2

您好我使用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客户端页面的文本,因为我可以使用softwareserial将其发送到Arduino nano。

arduino esp8266
2个回答
0
投票

实际上,当我想将它发送到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模块无法将有效负载与我的文本进行比较


0
投票

如果LED打开,那么比较方法肯定是有效的。尝试从服务器发送不同的字符串,您的LED应该关闭。而且,当您遇到这样的问题时,请尝试将“有效负载”打印到串行监视器。至少,你可以弄清楚故障的位置。

希望这个帮助。

© www.soinside.com 2019 - 2024. All rights reserved.