三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

在Arduino IDE中搭建ESP32和ESP8266开发环境

在Arduino IDE中搭建ESP32和ESP8266开发环境

ESP32简介

ESP32是基于乐鑫(Espressif)ESP32系列芯片的微控制器。其核心通常搭载双核处理器,主频可达240MHz,并集成Wi-Fi与蓝牙双模无线通信功能,配备SPI、I2C、ADC等多种外设接口,支持深度睡眠等低功耗模式 。该开发板主要用于物联网(IoT)、智能家居、传感器网络等嵌入式开发场景,支持Arduino IDE、ESP-IDF和MicroPython等多种开发环境 。
乐鑫在ESP8266之后推出了功能更强的ESP32芯片。基于该芯片,市场衍生出众多开发板型号,形成了丰富的产品系列,例如NodeMCU-32S、Lolin D32、Seeed Studio XIAO ESP32C3以及ESP32-S3-DevKitC-1等。不同型号在GPIO数量、存储配置(如是否包含PSRAM)及外设功能上存在差异,以适应从入门学习到边缘智能等不同开发需求 。

硬件配置

ESP32开发板以乐鑫公司推出的ESP32系列芯片或模组为核心构建。 不同型号的开发板可能采用不同的ESP32系列芯片或模组,例如基于ESP32-WROOM-32模组的经典型号、采用RISC-V架构的ESP32-C3系列,或性能更强的ESP32-S3系列。
其核心通常搭载双核Xtensa LX6 32位处理器,主频最高可达240MHz。 存储方面,通常内置约520KB的SRAM,Flash大小常见为4MB,部分型号提供更大容量的Flash或额外的PSRAM。
ESP32开发板集成2.4GHzWi-Fi,支持802.11 b/g/n协议,以及蓝牙(包括经典蓝牙和低功耗蓝牙BLE),通常支持蓝牙4.2或5.0。
开发板提供丰富的GPIO引脚,常见数量为34个,支持PWM、I2C、SPI、UART、ADC、DAC、触摸感应等多种接口。部分GPIO如GPIO0、GPIO2、GPIO12等为Strapping引脚,在启动时有特殊电平要求。
开发板通常集成USB转串口芯片如CP2102或CH340,部分型号支持USB-C直连。电源方面,常支持USB供电和外接锂电池供电,并可能集成锂电池充电管理电路。天线设计多为板载PCB天线或陶瓷天线。低功耗特性突出,深度睡眠模式下电流可低至10μA。


开发环境与工具

ESP32开发板支持多种开发环境与工具,开发者可根据项目需求和个人偏好灵活选择。主流方式包括对初学者友好的Arduino IDE、适合复杂项目的官方ESP-IDF框架以及便于快速原型开发的MicroPython等 。
Arduino IDE步骤包括安装Arduino IDE、添加ESP32支持并通过开发板管理器安装ESP32 by Espressif Systems。示例代码展示了如何点亮ESP32开发板上的内置LED(接GPIO2) 。部分第三方开发板(如DFRobot萤火虫ESP32)在硬件和软件上做了特殊设计,实现了Arduino引脚映射兼容,简化了开发流程。对于Arduino IDE做了引脚映射,可以直接传递Dx来配置引脚,使用方式上兼容UNO 。
ESP-IDF基于FreeRTOS,适合复杂项目 。乐鑫官方推荐使用IDF来进行开发 。安装需下载VSCode并安装ESP-IDF插件 。
ESP32也支持MicroPython来进行开发 ,其为一种脚本语言开发方式,适合快速原型开发 。
调试与烧录通过串口调试,连接ESP32的UART0(TX: GPIO1, RX: GPIO3),波特率通常设为115200 。


产品型号与选型

