第1章 ESP32 入門完整教學:ESP32-WROOM-32、Arduino UNO 差異與應用

發布日期: |更新日期:
文章主圖:第1章 ESP32 入門完整教學:ESP32-WROOM-32、Arduino UNO 差異與應用

如果你已經學過 Arduino UNO,下一步想進入 Wi-Fi、Bluetooth、IoT 物聯網、智慧家庭、手機控制、Web Server、MQTT、感測器雲端監控,那麼 ESP32 是非常適合的進階平台。

ESP32 不只是一塊「速度更快的 Arduino」。它本身就是一個整合無線通訊、GPIO、ADC、PWM、UART、SPI、I²C 等周邊功能的微控制器平台。Espressif 將 ESP32 定位為整合 Wi-Fi 與 Bluetooth 的 SoC,可廣泛應用於 IoT 裝置。

對曾經使用 Arduino UNO 的學習者來說,ESP32 最大的優點是:

  • 可以繼續使用熟悉的 Arduino IDE 與 C/C++ 程式架構。
  • 內建 Wi-Fi。
  • 內建 Bluetooth。
  • CPU 效能與記憶體遠高於 Arduino UNO R3。
  • GPIO 與硬體周邊功能更多。
  • 適合建立 Web Server、MQTT、IoT、智慧家庭與無線感測器。
  • 可以直接連接網路,不需要再另外購買 Wi-Fi Shield。

本章將從最基本的觀念開始,完整說明:

  • ESP32 是什麼?
  • ESP32、ESP32-WROOM-32 與 ESP32 開發板有什麼差別?
  • ESP32-WROOM-32 的主要規格。
  • ESP32 開發板有哪些重要元件?
  • ESP32 和 Arduino UNO R3 有什麼不同?
  • ESP32 適合做哪些專題?
  • ESP32 使用時有哪些電壓與 GPIO 注意事項?
  • 如何使用 Arduino IDE 開發 ESP32?
  • 第一支 ESP32 LED 閃爍程式。
  • ESP32 初學者接下來應該怎麼學?

一、什麼是 ESP32?

ESP32 是 Espressif Systems(樂鑫科技)推出的微控制器 SoC 系列。

所謂 SoC(System on Chip),可以簡單理解成:

把 CPU、記憶體控制、無線通訊以及許多周邊控制功能整合到同一顆晶片中。

經典 ESP32 系列整合 2.4 GHz Wi-Fi 與 Bluetooth/Bluetooth Low Energy,非常適合無線連網與 IoT 應用。

因此,如果使用 Arduino UNO 製作:

  • 溫度感測器
  • LCD 顯示器
  • 繼電器控制器

通常只能在本機操作。

換成 ESP32 之後,就可以進一步加入:

感測器 → ESP32 → Wi-Fi → Router → Internet → Web / MQTT / Cloud

例如:

DHT22 → ESP32 → Wi-Fi → MQTT Server → 手機

或者:

手機瀏覽器 → Wi-Fi → ESP32 Web Server → Relay → 電燈

這就是 ESP32 在 IoT 教學中非常重要的原因。

二、ESP32、ESP32-WROOM-32、ESP32 開發板到底有什麼不同?

初學 ESP32 最容易混淆的,就是這三個名稱:

  • ESP32
  • ESP32-WROOM-32
  • ESP32 Development Board

它們並不是完全相同的東西。

2.1 ESP32:核心晶片/晶片系列

ESP32 最核心的部分是 Espressif 設計的微控制器 SoC。

經典 ESP32 晶片具有 CPU、Wi-Fi、Bluetooth、GPIO、ADC、DAC、UART、SPI、I²C 等功能。

但如果只有 ESP32 晶片本體,對一般 Maker 或初學者來說並不好使用。

因為還必須自己處理:

  • Flash Memory
  • Clock
  • 天線
  • RF 電路
  • 電源
  • PCB Layout
  • Boot 電路
  • USB 下載電路

