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:\软件\编程工具」这种目录下,结果后面编译某些库时报路径编码错误,排查了半天。
1.3 配置 ESP32 板卡支持
Arduino IDE 默认不支持 ESP32,需要手动添加板卡管理器地址。操作步骤:
- 打开 Arduino IDE,点击 文件 → 首选项
- 在「附加开发板管理器网址」一栏,粘贴下面这个地址:
https://espressif.github.io/arduino-esp32/package_esp32_index.json
- 点击「好」保存
- 然后点击 工具 → 开发板 → 开发板管理器
- 搜索框输入
esp32,找到「ESP32 by Espressif Systems」,点击安装
这个包大概 200MB 左右,下载速度取决于你的网络。如果卡住了,可以试试换个时间段或者用手机热点。我遇到过好几次公司网络屏蔽了 GitHub 的下载源,换热点就好了。
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,记得选对应的板型,别选错了。选错了也能编译,但上传时会报连接失败。
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 本章知识结构图
下面这张图帮你理清整个环境搭建的流程:
1.8 常见问题与避坑指南
我把这些年遇到的和学生反馈最多的问题整理了一下:
我曾经被这个问题折磨过好几次。原因通常是:
- 板子没有进入下载模式(按住 BOOT 键,点上传,看到「Connecting...」时松开)
- 端口选错了(重新拔插,看端口变化)
- 板型选错了(确认是 ESP32 Dev Module 还是 ESP32-S3)
去开发板管理器里确认一下 ESP32 包是否真的装完了。有时候网络中断会导致安装不完整,卸载重装一次就好。
先确认板载 LED 接的是哪个 GPIO。大部分 ESP32 开发板用 GPIO2,但有些用 GPIO0 或 GPIO16。翻一下板子的原理图,或者直接试:把代码里的 2 改成 0 或 16,再上传一次。