1. ESP32开发环境搭建:Arduino IDE安装、ESP32板级支持包配置、驱动安装、第一个LED闪烁程序

各位同学,欢迎来到《ESP32智能家居安防摄像头与视频流传输实战》的第一课。

说实话,做嵌入式开发这么多年,我见过太多人卡在环境搭建这一步。明明代码逻辑没问题,就是编译报错、下载失败。嗯,这很正常。环境搭建就像盖房子的地基,地基没打好,后面全是坑。

今天我们就一步步来,把ESP32的开发环境彻底搞定。最后,我会带你跑通第一个程序——LED闪烁。这是嵌入式世界的"Hello World",也是你迈向智能家居安防的第一步。

1.1 为什么选择Arduino IDE?

你可能听说过ESP-IDF、PlatformIO、MicroPython……这些都能开发ESP32。但我个人习惯,入门阶段首选Arduino IDE。为什么?

  • 门槛低:你不需要懂复杂的Makefile,不需要配置CMake。装好就能写代码。
  • 生态好:ESP32的库成千上万,摄像头、WiFi、蓝牙、传感器……几乎都有现成的。
  • 调试方便:串口监视器一键打开,打印信息一目了然。

我在项目中遇到过紧急情况,客户第二天就要演示。用Arduino IDE,我从零到跑通摄像头画面,只用了两个小时。换成ESP-IDF?光编译环境就得折腾半天。

我的建议:如果你是初学者,或者项目周期紧,先用Arduino IDE。等熟悉了ESP32的底层,再考虑迁移到ESP-IDF。

1.2 Arduino IDE的安装

先下载Arduino IDE。去官网(arduino.cc)找到对应你操作系统的版本。Windows、macOS、Linux都有。

安装过程很简单,一路"下一步"就行。但有一点要注意:

避坑指南:我曾经在Windows上安装时,默认路径带了中文。结果后面编译ESP32代码时,死活报错找不到头文件。折腾了一下午才发现是路径问题。所以,安装路径不要有中文,也不要有空格。

安装完成后,打开Arduino IDE。你会看到这样一个界面:

  • 顶部是菜单栏:文件、编辑、项目、工具、帮助
  • 中间是代码编辑区,白底黑字
  • 底部是状态栏,显示开发板、端口等信息

嗯,看起来有点简陋。但别小看它,后面我们会让它变得很强大。

1.3 配置ESP32板级支持包

Arduino IDE默认只支持官方的Arduino开发板。要支持ESP32,我们需要手动添加板级支持包(Board Support Package,简称BSP)。

操作步骤如下:

  1. 打开Arduino IDE,点击菜单栏 文件 → 首选项
  2. 在"附加开发板管理器网址"一栏,填入以下链接:
    https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
  3. 点击"确定"保存
  4. 然后点击菜单栏 工具 → 开发板 → 开发板管理器
  5. 在搜索框输入"ESP32",找到由Espressif Systems提供的版本,点击"安装"

这个过程会下载大约几百兆的数据。网速慢的话,可能需要十几分钟。你可以去泡杯咖啡。

重要提醒:如果你在公司网络或者学校网络,可能会遇到下载失败。这是因为GitHub的raw域名在某些网络环境下被屏蔽了。解决办法有两个:一是开代理,二是用国内的镜像源。我个人习惯用代理,稳定一些。

安装完成后,关闭开发板管理器。再次点击 工具 → 开发板,你会看到多了很多ESP32的型号。我们课程用的是ESP32-CAM模块,所以选择 AI Thinker ESP32-CAM 这个型号。

1.4 驱动安装——让电脑认识ESP32

把ESP32开发板用USB线连接到电脑。这时候,电脑应该会提示"发现新硬件"。但很多时候,Windows并不能自动识别。

ESP32通常使用CH340或CP2102这两种USB转串口芯片。你需要安装对应的驱动。

芯片型号 驱动名称 下载方式
CH340 CH340G/CH341SER 百度搜索"CH340驱动",从沁恒官网下载
CP2102 CP210x USB to UART Bridge 从Silicon Labs官网下载

安装驱动后,重新插拔USB线。打开设备管理器(Windows),在"端口(COM和LPT)"下面,你应该能看到类似"USB-SERIAL CH340 (COM3)"这样的设备。记住这个COM口号,后面下载程序要用。

我曾经踩过的坑:有一次我插上ESP32,设备管理器里死活不显示端口。换了USB线、换了电脑,都不行。最后发现是开发板上的USB转串口芯片虚焊了。所以,如果你遇到类似问题,先检查硬件连接,再怀疑驱动。

1.5 第一个程序——LED闪烁

环境搭好了,驱动装好了。现在我们来写第一个程序。

ESP32-CAM模块上有一个内置的LED,连接在GPIO 4引脚上(注意,有些版本是GPIO 33,但大部分是GPIO 4)。

打开Arduino IDE,新建一个项目。在编辑区输入以下代码:

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

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

代码很简单,对吧?setup()函数在程序启动时执行一次,用来初始化。这里我们把GPIO 4设置为输出模式。loop()函数会不断循环执行。先点亮LED,等1秒,再熄灭,再等1秒。如此反复,就实现了LED闪烁。

接下来,我们要把程序下载到ESP32里。操作步骤:

  1. 点击菜单栏 工具 → 开发板,选择 AI Thinker ESP32-CAM
  2. 点击 工具 → 端口,选择你刚才在设备管理器里看到的COM口
  3. 点击 工具 → Flash Size,选择 4MB (32Mb)
  4. 点击 工具 → Partition Scheme,选择 Huge APP (3MB No OTA)
  5. 点击 工具 → Upload Speed,选择 115200(如果下载失败,可以降到57600)
小技巧:ESP32-CAM模块没有自动复位电路。下载程序时,你需要按住开发板上的RST按钮,然后按下另一个按钮(通常是IO0或Flash按钮),再松开RST。具体操作是:按住RST → 按住IO0 → 松开RST → 松开IO0。这时候Arduino IDE会开始下载。如果下载进度条开始走了,就说明成功了。

点击菜单栏的 项目 → 上传(或者直接点工具栏的右箭头图标)。等待编译和下载完成。如果一切顺利,你会看到串口输出类似这样的信息:

Connecting........_____....._____....._____....._____....._____....._____....._____
Chip is ESP32-D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 24:6f:28:xx:xx:xx
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00001000 to 0x00005fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x00010000 to 0x0003ffff...
Compressed 8192 bytes to 47...
Writing at 0x00008000... (100 %)
Compressed 20608 bytes to 122...
Writing at 0x00001000... (100 %)
Compressed 196384 bytes to 137...
Writing at 0x00010000... (100 %)
Leaving...
Hard resetting via RTS pin...

下载完成后,按下开发板上的RST按钮(复位)。你会看到板载的LED开始以1秒的间隔闪烁。

恭喜你!你的第一个ESP32程序跑起来了。

总结一下:今天我们完成了三件事——安装了Arduino IDE、配置了ESP32板级支持包、安装了USB驱动。最后,我们写了一个LED闪烁程序,成功下载并运行。这是你进入ESP32世界的第一步,也是最重要的一步。

下一章,我们会深入ESP32的GPIO控制,学习如何读取按键输入、控制多个LED。还会讲到PWM调光——说白了就是让LED呼吸起来。嗯,到时候你会觉得,原来控制硬件这么简单。

有任何问题,欢迎在课程群里交流。我们下节课见。