第4章:ESP32开发环境搭建

好,咱们开始动手了。这一章我带你把ESP32的开发环境搭起来。说实话,很多初学者卡就卡在这一步——环境没配好,连个灯都点不亮,信心直接归零。

我个人习惯用Arduino IDE来开发ESP32。为什么?因为简单、生态好、社区活跃。你想想看,一个IDE能搞定几十种芯片,省心。咱们今天的目标很明确:装好Arduino IDE、配好ESP32板级支持包、搞定串口驱动,最后跑一个Blink程序让LED闪起来。

4.1 下载与安装Arduino IDE

先去官网下载Arduino IDE。我建议下载1.8.x版本,虽然2.0出来了,但1.8系列更稳定,插件兼容性更好。我在项目里踩过2.0的坑——有些库编译不过,后来老老实实换回1.8了。

安装过程很简单,一路Next就行。但注意一点:安装路径不要有中文和空格。我曾经帮一个学员远程调试,他装在“C:\Program Files (x86)\Arduino 开发”下面,结果死活编译不过,改回纯英文路径就好了。

避坑指南:安装路径请使用纯英文,不要带中文、空格或特殊字符。否则后续编译可能报一些莫名其妙的错误。

4.2 安装ESP32板级支持包

Arduino IDE默认只支持官方的Arduino板子。要支持ESP32,得手动添加板级支持包。说白了,就是告诉IDE:“嘿,我这里有一块ESP32芯片,你得认识它。”

操作步骤是这样的:

  1. 打开Arduino IDE,点击 文件 → 首选项
  2. 在“附加开发板管理器网址”里填入ESP32的JSON地址
  3. 点击 工具 → 开发板 → 开发板管理器
  4. 搜索“ESP32”,找到由Espressif Systems提供的版本,点击安装

JSON地址是多少?我用的是这个:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

如果你网络不好,下载可能会很慢。我记得有一次在客户现场,网络差到爆,等了半小时还没下完。后来我直接让同事把安装包拷过来,手动解压到指定目录。嗯,这里有个小技巧:你可以从GitHub上直接下载esp32包,解压到 C:\Users\你的用户名\AppData\Local\Arduino15\packages 目录下,效果一样。

小技巧:如果在线安装太慢,可以手动下载esp32包。去GitHub搜“arduino-esp32”,下载后解压到Arduino的packages目录即可。

4.3 安装串口驱动

ESP32开发板通常通过USB转串口芯片与电脑通信。常见的芯片有CP2102和CH340。你得装对应的驱动,否则电脑认不出板子。

怎么判断用哪个驱动?插上板子,打开设备管理器,看“端口(COM和LPT)”下面有没有出现未知设备。如果有黄色感叹号,那就是驱动没装。

串口芯片型号 常见开发板 驱动下载方式
CP2102 ESP32 DevKit V1、NodeMCU-32S Silicon Labs官网下载
CH340 ESP32-DevKitC、某些国产板 WCH官网下载
FT232 部分高端开发板 FTDI官网下载

驱动装好后,设备管理器里会显示对应的COM口编号。比如我手头这块板子,插上后显示“COM3”。记下这个编号,后面上传程序要用。

注意:如果你用的是CH340芯片,Windows 10/11有时会自动安装驱动。但如果自动安装失败,请手动去WCH官网下载。别问我怎么知道的——我曾经被一个盗版CH340坑了三天,驱动死活装不上,最后换了一块正版板子就好了。

4.4 第一个程序:Blink

环境搭好了,咱们来写第一个程序。Blink就是让板载LED闪烁,相当于嵌入式世界的“Hello World”。

ESP32 DevKit V1的板载LED通常接在GPIO2上。不同板子可能不一样,但大部分都是GPIO2。如果你不确定,可以查一下原理图,或者直接试——反正烧不坏。

打开Arduino IDE,新建一个文件,输入以下代码:

void setup() {
  // 初始化GPIO2为输出模式
  pinMode(2, OUTPUT);
}

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

代码很简单,对吧?setup()只执行一次,设置引脚模式。loop()不断循环,让LED亮一秒、灭一秒。

上传之前,先做三件事:

  1. 选择开发板:工具 → 开发板 → ESP32 Arduino → 选择你的板型。我用的是“ESP32 Dev Module”。
  2. 选择端口:工具 → 端口 → 选择你刚才记下的COM口。
  3. 设置参数:其他参数保持默认就行。Flash Size选4MB,Partition Scheme选Default。

然后点击上传按钮(那个右箭头)。IDE会先编译,再上传。第一次编译会慢一些,因为要编译ESP32的底层库。别急,喝杯水等一等。

上传成功后,你会看到板载LED开始闪烁——一秒亮,一秒灭。恭喜,你的ESP32活了!

重要提示:如果上传失败,试试按住开发板上的BOOT键,再按一下EN键(复位),然后松开BOOT键。这是ESP32进入下载模式的手动方法。我刚开始用ESP32时,十次上传有八次失败,后来发现是串口芯片的DTR/RTS信号不稳定,手动按BOOT键反而更靠谱。

4.5 常见问题与解决

搭建环境时,你可能会遇到这些问题。我列出来,你对照着排查:

  • 编译报错“esp32/esp32.h: No such file or directory”——板级支持包没装好,重新安装或手动解压。
  • 上传时报错“A fatal error occurred: Failed to connect to ESP32”——串口没选对,或者板子没进入下载模式。试试手动按BOOT键。
  • 上传成功但LED不亮——检查LED引脚是不是GPIO2。有些板子用的是GPIO5或GPIO16,改一下代码里的引脚号。
  • 串口打不开——驱动没装好,或者串口被其他程序占用了。关掉串口监视器、关掉其他IDE,再试一次。

嗯,其实大部分问题都是串口相关的。你想想看,电脑和板子之间就靠一根USB线通信,驱动不对、端口不对、线质量不好,都会出问题。我建议你备一根质量好的USB数据线——别用那种只能充电不能传数据的线。

好了,环境搭好了,第一个程序也跑起来了。下一章咱们开始写真正的红外转网络程序,让ESP32既能发红外信号,又能连上WiFi。准备好了吗?