2. 开发环境搭建:Arduino IDE安装与配置、ESP32板级支持包安装、VS Code + PlatformIO环境搭建
好,咱们正式开始动手了。这一章我带你搭开发环境。
说实话,做嵌入式开发这么多年,我见过太多人卡在环境搭建这一步。有的装了半天驱动死活认不到串口,有的编译报错一脸懵。其实说白了,环境搭建就是个“一次配置,长期受益”的活儿。咱们今天一步到位,把两套主流环境都搞定。
2.1 为什么需要两套环境?
你可能会问:“一套不够用吗?”
嗯,这个问题我当年也纠结过。我的经验是:Arduino IDE适合快速验证和原型开发,VS Code + PlatformIO适合大型项目和团队协作。
举个例子,我在做智能家居网关原型时,用Arduino IDE写个传感器读取程序,十分钟搞定。但后来项目扩展到十几个模块、需要版本管理时,PlatformIO的多项目管理功能就派上大用场了。
2.2 Arduino IDE安装与配置
2.2.1 下载与安装
去官网下载Arduino IDE,我建议用1.8.x版本。为什么?2.0虽然界面好看,但有些第三方库兼容性还没跟上。我在项目中就遇到过2.0下编译报错,切回1.8.19就没事了。
安装过程很简单,一路Next就行。Windows用户注意:安装路径不要有中文和空格,否则后面编译可能出幺蛾子。
2.2.2 配置中文界面(可选)
打开Arduino IDE,点击 File → Preferences,在 Editor Language 里选择 简体中文,重启即可。我个人习惯用英文界面,因为报错信息搜起来方便。不过你随意,怎么顺手怎么来。
2.3 ESP32板级支持包安装
这一步是关键。Arduino默认不支持ESP32,得手动加板级支持包。
2.3.1 添加开发板管理器地址
打开 文件 → 首选项,在 附加开发板管理器网址 里填入:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
如果你有多个地址,一行一个。我曾经因为地址写错,折腾了半天才发现少了个斜杠。嗯,细节决定成败。
2.3.2 安装ESP32包
点击 工具 → 开发板 → 开发板管理器,搜索 ESP32,找到 esp32 by Espressif Systems,点击安装。版本我推荐用 2.0.14 或 2.0.17,这两个版本我实测过,稳定。
2.3.3 验证安装
安装完成后,在 工具 → 开发板 里应该能看到 ESP32 Arduino 选项。选一个你手头的板子,比如 ESP32 Dev Module,然后打开示例程序:文件 → 示例 → 01.Basics → Blink,编译一下。如果没报错,恭喜你,环境搭好了。
2.4 VS Code + PlatformIO环境搭建
说实话,我现在主力开发都用PlatformIO。它的智能提示、库管理、调试功能,比Arduino IDE强太多了。
2.4.1 安装VS Code
去code.visualstudio.com下载安装。安装时记得勾选 添加到PATH 和 支持右键打开,这两个选项后面用起来方便。
2.4.2 安装PlatformIO插件
打开VS Code,点击左侧扩展图标,搜索 PlatformIO IDE,安装第一个结果。安装过程会下载一些依赖,大概几分钟。我建议你泡杯咖啡等一等。
2.4.3 创建第一个ESP32项目
安装完成后,VS Code底部会出现一个 蚂蚁头 图标(PlatformIO的logo)。点击它,选择 New Project:
- Name: 项目名称,比如
esp32_gateway - Board: 选择
Espressif ESP32 Dev Module - Framework: 选择
Arduino - Location: 默认即可,也可以自己选路径
点击 Finish,PlatformIO会自动创建项目结构并下载依赖。第一次创建会慢一些,后面就快了。
2.4.4 项目结构说明
创建完成后,你会看到这样的目录结构:
esp32_gateway/
├── .pio/ # 编译缓存,不用管
├── .vscode/ # VS Code配置
├── include/ # 头文件
├── lib/ # 第三方库
├── src/ # 源代码,你的main.cpp在这里
│ └── main.cpp
├── test/ # 测试代码
├── platformio.ini # 项目配置文件,核心!
└── README.md
重点说一下 platformio.ini,这是整个项目的灵魂。打开它,你会看到类似这样的内容:
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
这里可以配置串口波特率、上传方式、库依赖等。比如你想添加WiFi库,可以加上:
lib_deps =
bblanchon/ArduinoJson @ ^6.21.3
me-no-dev/ESPAsyncWebServer @ ^1.2.3
monitor_speed 设为115200,因为ESP32默认就是这个波特率。另外,board_build.flash_mode = qio 这个选项,如果你遇到上传后不运行,可以试试加上它。
2.4.5 编译与上传
在VS Code底部,点击 → 箭头(Build)编译,点击 → 带省略号的(Upload and Monitor)上传并打开串口监视器。第一次编译会下载工具链,耐心等待。
上传时如果提示 Connecting... 卡住,按住ESP32上的 BOOT 键不放,再按一下 EN 键,松开 BOOT。这个操作我刚开始时记不住,后来贴了个便签在显示器上。
2.5 两套环境的对比与选择
| 特性 | Arduino IDE | VS Code + PlatformIO |
|---|---|---|
| 上手难度 | 低,开箱即用 | 中,需要学习配置 |
| 代码提示 | 弱 | 强,智能补全 |
| 库管理 | 手动下载ZIP | 自动依赖管理 |
| 多项目管理 | 差 | 好,支持工作区 |
| 调试功能 | 无 | 支持串口调试 |
| 适合场景 | 快速原型、学习 | 项目开发、团队协作 |
2.6 常见问题与避坑指南
- 编译报错“A fatal error occurred: Failed to connect to ESP32”:检查串口驱动是否安装,按住BOOT键再试一次。
- 上传成功但没反应:检查板子型号是否选对,有些ESP32开发板需要手动选择
ESP32 Wrover Module。 - PlatformIO编译慢:第一次编译会下载工具链,后面就快了。如果还是慢,检查网络。
- 串口监视器乱码:波特率不匹配,检查
monitor_speed是否和代码里的一致。
好了,环境搭建就到这里。下一章咱们开始写第一个程序——点亮LED,然后逐步深入Zigbee和蓝牙的实战。记住,环境搭好了,后面就顺了。有问题随时翻翻这一章,或者来问我。