所以一般初學者通常不會直接拿 ESP32 裸晶片開始實驗。

三、什麼是 ESP32-WROOM-32?

ESP32-WROOM-32 是非常經典的 ESP32 無線模組。

它不是完整的 USB 開發板,而是一個可以焊接在產品 PCB 上的模組。

ESP32-WROOM-32 模組整合 ESP32 SoC、4 MB SPI Flash 與 PCB 天線。

因此可以把它簡化理解成:

ESP32 晶片
   │
   ├── Flash Memory
   ├── RF 電路
   ├── PCB 天線
   └── 周邊元件
        ↓
ESP32-WROOM-32 模組

ESP32-WROOM-32 尺寸約為:

18 mm × 25.5 mm × 3.1 mm

官方產品資料顯示經典 ESP32-WROOM-32 採用 PCB Antenna 並配置 4 MB Flash。

3.1 2026 年學習 ESP32-WROOM-32 要注意什麼?

這一點很重要。

Espressif 目前已將原始 ESP32-WROOM-32 標示為:

NRND — Not Recommended For New Designs

也就是:

不建議再將它作為新的商業硬體設計首選。

NRND 並不代表它突然不能使用,也不等於立即停產。Espressif 對 NRND 的官方定義是:產品仍可能持續生產與支援,但由於已有更新產品,因此不建議拿來開始新的硬體設計。

但是對 Arduino/ESP32 教學、Maker 實驗與既有模組使用 而言,ESP32-WROOM-32 仍然具有非常高的學習價值。

原因是:

  • 市面上數量非常多。
  • 網路教材很多。
  • Library 支援成熟。
  • Arduino IDE 支援完整。
  • 各種感測器範例非常容易找到。
  • GPIO、Wi-Fi、Bluetooth、I²C、SPI、UART 等基本觀念可以延伸到其他 ESP32 系列。

因此,本套 ESP32 入門教材仍可用經典 ESP32-WROOM-32 類開發板作為學習平台;若未來要自己設計新的商品 PCB,再依 Espressif 最新產品線重新選擇 ESP32-C、ESP32-S 等較新的系列。

四、什麼是 ESP32 開發板?

如果把 ESP32-WROOM-32 直接拿到手上,你會發現它沒有一般 Arduino UNO 那麼方便。

因此廠商會再把 ESP32 模組裝到一塊開發 PCB 上,加入:

  • USB 接頭
  • USB-to-UART
  • 3.3V 穩壓電路
  • EN / Reset
  • BOOT 按鈕
  • GPIO Pin Header
  • 電源指示
  • 自動下載電路

這就形成我們通常購買到的:

ESP32 Development Board

例如官方 ESP32-DevKitC 就在開發板上整合 USB-to-UART Bridge、Boot Button、Reset/EN、LDO 電源穩壓以及 ESP32 模組,並將主要 GPIO 引腳引出,方便實驗與麵包板開發。

所以三者關係可以整理成:

ESP32 SoC
   ↓
ESP32-WROOM-32 Module
   ↓
ESP32 Development Board

也就是:

核心晶片
   ↓
無線模組
   ↓
方便學習與開發的完整電路板

五、ESP32-WROOM-32 主要規格

經典 ESP32-WROOM-32 是 ESP32 教學中最常遇到的模組之一。

其主要能力可整理如下。

ESP32-WROOM-32 主要規格
項目 ESP32-WROOM-32
CPU 架構 32-bit Xtensa LX6
CPU 最高可達 240 MHz
Wi-Fi 2.4 GHz 802.11 b/g/n
Bluetooth Bluetooth + BLE
Flash 常見模組為 4 MB
GPIO 多組可程式化 GPIO
ADC 支援
DAC 支援
PWM 支援
UART 支援
I²C 支援
SPI 支援
I²S 支援
Capacitive Touch 支援
工作邏輯電壓 3.3 V

ESP32 系列官方資料顯示經典 ESP32 具備雙核心 Xtensa LX6 架構、最高 240 MHz CPU,以及 Wi-Fi、Bluetooth、ADC、DAC、Touch Sensor、UART、SPI、I²C、I²S 等硬體周邊。實際可用 GPIO 數量與功能則必須依模組及開發板 Pinout 判斷。

這裡非常重要:

不要看到 ESP32 有很多腳位,就假設每一個腳位都能任意作為普通 Digital I/O。

某些 GPIO:

  • 可能與 Flash 有關。
  • 可能屬於 Boot Strapping Pin。
  • 有些只能 Input。
  • 有些上電時具有特殊功能。
  • 不同 ESP32 開發板實際引出的 GPIO 也可能不同。

所以日後做專題時,一定要查你手上那一塊 ESP32 開發板的 Pinout Diagram。

六、ESP32 和 Arduino UNO R3 有什麼差別?

如果已經學過 Arduino UNO R3,ESP32 可以看成非常自然的下一個階段。

Arduino UNO R3 使用 ATmega328P 微控制器,官方規格包括 14 個 Digital I/O,其中 6 個支援 PWM、6 個 Analog Input,CPU 時脈為 16 MHz。

UNO R3 的 ATmega328P 擁有 32 KB Flash 與 2 KB SRAM。

兩者可以比較如下:

ESP32 與 Arduino UNO R3 規格比較
比較項目 Arduino UNO R3 經典 ESP32
MCU ATmega328P ESP32
架構 8-bit AVR 32-bit
CPU Clock 16 MHz 最高 240 MHz
核心 單核心 經典型號支援雙核心
SRAM 2 KB 大幅高於 UNO
Flash 32 KB 開發模組常見 MB 等級
Wi-Fi 無 有
Bluetooth 無 有
工作邏輯 5 V 3.3 V
ADC 有 有
DAC 無 有
Touch Sensor 無 有
UART 有 有,多組
SPI 有 有
I²C 有 有
適合入門 非常適合 適合有 Arduino 基礎者
IoT 需增加模組 非常適合

ESP32 在運算、記憶體與無線連線方面遠高於 UNO R3;UNO R3 的優勢則是電路單純、5V 周邊相容性高,而且非常適合學習最基本的 Digital I/O、Analog Input 與微控制器觀念。相關 UNO R3 規格可由 Arduino 官方文件確認。

七、Arduino UNO 還是 ESP32?初學者應該選哪一個?

答案不是「ESP32 比較快,所以 Arduino UNO 就沒有用了」。

兩者適合不同學習階段。

如果完全沒有微控制器經驗,Arduino UNO R3 仍非常適合學習:

LED
↓
Button
↓
PWM
↓
ADC
↓
Buzzer
↓
LCD
↓
Sensor
↓
Relay
↓
Servo

因為 UNO 架構相對簡單。

完成 Arduino 基礎後,再轉 ESP32:

GPIO
↓
ADC / PWM
↓
I2C / SPI / UART
↓
Wi-Fi
↓
Bluetooth
↓
Web Server
↓
MQTT
↓
IoT
↓
Cloud
↓
Home Automation

這會是一條非常合理的學習曲線。

八、ESP32 最大優勢之一:內建 Wi-Fi

ESP32 和 Arduino UNO 最大差別之一,就是 Wi-Fi 已經整合在晶片平台中。Espressif 官方將 ESP32 定位為具有整合 Wi-Fi 與 Bluetooth 連線能力的 SoC。

Arduino UNO 如果要上網,通常需要再增加:

  • Ethernet Shield
  • Wi-Fi Shield
  • ESP8266
  • 其他網路模組

ESP32 則可以直接做:

ESP32
  │
  ├─ Sensor
  ├─ Relay
  ├─ LCD
  └─ Wi-Fi
       │
       ↓
     Router
       │
       ↓
    Internet

因此非常適合:

  • IoT 感測器
  • 無線資料記錄
  • 手機控制
  • Web 控制器
  • MQTT
  • Home Assistant
  • REST API
  • 智慧家庭
  • 遠端設備監控

