ESP32入门教程2026|从零开始:引脚图 + 第一个LED闪烁项目 + Wi-Fi连接

ESP32入门教程2026|从零开始:引脚图 + 第一个LED闪烁项目 + Wi-Fi连接

你是不是在搜索”eps32”?其实正确的拼写是 ESP32(Espressif Systems 出品的双核 Wi-Fi + 蓝牙微控制器)。这个小小的芯片已经成为 IoT 开发者和电子爱好者的首选平台,原因很简单:价格便宜(开发板约 ¥20-40)、性能强大(双核 240MHz)、自带 Wi-Fi 和蓝牙,而且社区资源极其丰富。

本教程将带你从零开始,完成 ESP32 的第一个项目。即使你从未接触过嵌入式开发,也能在 30 分钟内让 LED 闪烁起来。

为什么选择 ESP32?

在 ESP8266 之后,乐鑫推出了 ESP32,性能全面提升:

特性ESP8266ESP32ESP32-S3
CPU单核 80MHz双核 240MHz双核 240MHz
Wi-Fi802.11 b/g/n802.11 b/g/n802.11 b/g/n
蓝牙无Bluetooth 4.2 + BLEBluetooth 5.0 + BLE
GPIO173445
Flash外部4-16MB8-16MB
PSRAM无4MB8MB

ESP32 的典型应用场景:

你需要准备什么?

硬件清单

物品数量参考价格说明
ESP32 开发板1¥20-40推荐 ESP32-DevKitC 或 ESP32-WROOM-32
Micro-USB 数据线1¥5-10注意必须是数据线,不是充电线
LED 发光二极管1¥0.1任意颜色
220Ω 电阻1¥0.1限流保护 LED
面包板1¥5-10830 孔标准面包板
杜邦线若干¥5公对公、公对母各备一些

重要提醒:很多新手买错线——必须买 Micro-USB 数据线,不是充电线!充电线只有电源线没有数据线,插上电脑后无法识别设备。

软件环境

  1. 下载 Arduino IDE 2.x:https://www.arduino.cc/en/software

  2. 添加 ESP32 开发板支持:

    • 打开 Arduino IDE → 文件 → 首选项
    • 在”附加开发板管理器网址”中添加:
    https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
    • 工具 → 开发板 → 开发板管理器 → 搜索 “esp32” → 安装
  3. 安装 USB 驱动(根据开发板芯片选择):

    • CP2102:Silicon Labs 官网下载
    • CH340:沁恒官网下载(国产芯片,很多便宜开发板用这个)

认识 ESP32 开发板

以最常用的 ESP32-DevKitC V4 为例:

        ┌─────────────────────┐
        │      ESP32          │
        │   ┌───────────┐     │
 USB ───┤   │  ESP-WROOM │     ├─── 3V3  EN  VP  VN  D34-D39
        │   │   -32      │     │
        │   └───────────┘     ├─── GND  D2  D4  RX2  TX2
        │                     │
        └─────────────────────┘

关键引脚说明

引脚功能注意事项
3V33.3V 电源输出最大 500mA
GND地线多个 GND 引脚可任选
GPIO2板载 LED很多开发板自带蓝色 LED
GPIO0启动模式选择下载固件时必须拉低
EN复位/使能拉低复位芯片
TX0/RX0串口通信连接 USB 转串口芯片
TX2/RX2第二串口可用于与其他设备通信

提示:不同厂家的开发板引脚排列可能略有不同,购买前请对照数据手册确认。如果不确定,可以搜索你的开发板型号 + “pinout” 查找引脚图。

第一个项目:让 LED 闪烁

这是嵌入式开发的”Hello World”——让一个 LED 以 1 秒间隔闪烁。

接线图

ESP32 GPIO2 ──── 220Ω电阻 ──── LED正极(长脚)
                                  │
                                  LED负极(短脚)
                                  │
ESP32 GND ────────────────────────┘

实物接线步骤:

  1. 将 ESP32 插入面包板
  2. 用杜邦线连接 GPIO2 到电阻一端
  3. 电阻另一端连接 LED 正极(长脚)
  4. LED 负极(短脚)连接到 ESP32 的 GND

编写代码

打开 Arduino IDE,输入以下代码:

// ESP32 LED 闪烁示例
#define LED_PIN 2  // GPIO2,很多开发板自带蓝色 LED

void setup() {
  // 初始化 LED 引脚为输出模式
  pinMode(LED_PIN, OUTPUT);
  
  // 初始化串口通信(用于调试)
  Serial.begin(115200);
  Serial.println("ESP32 LED 闪烁程序启动");
}

void loop() {
  digitalWrite(LED_PIN, HIGH);  // 点亮 LED
  Serial.println("LED ON");
  delay(1000);                  // 等待 1 秒
  
  digitalWrite(LED_PIN, LOW);   // 熄灭 LED
  Serial.println("LED OFF");
  delay(1000);                  // 等待 1 秒
}

上传固件

  1. 选择开发板:工具 → 开发板 → ESP32 Arduino → “ESP32 Dev Module”
  2. 选择端口:工具 → 端口 → 选择你的 COM 口(Windows)或 /dev/ttyUSB0(Linux)/dev/cu.usbserial-*(macOS)
  3. 点击上传按钮(→ 箭头)

常见问题:

  • “Failed to connect to ESP32”:按住开发板上的 BOOT 按钮(GPIO0),再点击上传,看到”Connecting…”后松开 BOOT 按钮
  • “COM port not found”:检查 USB 线是否是数据线,驱动是否安装正确

进阶:连接 Wi-Fi

ESP32 最强大的功能之一是内置 Wi-Fi。下面是一个连接 Wi-Fi 并通过串口输出 IP 地址的示例:

#include <WiFi.h>

const char* ssid = "你的WiFi名称";
const char* password = "你的WiFi密码";

void setup() {
  Serial.begin(115200);
  delay(1000);
  
  Serial.println();
  Serial.print("正在连接 Wi-Fi: ");
  Serial.println(ssid);
  
  WiFi.begin(ssid, password);
  
  // 等待连接成功
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  
  Serial.println();
  Serial.println("Wi-Fi 连接成功!");
  Serial.print("IP 地址: ");
  Serial.println(WiFi.localIP());
  Serial.print("信号强度: ");
  Serial.print(WiFi.RSSI());
  Serial.println(" dBm");
}

void loop() {
  // 主循环可以添加其他逻辑
  delay(1000);
}

上传后打开串口监视器(工具 → 串口监视器,波特率 115200),你会看到:

正在连接 Wi-Fi: YourWiFiName
.....
Wi-Fi 连接成功!
IP 地址: 192.168.1.100
信号强度: -45 dBm

下一步:探索更多 ESP32 功能

完成本教程后,你可以继续学习:

  1. ESP32 进阶功能:EEPROM 存储、UART 串口通信、OTA 空中升级
  2. ESP32-C6 Matter 智能家居:用 ESP32-C6 搭建 Matter 协议智能家居
  3. ESP32-S3 SDR DIY:用 ESP32-S3 制作全波段软件定义无线电
  4. ESP32 实时 AI SDK:在 ESP32 上运行语音识别和图像分类

常见问题排查

Q: 搜索”eps32”能找到 ESP32 吗?

A: 可以!“eps32” 是 “ESP32” 的常见拼写错误。Google 会自动纠正拼写,所以搜索 “eps32” 会显示 “ESP32” 的结果。本教程也包含了这个关键词,方便拼写错误的用户找到。

Q: ESP32 和 Arduino 有什么区别?

A: Arduino 是开发平台和编程语言(基于 C++),ESP32 是硬件芯片。你可以用 Arduino IDE 给 ESP32 编程,也可以用 ESP-IDF(乐鑫官方 SDK)直接开发。本教程使用 Arduino 框架,适合入门。

Q: ESP32 能直接驱动 5V 设备吗?

A: 不能。ESP32 的 GPIO 是 3.3V 电平,直接连接 5V 设备可能损坏芯片。需要使用电平转换模块(如 TXS0108E)或分压电阻。

Q: 为什么我的 ESP32 经常重启?

A: 常见原因:

  • 电源不足:USB 线质量差或 USB 口供电不足,换一根好的数据线
  • 代码问题:看门狗超时(watchdog timeout),检查是否有死循环
  • 内存溢出:PSRAM 未正确初始化,大数组导致栈溢出