1. ESP32 开发环境搭建:从零开始点亮第一盏灯

各位同学,欢迎来到《ESP32 前端交互与 WebSocket 实时通信实战》的第一章。

说实话,我见过太多人卡在环境搭建这一步。下载了软件,装不上驱动;装上了驱动,板子认不到;认到了板子,编译报错……然后就开始怀疑人生。别担心,这一章我会带着你一步步走,把坑都填平。

1.1 为什么选 Arduino IDE?

你可能听说过 ESP-IDF、PlatformIO、MicroPython 这些开发方式。我个人习惯,入门阶段首选 Arduino IDE。原因很简单:

  • 上手快——装好就能写,不用折腾 CMake 和 Makefile
  • 生态好——ESP32 相关的库,大部分都有 Arduino 版本
  • 调试方便——串口监视器一键打开,看日志不费劲

等后面章节我们做 WebSocket 通信时,你会发现 Arduino 的 WiFi 库和 WebSocket 库几乎就是开箱即用。嗯,这就是我选它的理由。

1.2 下载与安装 Arduino IDE

去官网 arduino.cc 下载对应你操作系统的版本。Windows 用户选 Windows Installer,macOS 用户选 macOS 版,Linux 用户选 AppImage 或命令行安装。

安装过程没什么特别的,一路 Next 就行。但我提醒一句:安装路径不要带中文。我以前遇到过学生把 Arduino 装到「D:\软件\编程工具」这种目录下,结果后面编译某些库时报路径编码错误,排查了半天。

我的习惯:装完后,先打开一次 Arduino IDE,让它自动生成默认的 sketch 文件夹。默认路径一般在「文档/Arduino」下,后面我们所有的项目都会放在这里。

1.3 配置 ESP32 板卡支持

Arduino IDE 默认不支持 ESP32,需要手动添加板卡管理器地址。操作步骤:

  1. 打开 Arduino IDE,点击 文件 → 首选项
  2. 在「附加开发板管理器网址」一栏,粘贴下面这个地址:
https://espressif.github.io/arduino-esp32/package_esp32_index.json
  1. 点击「好」保存
  2. 然后点击 工具 → 开发板 → 开发板管理器
  3. 搜索框输入 esp32,找到「ESP32 by Espressif Systems」,点击安装

这个包大概 200MB 左右,下载速度取决于你的网络。如果卡住了,可以试试换个时间段或者用手机热点。我遇到过好几次公司网络屏蔽了 GitHub 的下载源,换热点就好了。

注意:安装过程中不要关闭 Arduino IDE,也不要拔掉 ESP32 板子(虽然还没插)。等右下角进度条走完,会提示「安装完成」。

1.4 安装 USB 转串口驱动

ESP32 开发板通过 USB 连接到电脑,电脑需要识别它的串口芯片。市面上常见的 ESP32 开发板用的串口芯片有两种:

芯片型号 常见于 驱动下载
CP2102 ESP32-DevKitC、NodeMCU-32S Silicon Labs 官网
CH340 便宜的 ESP32 开发板、ESP32-CAM WCH 官网

怎么看你的板子用的是什么芯片?看板子上的 USB 接口附近,有一个小方芯片,上面印着型号。或者直接问卖家。

驱动装好后,插上 ESP32 开发板,打开设备管理器(Windows)或系统信息(macOS),应该能看到一个新的 COM 端口(Windows)或 /dev/cu.usbserial-xxx(macOS)。

如果你插上板子后设备管理器里出现一个黄色感叹号,那就是驱动没装对。我曾经有一次装错了 CH340 的版本,折腾了半小时才发现是 64 位系统装了 32 位驱动……

1.5 选择正确的开发板和端口

驱动装好之后,在 Arduino IDE 里做两件事:

  • 工具 → 开发板 → ESP32 Arduino → 选择你的板型(一般选「ESP32 Dev Module」就行)
  • 工具 → 端口 → 选择你刚才看到的 COM 口

如果你用的是 ESP32-S3 或 ESP32-C3,记得选对应的板型,别选错了。选错了也能编译,但上传时会报连接失败。

一个小技巧:拔掉板子,看看端口列表里少了哪个,插上再看多了哪个,那个就是你的 ESP32。

1.6 第一个程序:Blink(点亮板载 LED)

好了,环境搭好了,我们来写第一个程序。ESP32 开发板上通常有一个板载 LED,连接到 GPIO2 引脚。我们让它每隔一秒闪烁一次。

新建一个 sketch,输入以下代码:

void setup() {
  pinMode(2, OUTPUT);  // 将 GPIO2 设置为输出模式
}

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

代码写完后,点击左上角的 →(上传) 按钮。Arduino IDE 会先编译,然后上传到 ESP32。你会看到板子上的两个指示灯在闪烁:一个是电源灯,一个是串口通信灯。

上传成功后,板载 LED 应该开始以 1 秒的间隔闪烁。如果没亮,检查一下:

  • GPIO 引脚对不对?有些板子的 LED 接在 GPIO0 或 GPIO16 上
  • 上传时有没有按住 BOOT 键?有些 ESP32 板子需要手动进入下载模式

我第一次用 ESP32 时,就踩了 BOOT 键的坑。后来发现,大部分新版的 ESP32 开发板已经支持自动复位,不需要手动按了。但如果你用的是老款,上传时看到「Connecting...」卡住,就按住 BOOT 键不放,点上传,等出现「Writing...」时松开。

1.7 本章知识结构图

下面这张图帮你理清整个环境搭建的流程:

ESP32 开发环境搭建流程 下载安装 Arduino IDE 添加 ESP32 板卡管理器地址 安装 ESP32 板卡支持包 安装 USB 转串口驱动 选择开发板型号 & 端口 编写并上传 Blink 程序 ✅ LED 闪烁成功 常见问题 • 下载慢 → 换源或换网络 • 驱动感叹号 → 重装驱动 • 上传卡住 → 按 BOOT 键 • LED 不亮 → 检查 GPIO 引脚 本章核心 • 环境搭建是基础 • 驱动是最大坑点 • Blink 是嵌入式 Hello World

1.8 常见问题与避坑指南

我把这些年遇到的和学生反馈最多的问题整理了一下:

问题:上传时提示「A fatal error occurred: Failed to connect to ESP32」
我曾经被这个问题折磨过好几次。原因通常是:
- 板子没有进入下载模式(按住 BOOT 键,点上传,看到「Connecting...」时松开)
- 端口选错了(重新拔插,看端口变化)
- 板型选错了(确认是 ESP32 Dev Module 还是 ESP32-S3)
问题:编译时报错「ESP32 core 未安装」
去开发板管理器里确认一下 ESP32 包是否真的装完了。有时候网络中断会导致安装不完整,卸载重装一次就好。
问题:LED 不亮,但程序上传成功
先确认板载 LED 接的是哪个 GPIO。大部分 ESP32 开发板用 GPIO2,但有些用 GPIO0 或 GPIO16。翻一下板子的原理图,或者直接试:把代码里的 2 改成 0 或 16,再上传一次。