Arduino IDE环境搭建与点亮ESP32 D1板载LED

手把手教你从零开始配置开发环境,并运行第一个ESP32程序

引言

ESP32 D1 R32 是一款极具性价比的开发板,它兼容Arduino UNO的引脚布局,同时搭载了强大的ESP32芯片(双核240MHz、Wi-Fi+蓝牙)。很多创客用它来制作智能家居、机器人、物联网项目。然而,对初学者来说,从零搭建开发环境并成功上传第一个程序往往会遇到不少坑。

本文将用最详细、最易懂的方式,带你完成以下任务:

  • 在Windows系统上安装Arduino IDE
  • 为Arduino IDE添加ESP32开发板支持
  • 安装D1 R32的USB转串口驱动(CH340)
  • 编写并上传一个"点亮板载LED"的程序
  • 常见问题排查

相信读完本文,你就能让板子上的LED闪烁起来,为后续更复杂的项目打下坚实基础。

一、准备工作

你需要准备:

  • ESP32 D1 R32开发板一块
  • USB数据线一条(必须支持数据传输,很多充电线不行)
  • 一台运行Windows 10/11的电脑

二、安装Arduino IDE

1. 下载安装包

打开浏览器,访问Arduino官网

选择 Windows Win 10 and newer, 64 bits 版本,点击下载。推荐下载 .exe 安装程序(例如 arduino-ide_2.x.x_Windows_64bit.exe)。

2. 安装

双击下载的安装包,一路点击 I AgreeNextInstall。建议使用默认安装路径(C:\Program Files\Arduino IDE),避免中文字符。

安装完成后,桌面会出现Arduino IDE的快捷方式。

三、为Arduino IDE添加ESP32开发板支持

Arduino IDE默认只支持Arduino自家的板子(Uno、Nano等)。要支持ESP32,需要手动安装"开发板支持包"。

1. 打开开发板管理器

  • 启动Arduino IDE
  • 点击菜单栏 工具 → 开发板 → 开发板管理器

2. 添加ESP32的JSON索引地址

我们需要先告诉IDE去哪里找ESP32的板包。有两种方法:

方法一(推荐,一劳永逸)

  • 点击菜单 文件 → 首选项
  • 附加开发板管理器网址 右侧点击图标,粘贴以下地址(任选一个):
    • 官方地址:https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
    • 国内镜像(速度快):https://dl.espressif.com/dl/package_esp32_index.json
  • 点击 确定

方法二(临时,仅本次安装)

在开发板管理器左上角的搜索框直接输入 esp32,然后点击右下角的 更多选项添加 .json 链接,同样粘贴上述地址。

