ESP32-CAM AI-Thinker: распиновка и руководство по GPIO
ESP32-CAM — это плата разработки с чипом ESP32-S, камерой OV2640, слотом для карты microSD и несколькими GPIO для подключения периферийных устройств. В этом руководстве мы рассмотрим распиновку GPIO ESP32-CAM и способы их использования.
Схема распиновки
На следующем изображении показана схема распиновки ESP32-CAM AI-Thinker.
Принципиальная схема
На следующем рисунке показана принципиальная схема ESP32-CAM.
Вы можете скачать PDF-файл с лучшим разрешением в этом GitHub-репозитории.
Выводы питания
ESP32-CAM имеет три вывода GND (отмечены чёрным цветом) и два вывода питания (отмечены красным цветом): 3.3V и 5V.
Вы можете питать ESP32-CAM через выводы 3.3V или 5V. Однако многие пользователи сообщали об ошибках при питании ESP32-CAM от 3.3V, поэтому мы всегда рекомендуем питать ESP32-CAM через вывод 5V.
Выходной вывод питания
Также имеется вывод, обозначенный на плате как VCC (отмечен жёлтым прямоугольником). Вы не должны использовать этот вывод для питания ESP32-CAM. Это выходной вывод питания. Он может выдавать либо 5V, либо 3.3V.
В нашем случае ESP32-CAM выдаёт 3.3V независимо от того, питается ли плата от 5V или 3.3V. Рядом с выводом VCC расположены две контактные площадки. Одна обозначена как 3.3V, другая — как 5V.
Если присмотреться, вы увидите перемычку на контактных площадках 3.3V. Если вы хотите получить 5V на выводе VCC, вам нужно отпаять это соединение и запаять контактные площадки 5V.
Последовательные выводы (Serial)
GPIO 1 и GPIO 3 — это последовательные выводы (TX и RX соответственно). Поскольку ESP32-CAM не имеет встроенного программатора, вам нужно использовать эти выводы для связи с платой и загрузки кода.
Лучший способ загрузки кода на ESP32-CAM — использование FTDI-программатора.
Узнайте, как загрузить код на ESP32-CAM AI-Thinker.
Вы можете использовать GPIO 1 и GPIO 3 для подключения других периферийных устройств, таких как выходы или датчики, после загрузки кода. Однако вы не сможете открыть Serial Monitor, чтобы проверить, всё ли в порядке с вашей установкой.
GPIO 0
GPIO 0 определяет, находится ли ESP32 в режиме прошивки или нет. Этот GPIO внутренне подключён к подтягивающему резистору 10 кОм.
Когда GPIO 0 подключён к GND, ESP32 переходит в режим прошивки, и вы можете загрузить код на плату.
GPIO 0 подключён к GND — ESP32-CAM в режиме прошивки
Чтобы ESP32 работал в «обычном» режиме, просто отключите GPIO 0 от GND.
GPIO 16
GPIO 16 подключён к внутренней PSRAM на многих платах ESP32-CAM. Если вы хотите использовать этот вывод для подключения периферийных устройств при использовании камеры, убедитесь, что вы отключили PSRAM в вашем коде.
Подключения карты MicroSD
Следующие выводы используются для взаимодействия с картой microSD во время её работы.
MicroSD карта |
ESP32 |
|---|---|
CLK |
GPIO 14 |
CMD |
GPIO 15 |
DATA0 |
GPIO 2 |
DATA1 / вспышка |
GPIO 4 |
DATA2 |
GPIO 12 |
DATA3 |
GPIO 13 |
Если вы не используете карту microSD, вы можете использовать эти выводы как обычные входы/выходы. Вы можете ознакомиться с руководством по распиновке ESP32, чтобы узнать о возможностях этих выводов.
Чтобы освободить несколько GPIO, вы можете настроить карту microSD на работу в 1-битном режиме. В этом случае вы освободите GPIO 12 и 13.
Все эти GPIO являются RTC и поддерживают АЦП: GPIO 2, 4, 12, 13, 14 и 15.
Вспышка (GPIO 4)
ESP32-CAM имеет яркий встроенный светодиод, который может работать как вспышка при фотосъёмке. Этот светодиод внутренне подключён к GPIO 4.
Этот GPIO также подключён к слоту карты microSD, поэтому у вас могут возникнуть проблемы при попытке использовать оба устройства одновременно. Вспышка будет загораться при использовании карты microSD.
Примечание: один из наших читателей поделился тем, что если вы инициализируете карту microSD следующим образом, у вас не будет этой проблемы, потому что карта microSD не будет использовать эту линию данных.*
SD_MMC.begin("/sdcard", true)
* мы обнаружили, что это работает и светодиод не даёт эффекта вспышки. Однако светодиод остаётся включённым с низкой яркостью — мы не уверены, что мы что-то упускаем.
GPIO 33 — встроенный красный светодиод
Рядом с кнопкой RST расположен встроенный красный светодиод. Этот светодиод внутренне подключён к GPIO 33. Вы можете использовать этот светодиод для индикации того, что что-то происходит. Например, включить красный светодиод при подключении к Wi-Fi.
Этот светодиод работает с инвертированной логикой: вы отправляете сигнал LOW, чтобы включить его, и HIGH, чтобы выключить.
Вы можете поэкспериментировать, загрузив следующий фрагмент кода, и посмотреть, загорится ли светодиод.
void setup() {
pinMode(33, OUTPUT);
}
void loop() {
digitalWrite(33, LOW);
}
Подключения камеры
Соединения между камерой и ESP32-CAM AI-Thinker показаны в следующей таблице.
Камера OV2640 |
ESP32 |
Имя переменной в коде |
|---|---|---|
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 |
Таким образом, определение выводов для ESP32-CAM AI-Thinker в Arduino IDE должно быть следующим:
#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
Заключение
Мы надеемся, что это руководство по GPIO ESP32-CAM было полезным. Если у вас есть советы или дополнительная информация о GPIO ESP32-CAM, напишите комментарий ниже.
У нас есть несколько проектов с ESP32-CAM, которые могут вам понравиться: