You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

双ESP8266通过WiFi HTTP传输温度数据时HTTPC连接失败问题求助

问题根因与修复方案

1. 服务端头文件冲突(首要故障原因)

你当前服务端代码同时引入了ESP32专属的WiFi.h和ESP8266的ESP8266WiFi.h,两套WiFi驱动冲突会导致软AP网络栈不稳定,出现连接成功但HTTP服务无响应的问题,先删除#include "WiFi.h"这一行。
另外ESP8266平台使用ESPAsyncWebServer需要配套引入ESPAsyncTCP.h,请在服务端头文件区域补充这行引入。

2. 服务端CPU调度优化

你当前服务端loop间隔仅10ms,几乎占满单核心CPU资源,导致异步WebServer没有足够算力处理网络请求,出现连接超时,做两处修改:

  • 降低A0采样频率,改为1秒采样1次即可,温度采样不需要10ms级的高频
  • loop末尾添加yield();,主动让出CPU资源给系统处理WiFi和网络请求
  • 补充voltage变量初始化,避免启动时读取未初始化值导致readTemp计算出非法值(负数/NaN),触发服务端崩溃

3. 客户端HTTP调用规范修复

新版ESP8266的HTTPClient库要求begin方法必须传入WiFiClient实例,你当前调用方式不符合规范会导致连接失败,修改客户端loop内的HTTP调用逻辑:

if (WiFi.status() == WL_CONNECTED) {
  WiFiClient client;
  HTTPClient http;
  // 必须传入client实例才符合新版库的调用要求
  if (http.begin(client, "http://192.168.4.1/temperature")) {
    int httpCode = http.GET();
    if (httpCode > 0) {
      String payload = http.getString();
      Serial.println("/////////////////////////////////////////////////////////////");
      Serial.println(payload);
    } else {
      Serial.println(http.errorToString(httpCode).c_str());
    }
    http.end();
  }
}

4. A0采样与WiFi冲突修复

ESP8266的ADC采样和WiFi射频工作存在硬件资源冲突,高频采样会干扰WiFi信号收发,修改采样逻辑:

  • 采样前临时关闭射频,采样完成后立刻恢复,代码示例:
    wifi_set_sleep_type(NONE_SLEEP_T);
    delay(1);
    sensorValue = analogRead(0);
    wifi_set_sleep_type(LIGHT_SLEEP_T);
    

5. 软AP稳定性优化

显式设置软AP最大连接数,避免多设备连接时溢出,修改软AP初始化代码:

// 最后一个参数设置最大连接数为2,足够客户端+手机调试使用
WiFi.softAP(ssid, password, 1, 0, 2);

内容的提问来源于stack exchange,提问作者Philipp Kleinheider

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 08:57:02