3. ESP32开发环境搭建:工欲善其事,必先利其器
说实话,做嵌入式开发这么多年,我见过太多人卡在环境搭建这一步。明明代码逻辑没问题,就是编译报错、下载失败,最后发现是开发环境没配好。这一章,咱们就把ESP32的开发环境彻底搞定。
我会带你一步步配置Arduino IDE、安装ESP32板级支持包、搞定串口驱动,再介绍几个常用的库。嗯,跟着我来,半小时内你就能跑起第一个程序。
3.1 Arduino IDE的安装与配置
Arduino IDE,说白了就是个轻量级的编辑器+编译器。我个人的习惯是,不管用什么芯片,都先用Arduino IDE快速验证一下硬件是否正常。为什么呢?因为它简单、直接,不用折腾复杂的工程配置。
下载与安装
去官网下载最新版就行。Windows用户选Windows Installer,macOS用户选macOS版。安装过程一路默认,没什么坑。
配置中文界面
安装完后,打开Arduino IDE,点击 File → Preferences,在 Editor Language 里选择 简体中文,重启IDE就生效了。我个人建议用英文界面,因为报错信息更容易搜索。但如果你刚入门,中文界面确实友好一些。
Show verbose output during 里的两个选项都勾上。这样编译和下载时能看到详细信息,出问题好排查。
3.2 ESP32板级支持包安装
Arduino IDE默认不支持ESP32,需要手动添加板级支持包。这一步其实很简单,但很多新手会卡在下载速度上——因为服务器在国外。
添加开发板管理器地址
打开 文件 → 首选项,在 附加开发板管理器网址 里填入:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
如果你有多个地址,一行一个。我曾经遇到过地址写错导致安装失败的情况,所以建议你复制粘贴,别手打。
安装ESP32包
点击 工具 → 开发板 → 开发板管理器,搜索 ESP32,找到 esp32 by Espressif Systems,点击安装。版本我建议选最新的稳定版,大概2.0.x系列。
- 使用手机热点(有时候比宽带快)
- 换个时间段再试(避开高峰期)
- 手动下载离线包(网上有教程)
安装完成后,在 工具 → 开发板 里就能看到 ESP32 Arduino 选项了。选 ESP32 Dev Module 作为默认开发板。
3.3 串口驱动与调试
ESP32开发板通常通过USB转串口芯片与电脑通信。常见的芯片有CP2102、CH340G、FT232等。你买开发板时,商家一般会告诉你用的什么芯片。
安装串口驱动
以CH340G为例,这是国内最常见的方案。去官网下载驱动,或者直接用驱动精灵安装。安装后插上开发板,在设备管理器里能看到 COM端口 下多了一个设备。
验证驱动是否正常
打开Arduino IDE,点击 工具 → 端口,看看有没有出现新的COM口。如果有,恭喜你,驱动装好了。如果没有,检查一下:
- 数据线是不是只能充电不能传数据?我吃过这个亏,换了根线就好了
- 驱动版本对不对?32位和64位系统要对应
- USB口是不是有问题?换个口试试
串口调试小技巧:
我习惯在代码里加一些调试信息,比如:
void setup() {
Serial.begin(115200);
Serial.println("ESP32 启动成功!");
Serial.printf("芯片频率: %d MHz\n", getCpuFrequencyMhz());
}
这样一上电就能看到芯片是否正常工作。波特率我一般用115200,稳定且速度快。
3.4 常用库介绍
做红外遥控项目,有几个库是绕不开的。我挑几个最常用的说说。
| 库名 | 用途 | 安装方式 |
|---|---|---|
| IRremote | 红外信号发送与接收 | 库管理器搜索安装 |
| ArduinoJson | JSON数据解析与生成 | 库管理器搜索安装 |
| WiFi | ESP32 WiFi功能 | 内置库,无需安装 |
| EEPROM | 数据持久化存储 | 内置库,无需安装 |
IRremote库——这个是我们项目的核心。它支持NEC、SONY、RC5等多种红外协议。我刚开始做红外遥控时,用的就是这个库,省了不少事。
ArduinoJson库——如果你想把遥控码存成JSON格式,这个库就派上用场了。比如:
StaticJsonDocument<200> doc;
doc["protocol"] = "NEC";
doc["address"] = 0xFF00;
doc["command"] = 0x10EF;
EEPROM库——用来保存学习到的红外码。ESP32的EEPROM模拟在Flash上,有断电保存功能。注意,写入次数有限,别频繁写。
3.5 第一个测试程序
环境搭好了,咱们跑个程序验证一下。打开Arduino IDE,新建一个文件,输入:
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
Serial.println("LED 闪烁一次");
}
点击 上传 按钮,等编译完成,程序就会自动下载到ESP32。如果看到板载LED每隔1秒闪烁一次,串口监视器里打印出信息,那就说明环境搭建成功了。
- 上传时按住开发板上的
BOOT键,直到开始上传再松开。有些开发板需要这样操作。 - 如果提示
A fatal error occurred: Failed to connect to ESP32,检查串口是否被占用,或者换个USB口。
好了,到这里ESP32的开发环境就搭建完成了。下一章咱们开始真正接触红外遥控,学习如何用ESP32接收和发送红外信号。说实话,第一次看到自己写的代码能控制空调时,那种成就感真的很棒。