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

Arduino Uno连接ESP8266编译报错求助:找不到memory头文件

问题分析与解决办法

核心原因

你错误地在Arduino Uno的编译环境中使用了ESP8266主控芯片专属的ESP8266WiFi库——这个库是为ESP8266自身作为主控开发时设计的,并不适用于将ESP8266作为串口WiFi模块连接到Arduino Uno的场景,因此出现头文件缺失的编译错误。

解决步骤

  1. 移除错误库
    打开Arduino IDE,依次点击「项目」→「加载库」→「管理库」,搜索ESP8266WiFi后点击卸载。

  2. 切换适配方案
    针对“Uno+ESP8266模块”的组合,推荐两种实现方式:

    • 方式一:使用AT指令直接控制
      无需额外库,通过Arduino的串口向ESP8266发送AT指令,完成WiFi连接和ThingSpeak数据上传,示例代码如下:
      #include <SoftwareSerial.h>
      // Uno引脚2接ESP8266的TX,引脚3接ESP8266的RX
      SoftwareSerial espSerial(2, 3);
      
      void setup() {
        Serial.begin(9600);
        // ESP8266默认波特率为115200
        espSerial.begin(115200);
        delay(1000);
      
        // 连接WiFi,替换为你的WiFi名称和密码
        espSerial.println("AT+CWJAP=\"你的WiFiSSID\",\"你的WiFi密码\"");
        delay(5000);
      
        // 设置单连接模式
        espSerial.println("AT+CIPMUX=0");
        delay(1000);
      }
      
      void loop() {
        // 构造ThingSpeak请求,替换为你的API密钥和字段数据
        String tsRequest = "GET /update?api_key=你的ThingSpeakAPIKey&field1=25.3 HTTP/1.1\r\nHost: api.thingspeak.com\r\nConnection: close\r\n\r\n";
        
        espSerial.print("AT+CIPSEND=");
        espSerial.println(tsRequest.length());
        delay(1000);
        espSerial.print(tsRequest);
        
        // ThingSpeak免费版限制15秒一次上传
        delay(15000);
      }
      
    • 方式二:使用串口WiFi专用库
      安装ESP8266_AT_Library这类适配串口模块的库,通过封装好的API简化操作,避免直接编写AT指令。
  3. 确认编译环境
    在Arduino IDE的「工具」菜单中,确保选中的开发板是Arduino Uno,而非ESP8266系列开发板。

额外检查项

  • 接线注意:ESP8266模块的VCC必须接3.3V(接5V会烧毁模块),GND与Uno共地,RX/TX交叉连接(Uno TX→ESP8266 RX,Uno RX→ESP8266 TX),若模块有CH_PD引脚,需接3.3V以激活模块。
  • 模块可用性测试:通过串口监视器发送AT指令,若返回OK,说明模块工作正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 23:17:02