【问题标题】:esp8266 http client exampleesp8266 http 客户端示例
【发布时间】:2019-04-14 02:54:23
【问题描述】:

您好,我使用了 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。

【问题讨论】:

  • 打印payload的值会得到什么?
  • 尝试使用Serial.println(payload);打印有效载荷

标签: arduino esp8266


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    如果 LED 已打开,那么比较方法肯定是有效的。尝试从服务器发送不同的字符串,您的 LED 应该关闭。而且,当您遇到此类问题时,请尝试将“有效负载”打印到串行监视器。至少,你可以找出问题所在。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2010-11-09
      • 2015-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-15
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      相关资源
      最近更新 更多