市面上标着“ESP32”的开发板超过200种,但真正能稳定跑OTA升级的不到三成。ESP32开发板的核心优势在于“刚刚好”,包括双核240MHz处理器、内置Wi-Fi 4 +蓝牙5.0双模、34个GPIO、12位ADC、深度睡眠电流仅10μA 。
主流型号包括NodeMCU-32S、Lolin D32、Seeed Studio XIAO ESP32C3、ESP32-S3-DevKitC-1等。NodeMCU-32S基于ESP32-WROOM-32模组,提供30个以上GPIO,无PSRAM,典型售价35至45元,部分批次存在供电不足问题,连接大电流外设时易复位。Lolin D32同样基于ESP32-WROOM-32模组,提供34个GPIO,板载锂电池充电电路,典型售价45至55元,社区支持好,适合电池供电项目。Seeed Studio XIAO ESP32C3基于ESP32-C3芯片,提供11个GPIO,尺寸为21×17.5毫米,典型售价28至35元,GPIO数量较少,仅适合轻量级物联网节点。ESP32-S3-DevKitC-1基于ESP32-S3-WROOM-1-N8R8模组,提供40个以上GPIO,配备8MB Flash和8MB PSRAM,支持USB OTG、LCD和Camera接口,典型售价65至80元,适合AIoT原型开发 。 DFRobot萤火虫ESP32基于ESP-WROOM-32双核芯片,支持USB和锂电池双供电,深度睡眠功耗为10微安,体积小巧,对Arduino IDE兼容性好 。ESP32-PICO-KIT-F是乐鑫官方的射频评估和开发套件,基于ESP32-PICO-D4 。
选型时,学生练手或入门学习可选NodeMCU-32S或Lolin D32;低功耗电池项目优先考虑ESP32-C3系列;带屏交互、AI语音或边缘智能应用需选择ESP32-S3,且至少选择N8R8配置;小批量量产预研可直接采购乐鑫原厂模组。需注意3.3V电平兼容性,许多标称兼容Arduino的传感器实际为5V逻辑,直接连接ESP32可能损坏IO口 。ESP32开发板适用于智能家居、工业传感器节点、教育领域;不推荐用于高清视频处理和高频实时控制场景 。

本次使用的模块型号是ESP-WROOM-32

引脚图如下

ESP8266简介

ESP8266 是乐鑫科技推出的低成本 Wi-Fi 芯片‌,集成了 32 位微控制器和无线功能,广泛用于物联网设备开发,支持 Arduino 和 MicroPython 编程。更多技术规格可查看乐鑫官网,开发资源可在GitHub 项目页获取。‌‌‌

芯片功能和核心参数

  1. 处理器性能‌:内置 32 位 Tensilica L106 处理器,最高运行频率 160 MHz,约 80% 算力可供用户程序使用。‌‌‌
  2. 无线能力‌:支持 802.11 b/g/n 三种 Wi-Fi 标准,可工作在三种模式:
    • STA 模式‌:连接现有 Wi-Fi 路由器,像手机一样上网。
    • AP 模式‌:自身创建热点,让其他设备连接。
    • STA+AP 模式‌:同时连接路由器并创建热点。‌‌‌
  3. 功耗表现‌:深度睡眠仅约 10 µA,空闲约 70 mA,发送数据时约 200 mA,适合电池供电设备。‌‌‌
  4. 存储和接口‌:闪存 512 KB 至 4 MB 不等,支持 UART、SPI、I2C 通信协议,最多 17 个 GPIO 引脚。‌‌‌

引脚连接和调试方法

  1. 常见型号引脚‌:ESP-01 是最小封装,仅 8 个引脚;ESP-12E 引脚更多,扩展性更强。
    • VCC‌:接 3.3V 电源(不要超过 3.6V,否则可能损坏)。
    • GND‌:接地。
    • TX/RX‌:串口通信,交叉连接(模块 TX 接单片机 RX)。
    • CH_PD/EN‌:芯片使能,需接 3.3V 高电平。
    • GPIO0‌:下载固件时接地,正常工作时接高电平。
    • RST‌:复位引脚,接地可重启模块。‌‌‌
  2. 电源注意事项‌:工作电压 3.0V-3.6V,瞬时电流可达 500 mA,建议用独立稳压模块供电,并在电源引脚附近加 10 µF 电容稳定电压。‌‌‌
  3. 连接手机热点调试‌:
    • 用串口工具(波特率 115200)发送AT指令,返回OK表示正常。
    • 发送AT+CWMODE=1设置为 STA 模式。
    • 发送AT+CWJAP="热点名称","密码"连接手机热点。
    • 发送AT+CIFSR查看获取的 IP 地址,成功即表示联网。‌‌‌
  4. 电平匹配‌:ESP8266 是 3.3V 器件,连接 5V 单片机(如 Arduino UNO)时需加电平转换模块,避免损坏。‌‌‌

编程软件和开发方式

  1. Arduino IDE 开发‌:
    • 下载 Arduino IDE 1.x 或 2.x 版本。
    • 在首选项中添加开发板管理地址:https://arduino.esp8266.com/stable/package_esp8266com_index.json
    • 在开发板管理器中搜索"esp8266"并安装。
    • 适合熟悉 Arduino 语法的开发者,库资源丰富。‌‌‌
  2. 其他开发方式‌:
    • MicroPython‌:用 Python 语法编程,适合 Python 开发者。
    • AT 指令‌:通过串口发送指令控制,适合快速原型验证。
    • 原生 SDK‌:性能最优但开发难度高,适合专业产品开发。‌‌‌
  3. 手机端 APP 开发‌:ESP8266 可作为 Web 服务器,手机浏览器直接访问控制;也可通过 MQTT 协议连接物联网平台(如贝壳物联),配合现有 APP 实现远程控制。‌‌‌