九、ESP32 另一個優勢:Bluetooth

除了 Wi-Fi,經典 ESP32 平台還整合 Bluetooth 與 Bluetooth Low Energy。

這代表 ESP32 可以製作:

  • Bluetooth 遙控器
  • BLE Sensor
  • 手機控制 LED
  • 手機控制 Relay
  • BLE Beacon
  • 無線資料傳輸
  • Bluetooth Serial 類型專案

所以 ESP32 不一定需要 Router。

例如:

Smartphone
    │
Bluetooth
    │
    ↓
 ESP32
    │
    ↓
 Relay
    │
    ↓
  Light

這也是它非常適合智慧家庭與行動裝置專案的原因。

十、ESP32 可以連接哪些電子模組?

大部分 Arduino 教學常使用的模組,都可以進一步應用在 ESP32。

例如:

感測器

  • DHT11
  • DHT22
  • DS18B20
  • BMP280
  • BME280
  • HC-SR04
  • PIR
  • LDR
  • MQ 系列
  • Soil Moisture Sensor
  • MPU6050

顯示器

  • OLED SSD1306
  • LCD1602 I²C
  • TFT LCD
  • SPI Display
  • MAX7219

輸出與控制

  • LED
  • RGB LED
  • Buzzer
  • Relay
  • SG90 Servo
  • DC Motor
  • Stepper Motor

通訊模組

  • GPS
  • LoRa
  • RFID
  • RS485
  • CAN Transceiver
  • UART Device
  • I²C Sensor
  • SPI Device

不過 ESP32 最大的硬體注意事項是:

ESP32 是 3.3V 邏輯系統。

所以不能因為某個模組可以直接接 Arduino UNO,就假設一定可以完全相同地接 ESP32。

十一、ESP32 最重要的電壓觀念:3.3V

這是 Arduino UNO 使用者轉到 ESP32 時,最容易出錯的地方。

Arduino UNO R3 本身屬於 5V 系統,而 ESP32 的 GPIO 邏輯則是 3.3V。Arduino 官方也將 UNO R3 的工作電壓列為 5V。

因此:

Arduino UNO GPIO
≈ 5V Logic

ESP32 GPIO
≈ 3.3V Logic

不要把外部 5V 訊號直接當成 ESP32 GPIO 的正常輸入訊號。

例如使用:

  • HC-SR04 Echo
  • 5V UART Module
  • 部分 5V Sensor Output
  • 5V Logic Module

都必須確認輸出電壓。

必要時使用:

Voltage Divider

或:

Logic Level Converter

十二、ESP32 開發板上的 VIN、5V 與 3V3 是什麼?

很多 ESP32 開發板通常可以看到:

VIN / 5V
3V3
GND

它們的用途並不完全相同。

VIN / 5V

通常與 USB 5V 電源系統相關。

3V3

是開發板穩壓後提供給 ESP32 與 3.3V 外部電路使用的電源。

GND

共同接地。

實際電源腳位配置仍應以你手上的開發板原理圖與 Pinout 為準,因為「ESP32 開發板」並不是單一固定硬體版本。

十三、ESP32 開發板常見的 EN 與 BOOT 按鈕

ESP32 Development Board 通常會看到兩個按鈕:

EN
BOOT

EN

EN 可以理解為 Enable / Reset。

按下之後通常會重新啟動 ESP32。

BOOT

BOOT 與韌體下載模式有關。

官方 ESP32-DevKitC 說明指出,BOOT 按鈕可用來使 ESP32 進入 Firmware Download Mode;官方開發板同時具有 EN/Reset 相關電路。

大部分帶有自動下載電路的 ESP32 開發板,在 Arduino IDE 中按 Upload 後可以自動完成燒錄。

但是某些板子如果出現:

Connecting.....

