ESP32-CAM

ESP32-CAM介紹

ESP32-CAM AI-Thinker 引腳指南:GPIO 使用說明

ESP32-CAM 是一個開發板,包含一個 ESP32-S 芯片、一個 OV2640 攝像頭、microSD 卡插槽和幾個用於連接外設的 GPIO。

特徵

以下是 ESP32-CAM 功能列表:

  • 最小的 802.11b/g/n Wi-Fi BT SoC 模塊

  • 低功耗 32 位 CPU,也可服務於應用處理器

  • 時鐘速度高達 160MHz,匯總計算能力高達 600 DMIPS

  • 內置 520 KB SRAM,外置 4MPSRAM

  • 支持UART/SPI/I2C/PWM/ADC/DAC

  • 支持OV2640和OV7670攝像頭,內置閃光燈

  • 支持圖片WiFI上傳

  • 支持TF卡

  • 支持多種睡眠模式

  • 嵌入式 Lwip 和 FreeRTOS

  • 支持STA/AP/STA+AP操作模式

  • 支持 Smart Config/AirKiss 技術

  • 支持串口本地和遠程固件升級(FOTA)

下圖顯示了ESP32-CAM AI-Thinker的引腳圖

電源引腳

ESP32-CAM 帶有三個 地線 引腳(黑色)和兩個 電源 引腳(紅色): 3.3V5V

您可以通過以下方式為 ESP32-CAM 供電 3.3V 或者 5V針腳。但是,很多人在使用 3.3V 為 ESP32-CAM 供電時產生錯誤,因此我們始終建議通過 5V 引腳為 ESP32-CAM 供電

電源輸出引腳

絲印上還有標記為的別針 電壓互感器(用黃色矩形著色)。您不應使用該引腳為 ESP32-CAM 供電。那是一個輸出電源引腳。它可以輸出5V或3.3V。

在我們的例子中,ESP32-CAM 無論是用 5V 還是 3.3V 供電,都會輸出 3.3V。在 VCC 引腳旁邊,有兩個焊盤。一個標記為 3.3V,另一個標記為 5V。

如果仔細觀察,您應該在 3.3V 焊盤上有一個跳線。如果您想在 VCC 引腳上獲得 5V 輸出,則需要拆焊該連接並焊接 5V 焊盤。

串行引腳

通用輸入輸出口 1 和 通用輸入輸出口 3是串行引腳(分別為 TX 和 RX)。由於 ESP32-CAM 沒有內置編程器,因此您需要使用這些引腳與開發板通信並上傳代碼。

將代碼上傳到 ESP32-CAM 的最佳方式是使用連接器,了解如何將代碼上傳到 ESP32-CAM AI-Thinker

您可以使用 通用輸入輸出口 1 和 通用輸入輸出口 3上傳代碼後連接其他外圍設備,如輸出或傳感器。但是,您將無法打開串行監視器並查看您的設置是否一切正常。

通用輸入輸出口 0

通用輸入輸出口 0確定 ESP32 是否處於閃爍模式。該 GPIO 在內部連接到一個 10k 歐姆的上拉電阻。

當 GPIO 0 連接到 GND 時,ESP32 進入閃爍模式,您可以將代碼上傳到板上。

通用輸入輸出口 0 連接到 地線 » ESP32-CAM 閃爍模式

要使 ESP32“正常”運行,您只需要斷開 GPIO 0 與 GND 的連接。

MicroSD 卡連接

以下引腳用於在運行時與 microSD 卡連接。

MicroSD 卡 ESP32

時鐘 通用輸入輸出口 14

指令 通用輸入輸出口 15

數據0 通用輸入輸出口 2

DATA1 / 手電筒 通用輸入輸出口 4

數據2 通用輸入輸出口 12

數據3 通用輸入輸出口 13


如果您不使用 microSD 卡,則可以將這些引腳用作常規輸入/輸出。您可以查看ESP32 引腳指南以了解這些引腳的功能。

所有這些 GPIO 都是 RTC 並支持 ADC:GPIO 2、4、12、13、14 和 15。

手電筒(GPIO 4)

ESP32-CAM 有一個非常明亮的內置 LED,可以在拍照時用作閃光燈。該 LED 在內部連接到通用輸入輸出口 4

該 GPIO 也連接到 microSD 卡插槽,因此在嘗試同時使用兩者時可能會遇到麻煩——使用 microSD 卡時手電筒會亮起。

注意:我們的一位讀者分享說,如果您按如下方式初始化 microSD 卡,則不會出現此問題,因為 microSD 卡不會使用該數據線。*

SD_MMC.begin("/sdcard", true)

* 我們發現這是有效的,而且 LED 不會產生那種閃光效果。然而,LED 仍然以低亮度點亮——我們不確定是否遺漏了什麼。

GPIO 33 – 內置紅色 LED

RST 按鈕旁邊有一個板載紅色 LED。該 LED 在內部連接到通用輸入輸出口 33. 您可以使用此 LED 來指示正在發生的事情。例如,如果連接了 Wi-Fi,則 LED 為紅色,反之亦然。

該 LED 以反向邏輯工作,因此您發送 低的 打開它的信號和一個 高的 關閉它的信號。

您可以嘗試上傳以下代碼段,看看 LED 是否發光。


void setup() {

pinMode(33, OUTPUT);

}

void loop() {

digitalWrite(33, LOW);

}

相機連接

相機與 ESP32-CAM AI-Thinker 的連接如下表所示。

OV2640 CAMERA ESP32 Variable name in code

D0 GPIO 5 Y2_GPIO_NUM

D1 GPIO 18 Y3_GPIO_NUM

D2 GPIO 19 Y4_GPIO_NUM

D3 GPIO 21 Y5_GPIO_NUM

D4 GPIO 36 Y6_GPIO_NUM

D5 GPIO 39 Y7_GPIO_NUM

D6 GPIO 34 Y8_GPIO_NUM

D7 GPIO 35 Y9_GPIO_NUM

XCLK GPIO 0 XCLK_GPIO_NUM

PCLK GPIO 22 PCLK_GPIO_NUM

VSYNC GPIO 25 VSYNC_GPIO_NUM

HREF GPIO 23 HREF_GPIO_NUM

SDA GPIO 26 SIOD_GPIO_NUM

SCL GPIO 27 SIOC_GPIO_NUM

POWER PIN GPIO 32 PWDN_GPIO_NUM

因此,Arduino IDE 上 ESP32-CAM AI-Thinker 的引腳定義應如下所示:

#define PWDN_GPIO_NUM 32

#define RESET_GPIO_NUM -1

#define XCLK_GPIO_NUM 0

#define SIOD_GPIO_NUM 26

#define SIOC_GPIO_NUM 27

#define Y9_GPIO_NUM 35

#define Y8_GPIO_NUM 34

#define Y7_GPIO_NUM 39

#define Y6_GPIO_NUM 36

#define Y5_GPIO_NUM 21

#define Y4_GPIO_NUM 19

#define Y3_GPIO_NUM 18

#define Y2_GPIO_NUM 5

#define VSYNC_GPIO_NUM 25

#define HREF_GPIO_NUM 23

#define PCLK_GPIO_NUM 22