3. 安装esp32平台

  • 在开发板管理器的搜索框中输入 esp32
  • 找到 esp32 by Espressif Systems ,选择最新稳定版本(例如 3.3.8
  • 点击 安装

安装过程可能需要数分钟,因为会下载工具链、编译器、库文件等。如果下载缓慢,可以更换镜像地址后重试。

4. 选择开发板

安装完成后,点击 工具 → 开发板 → ESP32 Arduino ,选择 ESP32 Dev Module。这是D1 R32最通用的板型选项。

四、安装CH340串口驱动

D1 R32使用的USB转串口芯片是 CH340。Windows不会自动安装其驱动,需要手动安装。

1. 下载驱动

搜索"CH340驱动下载",或直接访问WCH官网:http://www.wch.cn/download/CH341SER_EXE.html

2. 安装驱动

下载 CH341SER.EXE,双击运行,点击 安装。几秒钟后提示"驱动安装成功"。

3. 连接开发板并检查端口

  • 用USB线连接电脑和D1 R32
  • 右键点击 此电脑 → 管理 → 设备管理器
  • 展开 端口 (COM和LPT)
  • 你应该能看到类似 USB-SERIAL CH340 (COM3) 的条目,记下COM编号(如COM3)

如果没有出现,请更换USB线或换一个USB接口。

五、编写并上传第一个程序:点亮板载LED

D1 R32的板载LED连接在 GPIO2 上,低电平点亮(或高电平,不同批次可能不同,但大部分是GPIO2高电平点亮)。

我们写一个经典的Blink程序。

1. 新建项目并编写代码

打开Arduino IDE,复制以下代码:

cpp 复制代码
// 定义LED引脚为GPIO2
#define LED_BUILTIN 2

void setup() {
  // 设置LED引脚为输出模式
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // 点亮LED
  delay(1000);                       // 等待1秒
  digitalWrite(LED_BUILTIN, LOW);    // 熄灭LED
  delay(1000);                       // 等待1秒
}

2. 选择端口

  • 点击菜单 工具 → 端口,选择你之前在设备管理器中看到的COM口(例如COM3)

3. 编译并上传

  • 点击工具栏上的 向右箭头 图标(上传)
  • IDE会先编译代码,然后尝试上传。当底部日志出现 Connecting... 时,按住D1 R32板子上的BOOT/FLASH按钮不放,直到上传进度条开始走动再松开按钮。
  • 等待几秒钟,看到 Done uploading 字样,表示上传成功。

4. 观察效果

上传完成后,开发板会自动复位。你应该看到板上的LED开始以1秒间隔闪烁。如果LED不亮,可以尝试交换 HIGH/LOW,因为不同批次板子的电平逻辑可能相反。

六、常见问题与解决方法

1. 上传时一直显示 Connecting... 然后超时失败

  • 原因:ESP32没有进入下载模式。
  • 解决方法
    • 按住 BOOT 按钮不放,然后快速按一下 EN 按钮(或重新插拔USB),松开 BOOT。再重新上传。
    • 或者在上传时,一直按住BOOT按钮 ,直到出现 Connecting... 并且进度条开始移动再松开。

2. 设备管理器中找不到COM口

  • 原因:驱动未安装、USB线不合格、USB接口接触不良。
  • 解决方法
    • 确认CH340驱动已成功安装。
    • 换一根支持数据传输的USB线(很多手机充电线没有数据线)。
    • 换一个电脑USB口,台式机建议插机箱背面。

3. 编译报错 'LED_BUILTIN' was not declared

  • 原因 :ESP32的Arduino库中没有预定义 LED_BUILTIN(不像Arduino Uno)。
  • 解决方法 :自己在代码开头用 #define LED_BUILTIN 2 定义即可,如上例所示。

4. LED一直亮着或不亮

  • 原因:电平逻辑不对或引脚错误。
  • 解决方法
    • 尝试将 HIGHLOW 互换。
    • 确认GPIO引脚号是正确的。D1 R32的板载LED通常是GPIO2,但也有个别版本是GPIO5或GPIO4,可以查阅卖家提供的原理图或逐个测试。

5. 上传成功但LED没反应

  • 原因:可能开发板没有自动复位,或者程序烧录到了错误的分区。
  • 解决方法
    • 按一下板上的 EN 按钮,手动复位。
    • 检查 工具 → 开发板 是否确实选择了 ESP32 Dev Module,而不是其他型号。

七、下一步:探索更多可能

点亮LED之后,你已经迈出了ESP32开发的第一步。接下来可以尝试:

  • 使用外部LED:将LED连接到其他GPIO,学习控制外部设备。
  • 串口通信 :使用 Serial.begin(115200)Serial.println() 在串口监视器打印信息。
  • Wi-Fi联网:连接家里的Wi-Fi,实现物联网数据上传。
  • 蓝牙控制:用手机APP通过BLE控制LED开关。

结语

本文详细介绍了在Windows系统下为ESP32 D1 R32搭建Arduino IDE开发环境,并成功运行了第一个点亮LED的程序。虽然过程中可能会遇到一些小坑,但只要按照步骤一步步操作,基本都能解决。希望这篇教程能帮助更多爱好者顺利入门ESP32开发。


老徐,2026/05/21 小满

相关推荐
yong99903 小时前
STM32 LoRaWAN Ping-Pong 节点方案
stm32·单片机·嵌入式硬件
模拟IC攻城狮3 小时前
(最新)华为 2025届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题)
嵌入式硬件·华为·硬件架构·pcb工艺·模拟芯片
我先去打把游戏先4 小时前
Ubuntu虚拟机(服务器版本)Git安装教程(附常用命令)——从零开始掌握版本控制
服务器·c语言·c++·git·嵌入式硬件·物联网·ubuntu
安生生申4 小时前
uni-app 连接 JDY-31 蓝牙串口模块实践
c语言·前端·javascript·stm32·单片机·嵌入式硬件·uni-app
于小猿Sup15 小时前
VMware在Ubuntu22.04驱动Livox Mid360s
linux·c++·嵌入式硬件·自动驾驶
chao18984416 小时前
STM32 HAL库驱动AT24C02 EEPROM例程
stm32·单片机·嵌入式硬件
不会武功的火柴17 小时前
SystemVerilog语法(8)-有限状态机(FSM)
嵌入式硬件·fpga开发·自动化·ic验证·rtl·uvm方法学
嵌入式小站20 小时前
STM32 零基础可移植教程 05:按键消抖,为什么按一次会触发好几次
chrome·stm32·嵌入式硬件
czhaii20 小时前
跟我动手学FX系列PLC GX2环境
嵌入式硬件