一直無法上傳,可能需要:

  • 按住 BOOT。
  • Arduino IDE 開始連線。
  • 連線成功後放開 BOOT。

這也是 ESP32 初學者非常常遇到的問題。

十四、ESP32 可以使用 Arduino IDE 嗎?

可以。

這正是 ESP32 非常適合 Arduino 使用者的原因之一。

Espressif 官方提供 Arduino-ESP32 開發支援,可以加入 Arduino IDE 使用。官方安裝文件也建議透過支援套件將 ESP32 開發環境安裝到 Arduino IDE。

所以原本 Arduino 的:

void setup()
{
}

void loop()
{
}

在 ESP32 Arduino Core 環境中仍然可以使用。

例如:

void setup()
{
  Serial.begin(115200);
}

void loop()
{
  Serial.println("Hello ESP32");
  delay(1000);
}

對 Arduino UNO 使用者來說,程式結構幾乎沒有學習障礙。

真正需要重新學習的是:

  • ESP32 GPIO 特性
  • 3.3V 電壓
  • Wi-Fi
  • Bluetooth
  • ESP32 Library
  • ADC 特性
  • PWM
  • 多核心與 RTOS 概念
  • 網路程式設計

十五、Arduino UNO 程式可以直接放到 ESP32 嗎?

答案是:

部分可以,但不能假設 100% 相容。

例如非常基本的:

pinMode()
digitalWrite()
digitalRead()
analogRead()
delay()
millis()
Serial.begin()

其使用方式相當接近。

因此:

pinMode(2, OUTPUT);
digitalWrite(2, HIGH);

這類基本 GPIO 程式對 Arduino 使用者並不陌生。

但是涉及:

  • AVR Register
  • Timer
  • EEPROM
  • Interrupt
  • PWM
  • Analog Reference
  • 特定 Arduino UNO Pin
  • AVR 專用 Library

就不一定可以直接搬過來。

所以不能單純認為:

把 Arduino UNO 板子換成 ESP32,所有 .ino 都一定能直接編譯。

比較正確的觀念是:

Arduino Framework 相近,但是底層硬體不同。

十六、ESP32 第一個實作:LED 閃爍

學習任何微控制器,第一個程式通常都是:

Blink

也就是讓 LED:

亮
↓
等 1 秒
↓
滅
↓
等 1 秒
↓
重複

假設我們使用 GPIO 2 控制一顆外接 LED。

材料

  • ESP32 Development Board × 1
  • LED × 1
  • 220Ω~330Ω 電阻 × 1
  • Breadboard × 1
  • Jumper Wire
  • USB Cable

接線

ESP32 GPIO2
     │
     ↓
   220Ω
     │
     ↓
    LED
     │
     ↓
    GND

LED 長腳通常為:

Anode +

LED 短腳通常為:

Cathode -

接法:

GPIO2 → 220Ω → LED → GND

十七、ESP32 LED Blink 程式

const int LED_PIN = 2;

void setup()
{
  pinMode(LED_PIN, OUTPUT);
}

void loop()
{
  digitalWrite(LED_PIN, HIGH);
  delay(1000);

  digitalWrite(LED_PIN, LOW);
  delay(1000);
}

程式非常接近 Arduino UNO。

十八、ESP32 Blink 程式解析

先定義 LED 腳位:

const int LED_PIN = 2;

表示:

LED → GPIO2

在 setup():

pinMode(LED_PIN, OUTPUT);

將 GPIO2 設定為 Output。

然後在:

loop()

中:

digitalWrite(LED_PIN, HIGH);

讓 LED 開啟。

接著:

delay(1000);

等待:

1000 ms = 1 second

然後:

digitalWrite(LED_PIN, LOW);

讓 LED 關閉。

最後再:

delay(1000);

等待一秒。

因此 LED 會持續:

ON → 1 秒
OFF → 1 秒
ON → 1 秒
OFF → 1 秒
...

