← До всіх проєктів
Камера Середній

ESP32-CAM: Wi-Fi камера з відеопотоком за 10 доларів

Запускаємо офіційний приклад CameraWebServer на платі AI-Thinker ESP32-CAM: живе відео в браузері, фото, розпізнавання облич і налаштування якості.

Складність
Середній
Час
1–2 h
Категорія
Камера

Що отримаємо

Плата ESP32-CAM (AI-Thinker) з камерою OV2640 коштує кілька доларів, але вміє транслювати відео MJPEG у браузер, робити знімки та навіть виявляти обличчя. Ми використаємо офіційний приклад CameraWebServer від Espressif — він уже містить повноцінний веб-інтерфейс.

Компоненти

  • Плата ESP32-CAM AI-Thinker з камерою OV2640
  • USB-UART адаптер (FTDI / CP2102 / CH340) з виходом 5 В — або плата-«донька» ESP32-CAM-MB з micro-USB (найзручніше)
  • Дроти мама-мама
  • Блок живлення 5 В ≥ 1 А для постійної роботи

Підключення для прошивки (якщо без ESP32-CAM-MB)

USB-UART ESP32-CAM
5V 5V
GND GND
TX U0R (GPIO 3)
RX U0T (GPIO 1)
— IO0 ↔ GND (перемичка — лише для прошивки)

Перемичка IO0 → GND переводить плату в режим завантаження. Після прошивки її обов'язково знімають.

Налаштування Arduino IDE

  1. Пакет плат esp32 by Espressif Systems 3.x.
  2. Плата: AI Thinker ESP32-CAM.
  3. Partition Scheme: Huge APP (3MB No OTA/1MB SPIFFS) — приклад великий.
  4. Відкрийте File → Examples → ESP32 → Camera → CameraWebServer.

Що змінити у прикладі

Оберіть модель камери — розкоментуйте рядок AI-Thinker і закоментуйте решту (у нових версіях ядра це файл board_config.h, у старіших — сам CameraWebServer.ino):

// #define CAMERA_MODEL_WROVER_KIT
// #define CAMERA_MODEL_ESP_EYE
#define CAMERA_MODEL_AI_THINKER   // ← наша плата

Вкажіть свою мережу:

const char *ssid = "YOUR_SSID";
const char *password = "YOUR_PASSWORD";

Прошивка та запуск

  1. Встановіть перемичку IO0–GND, натисніть RST, завантажте скетч.
  2. Зніміть перемичку, відкрийте Serial Monitor (115200) і знову натисніть RST.
  3. У лозі з'явиться Camera Ready! Use 'http://192.168.x.x' to connect.
  4. Відкрийте адресу → Start Stream. Потік також доступний напряму: http://<IP>:81/stream.

Налаштування якості

У веб-інтерфейсі можна змінити роздільну здатність (до UXGA 1600×1200), якість JPEG, яскравість, баланс білого, дзеркалення. Для плавного відео оптимально VGA/SVGA з якістю 10–12.

Типові проблеми

  • Brownout detector was triggered — не вистачає живлення. Використайте окремий БЖ 5 В ≥ 1 А та короткі товсті дроти.
  • Camera init failed with error 0x105 — невірно обрана модель або погано вставлений шлейф камери.
  • Дуже гріється — це нормально при безперервному стрімі; додайте невеликий радіатор або знизьте роздільну здатність.
  • Яскравий спалах на GPIO 4 — це вбудований LED-спалах; ним можна керувати з інтерфейсу.

Безпека

У прикладі немає автентифікації. Не відкривайте порт камери в інтернет. Для віддаленого перегляду використовуйте VPN (WireGuard, Tailscale) або інтеграцію з Home Assistant / Frigate.

Ідеї

  • Датчик руху PIR + фото в Telegram-бот.
  • Таймлапс росту рослин із записом на microSD.
  • Готова прошивка ESPHome (esp32_camera) для інтеграції з Home Assistant.