STM32和ESP32还有ESP8266比较

STM32、ESP32、ESP8266是嵌入式开发中定位差异明显的三款主流芯片,核心区别和选型建议如下:

1、核心基础参数对比

芯片核心架构主频内存资源原生无线能力
STM3232位Cortex-M系列最高72MHz(主流F1系列)64KB SRAM(F103)无原生Wi-Fi/蓝牙
ESP32双核Xtensa LX7最高240MHz512KB SRAM+支持PSRAM扩展2.4G Wi-Fi4+蓝牙5.0双模
ESP8266单核Tensilica L106最高160MHz40KB SRAM仅2.4G Wi-Fi单模


2、核心特性与适用场景

STM32‌
定位:通用工业级微控制器,外设接口丰富,实时性极强。
优势:模拟外设、控制精度表现优异,可通过外接ESP8266模块扩展联网能力。
适用场景:纯传感器采集、电机控制、工业逻辑控制等对实时性要求高的非联网项目。
ESP32‌
定位:高性价比物联网边缘主控,兼顾算力与无线能力。
优势:支持离线语音识别、轻量级AI推理、摄像头驱动,外设接口覆盖LCD、USB OTG等。
适用场景:带触摸屏的智能中控、离线语音交互设备、带AI功能的物联网节点。
ESP8266‌
定位:入门级Wi-Fi透传模块,主打低成本联网。
优势:体积小巧、价格亲民,AT指令开发门槛极低。
适用场景:仅需简单Wi-Fi透传的低复杂度物联网节点,是入门IoT项目的高性价比选择。

3、选型快速决策指南

纯逻辑控制、不需要联网:优先选‌STM32‌,成本和实时性最优。
需要Wi-Fi+蓝牙、想做多媒体/AI功能:直接选‌ESP32‌,无需额外外接模块。
仅需基础Wi-Fi透传、预算敏感:选‌ESP8266‌,完全满足基础联网需求。

要在Arduino IDE中开发ESP32和ESP8266微控制器,您需要安装适当的硬件支持包。以下是详细步骤:

1 安装Arduino IDE

首先确保您已安装最新版本的Arduino IDE:

从[Arduino官网](https://www.arduino.cc/en/software)下载并安装

使用管理员身份运行打开安装包,再点击我同意。

选择为使用这台电脑的任何人安装,点击下一步。

选择安装位置,点击安装。

安装好了,点击完成。

2添加ESP32和ESP8266硬件支持

方法一:通过Arduino IDE的板管理器安装

  1. 打开Arduino IDE
  2. 点击"文件" > "首选项"

3. 在"其他开发板管理器地址"字段中添加以下URL:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

https://dl.espressif.com/dl/package_esp32_index.json

https://git.oschina.net/dfrobot/FireBeetle-ESP32/raw/master/package_esp32_index.json点击"确定"保存。

4. 打开"开发板管理器"

5. 分别搜索"ESP32和ESP8266"

6. 分别找到"ESP32和ESP8266 "并点击"安装"

安装完成后就可以在工具中找到我们的开发板了。如果在线安装比较慢,可以使用其他方法。

方法二:下载安装包

  1. 在资料中找到ESP32和ESP8266安装包

通过网盘分享的文件:ESP32和ESP8266

链接: https://pan.baidu.com/s/1WbRYix14iPC4PNCOB2qHwQ 提取码: qy8h

2. 分别已管理员身份运行,安装成功后,就能在工具中找到开发板了。

方法三:ESP32离线安装工具

1. 在首选项中查看项目文件夹地址

2. 打开项目文件夹新建文件hardware

3.在资料中找到ESP32离线安装工具,解压后把两个文件复制到hardware文件中,然后以管理员身份运行arduino-esp32进行安装。安装成功后就可以在工具中找到ESP32开发板了。

4.通过网盘分享的文件:ESP32和ESP8266链接: https://pan.baidu.com/s/12OZs0a-G2W1fcw1DWkY1HQ 提取码: kn2h

3 新建项目

1.点击"文件" > "新建项目"。

2. 选择开发板对应的型号。

3. 选择端口

4测试安装

上传一个简单的示例:

void setup() { pinMode(2, OUTPUT); // 设置GPIO2为输出模式 } void loop() { digitalWrite(2, HIGH); // 点亮LED(高电平) delay(1000); // 保持1秒 digitalWrite(2, LOW); // 熄灭LED delay(1000); // 等待1秒 }

指示灯会闪烁,说明安装成功。

常见问题解决

1. 上传失败:

检查板子选择是否正确

检查USB线是否可靠连接

2. 串口不识别:

检查设备管理器中的端口

安装必要的驱动程序

3. 编译错误:

确保安装了所有必要的库

检查Arduino IDE版本是否最新

← 返回列表