如果你的 ESP32 開發板本身具有 LED,該 LED 所連接的 GPIO 會依開發板設計而不同,因此不要假設所有 ESP32 板子的 Built-in LED 都一定接 GPIO2。

十九、為什麼 ESP32 很適合 IoT?

假設 Arduino UNO 做一個溫度計:

DHT22
  │
  ↓
Arduino UNO
  │
  ↓
LCD1602

可以看到目前溫度。

但是 ESP32 可以做到:

DHT22
  │
  ↓
ESP32
  │
  ├── OLED
  │
  └── Wi-Fi
        │
        ↓
      Router
        │
        ↓
      MQTT
        │
        ↓
   Web / Mobile

進一步還可以做到:

Temperature > 30°C
        │
        ↓
      ESP32
        │
        ├── Relay ON
        │
        ├── Fan ON
        │
        └── MQTT Message
                 │
                 ↓
              Smartphone

因此 ESP32 非常適合從:

單機電子實作

跨入:

IoT 網路控制系統

二十、ESP32 可以製作哪些實用專題?

學完 ESP32 之後,可以建立很多 Arduino UNO 比較難單獨完成的專題。

例如:

1. Wi-Fi 溫溼度監測器

DHT22
 ↓
ESP32
 ↓
Wi-Fi
 ↓
Web Browser

2. 手機控制繼電器

Smartphone
 ↓
Wi-Fi
 ↓
ESP32
 ↓
Relay
 ↓
Lamp

3. ESP32 Web Server

直接讓 ESP32 成為小型 Web Server。

使用者只需要開啟瀏覽器:

http://ESP32-IP/

即可控制 GPIO。

4. MQTT IoT Sensor

ESP32
 ↓
MQTT Broker
 ↓
Node-RED
 ↓
Dashboard

5. 智慧家庭

ESP32 可以控制:

  • 電燈
  • 風扇
  • 電磁閥
  • 電動門
  • 繼電器
  • 感測器
  • 警報器

6. Bluetooth 手機控制

不需要 Wi-Fi Router,也可以使用 Bluetooth / BLE 讓手機與 ESP32 通訊。

7. ESP32-CAM

加入攝影機後可以延伸:

  • Wi-Fi Camera
  • 監控系統
  • 拍照
  • QR Code
  • Computer Vision
  • AIoT

這些都是 ESP32 非常典型的延伸方向。

二十一、Arduino UNO 使用者轉 ESP32 最容易犯的 7 個錯誤

錯誤 1:把 ESP32 當 5V GPIO 使用

ESP32 是 3.3V 邏輯系統。

這是第一個一定要建立的觀念。

錯誤 2:所有 GPIO 都隨便使用

不對。

部分 GPIO 具有:

  • Boot
  • Flash
  • Input only
  • 特殊啟動功能

因此要先查 Pinout。

錯誤 3:照抄 UNO 的 Pin Number

例如 Arduino UNO:

const int LED = 13;

不代表換成 ESP32 後仍應使用 GPIO13。

ESP32 GPIO 編號必須重新規劃。

錯誤 4:Arduino Library 一定相容

某些 Library 是:

AVR Only

因此可能只能在:

UNO
Mega
Nano

等 AVR 平台使用。

選擇 Library 時要確認是否支援:

ESP32

錯誤 5:選錯 Arduino IDE Board

ESP32 有很多不同開發板。

例如:

ESP32 Dev Module
ESP32 DevKitC
ESP32-WROOM
ESP32-S3
ESP32-C3
ESP32-C6

選錯 Board 可能造成:

  • 編譯錯誤
  • Flash Size 不對
  • PSRAM 不對
  • Upload 失敗
  • USB 功能異常

錯誤 6:USB Cable 只有充電功能

有些 USB Cable:

Power Only

沒有 Data Line。

結果會變成:

ESP32 有亮

但是:

Arduino IDE 看不到 COM Port

遇到這種情況,第一件事就是換一條確定可以傳輸資料的 USB Cable。

錯誤 7:忽略不同 ESP32 開發板的差異

