Подключение и настройка ESP32-CAM

13 октября 2026 г.
mrx
6 мин чтения

Веб-сервер потокового видео ESP32-CAM. Интеграция с Home Assistant

Распиновка ESP32-CAM AI-Thinker

Принципиальная схема ESP32-CAM

Основные характеристики ESP32-CAM:

Беспроводной модуль - ESP32-S WiFi 802.11 b/g/n + модуль Bluetooth; Внешнее хранилище - слот для карт micro- SD ёмкостью до 4 ГБ; Поддержка камер OV2640 (продаётся с платой) или OV7670; Формат изображения - JPEG (только OV2640), BMP, оттенки серого; Светодиодная вспышка. Контакты – 16 с интерфейсами UART, SPI, I2C, PWM Напряжение питания - 5 В;

Потребляемая мощность:

при выключенной вспышке - 180 мА; при включенной вспышке - 310 мА; глубокий сон - 6 мА; модем-сон - 20 мА; лёгкий сон - 6,7 мА.

Размеры - 40,5 х 27 х 4,5 мм

Температурный диапазон:

рабочий: 20 – 85 ℃; хранение: -40 - 90 ℃ при 90% относительной влажности.

Схема подключения модуля к компьютеру для программирования через USB-to-UART TTL конвертер

Для большинства случаев питание 5v на модуль необходимо подавать отдельно, не забывая при этом, что земля у всей связки должна быть общей

Для подключения к Arduino необходимо интегрировать поддержку нашего модуля ESP32. Идем в настройки (File - Preferences) и в нижней части окна настроек в Additional Boards Manager URLs добавляем строку:

text
https://dl.espressif.com/dl/package_esp32_index.json

Теперь в Boards Manager (Tools - Board - Boards Manager) нужно найти и установить поддержку esp32

Подключение карты MicroSD

Следующие контакты используются для взаимодействия с картой памяти microSD, когда она установлена в соответствующий разъем на плате.

text
MicroSD card        ESP32
CLK	                GPIO 14
CMD                 GPIO 15
DATA0               GPIO 2
DATA1 / flashlight  GPIO 4
DATA2               GPIO 12
DATA3               GPIO 13

Если вы не используете карту microSD, вы можете использовать эти контакты как обычные входы / выходы. Вы можете посмотреть руководство по распиновке ESP32, чтобы увидеть особенности этих контактов.

Все эти GPIO являются RTC и поддерживают ADC: GPIO 2, 4, 12, 13, 14 и 15.

Фонарик (GPIO 4)

Фонарик — этот светодиод внутренне подключен к GPIO 4.

Этот GPIO также подключен к слоту для карты microSD, поэтому у вас могут возникнуть проблемы при попытке использовать оба устройства одновременно — фонарик загорится при использовании карты microSD.

Примечание: один из наших читателей поделился, что у вас не будет этой проблемы, если вы инициализируете карту microSD следующим образом, потому что карта microSD не будет использовать эту линию данных.*

text
SD_MMC.begin("/sdcard", true)

* после проверки было обнаружено, что это работает, и что светодиод не дает такого эффекта вспышки. Однако светодиод продолжает гореть с низкой яркостью – возможно при проверке был упущен какой-то момент.

GPIO 33 - встроенный красный светодиод

Рядом с кнопкой RST есть встроенный красный светодиод. Этот светодиод внутренне подключен к GPIO 33. Вы можете использовать этот светодиод, чтобы указать, что что-то происходит. Например, если Wi-Fi подключен, светодиод горит красным или наоборот.

Этот светодиод работает с перевернутой логикой, поэтому вы отправляете LOW сигнал на включение и HIGH сигнал, чтобы выключить его.

Вы можете поэкспериментировать, загрузив следующий фрагмент кода, и посмотреть, светится ли этот светодиод.

text
void setup() {
  pinMode(33, OUTPUT);
}
void loop() {
  digitalWrite(33, LOW);
  delay(500);
  digitalWrite(33, HIGH);
  delay(500);
}

Подключениe камеры

Соединения между камерой и ESP32-CAM AI-Thinker показаны в следующей таблице.

text
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

Определение контактов для ESP32-CAM AI-Thinker в среде Arduino IDE должно быть следующим:

text
#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