「ESP32」不是只有一塊固定板子。

同樣叫 ESP32 Development Board,市面上就可能具有:

  • 不同 USB-to-UART
  • 不同 USB Connector
  • 不同 Pin 數量
  • 不同 Flash
  • 不同 ESP32 Module
  • 不同 LED GPIO
  • 不同電源設計

因此購買開發板之後,最好先保存:

  • 型號
  • Pinout
  • Schematic
  • Module 型號
  • USB Driver 資訊

二十二、ESP32 與 Arduino UNO 的定位

如果用一句話來區分:

Arduino UNO 適合學微控制器基本功,ESP32 適合從微控制器進一步進入 Wi-Fi、Bluetooth 與 IoT。

因此兩者並不是互相取代,而是很好的學習銜接。

推薦順序:

Arduino UNO
    ↓
Digital I/O
    ↓
Analog Input
    ↓
PWM
    ↓
I2C / SPI / UART
    ↓
Sensor / Relay / Motor
    ↓
ESP32
    ↓
Wi-Fi
    ↓
Bluetooth
    ↓
Web Server
    ↓
MQTT
    ↓
IoT
    ↓
Cloud

如果已經具備 Arduino UNO 基礎,ESP32 就是非常適合的下一階段。

二十三、ESP32-WROOM-32 適合誰?

ESP32-WROOM-32 類型開發板尤其適合:

  • Arduino 使用者
  • 電子電路初學者
  • Maker
  • 工程科學生
  • IoT 初學者
  • 自動控制開發者
  • 智慧家庭開發者
  • 無線感測器開發者
  • MQTT / Node-RED 學習者
  • 想建立 Web 控制器的人

如果你的目標只是:

LED + Button

Arduino UNO 已經足夠。

但是如果目標是:

Sensor
+
Wi-Fi
+
Web
+
Mobile
+
Cloud

ESP32 就非常值得學習。

二十四、本章實作成果

完成本章之後,你應該已經了解:

  • ESP32 是什麼。
  • ESP32 SoC 是什麼。
  • ESP32-WROOM-32 是什麼。
  • ESP32 Development Board 是什麼。
  • 三者之間的關係。
  • ESP32 與 Arduino UNO R3 的差異。
  • ESP32 為什麼適合 IoT。
  • ESP32 使用 3.3V 邏輯的重要性。
  • ESP32 可以使用 Arduino IDE。
  • Arduino 程式移植到 ESP32 時需要注意硬體差異。
  • 如何建立第一個 LED Blink 實作。
  • ESP32 可以進一步發展哪些 IoT 專題。

二十五、常見問題 FAQ

Q1:ESP32 可以直接用 Arduino IDE 嗎?

可以。

Espressif 官方維護 Arduino-ESP32 支援套件,因此 ESP32 可以在 Arduino IDE 中進行程式開發。

Q2:ESP32-WROOM-32 就是 ESP32 開發板嗎?

不是。

ESP32-WROOM-32 是無線模組;開發板則是在模組之外再增加 USB、USB-to-UART、穩壓、BOOT、Reset 與 GPIO 接腳等電路。官方 ESP32-DevKitC 就屬於後者。

Q3:ESP32 比 Arduino UNO 快嗎?

以經典 ESP32 與 UNO R3 相比,答案是明顯較高。

UNO R3 採用 16 MHz ATmega328P,而經典 ESP32 CPU 最高可達 240 MHz,且架構、核心數與記憶體資源也不同。

但「速度比較快」不代表所有專題都一定需要 ESP32。

Q4:ESP32 可以用 5V 嗎?

必須區分:

開發板供電

與

GPIO 邏輯電壓

這是兩件不同的事情。

部分 ESP32 開發板可以從 USB/VIN 取得 5V 電源,再由板上穩壓器供應 ESP32 所需電源;但是 ESP32 GPIO 屬於 3.3V 邏輯,不能因為開發板可由 USB 5V 供電,就把 GPIO 當成 Arduino UNO 的 5V GPIO 使用。

Q5:ESP32 有 Wi-Fi 嗎?

有。

Wi-Fi 是 ESP32 最核心的功能之一,經典 ESP32 支援 2.4 GHz Wi-Fi。

Q6:ESP32 有 Bluetooth 嗎?

經典 ESP32 支援 Bluetooth 與 Bluetooth Low Energy。

不過 ESP32 家族後來已發展出多個系列,不同型號的無線功能並不完全相同,因此實際選型時應查看該型號官方 Datasheet。

Q7:ESP32-WROOM-32 現在還值得學嗎?

值得。

它仍非常適合:

  • ESP32 基本 GPIO
  • Wi-Fi
  • Bluetooth
  • Arduino IDE
  • I²C
  • SPI
  • UART
  • MQTT
  • Web Server
  • IoT

等教學。

但是若是 2026 年開始設計新的量產商品,要注意 Espressif 已將原始 ESP32-WROOM-32 標為 NRND,因此正式產品選型應再查看目前 ESP32 新系列與官方 Product Selector。

二十六、ESP32 學習路線建議

完成第一章之後,不建議立刻跳到很複雜的 MQTT 或 Cloud。

比較適合的順序是:

第 1 階段
ESP32 硬體認識
        ↓
第 2 階段
Arduino IDE + Upload
        ↓
第 3 階段
GPIO Output
        ↓
第 4 階段
GPIO Input
        ↓
第 5 階段
ADC / PWM
        ↓
第 6 階段
Sensor
        ↓
第 7 階段
I2C / SPI / UART
        ↓
第 8 階段
Wi-Fi
        ↓
第 9 階段
Web Server
        ↓
第 10 階段
MQTT
        ↓
第 11 階段
IoT Project

這樣學會比一開始直接複製複雜的 IoT 程式更容易真正理解 ESP32。

二十七、本章總結

ESP32 是目前學習 IoT、Wi-Fi 微控制器與智慧家庭非常重要的平台之一。

如果 Arduino UNO 教會我們:

如何控制電子硬體

那麼 ESP32 接下來要學習的是:

如何讓電子硬體連上網路。

Arduino UNO R3 使用 ATmega328P、16 MHz CPU,具有 14 個 Digital I/O 與 6 個 Analog Input,是非常經典的微控制器入門平台。

經典 ESP32 則進一步加入更強大的 32-bit 處理能力以及 Wi-Fi、Bluetooth、ADC、DAC、Touch、SPI、I²C、UART 等功能,因此特別適合 IoT 與無線控制應用。

本章最重要的三個觀念是:

第一:ESP32、ESP32-WROOM-32 與 ESP32 Development Board 不完全相同。

第二:ESP32 GPIO 是 3.3V 邏輯,不能照搬 Arduino UNO 的 5V 使用習慣。

第三:Arduino UNO 與 ESP32 並不是二選一,而是一條非常好的學習進階路線。

因此,我們接下來就可以正式進入 ESP32 開發環境。

下一章將開始:

第 2 章 ESP32 Arduino IDE 安裝完整教學:開發板套件、USB Driver、COM Port 與第一支程式

我們將實際完成:

Arduino IDE
     ↓
ESP32 Board Package
     ↓
USB Driver
     ↓
COM Port
     ↓
Board Selection
     ↓
Compile
     ↓
Upload
     ↓
Serial Monitor

完成之後,就正式具備 ESP32 程式開發環境。

下一步學習

不要停在這一篇,接著把內容做成自己的實作

目前主題:Arduino。從完整學習路線、免費資源、會員下載,再接到實作所需材料。

同系列:ESP32 |  已是會員?直接前往 Getfile
相關資源與會員文章下載
文章可免費閱讀;下載完整 DOCX 或 PDF 需登入免費基本會員。
查看相關資源 會員免費下載 DOCX 會員免費 PDF/列印

← 回文章列表