ESP32-CAM: Wi-Fi камера з відеопотоком за 10 доларів
Запускаємо офіційний приклад CameraWebServer на платі AI-Thinker ESP32-CAM: живе відео в браузері, фото, розпізнавання облич і налаштування якості.
Що отримаємо
Плата 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
- Пакет плат esp32 by Espressif Systems 3.x.
- Плата: AI Thinker ESP32-CAM.
- Partition Scheme: Huge APP (3MB No OTA/1MB SPIFFS) — приклад великий.
- Відкрийте 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";
Прошивка та запуск
- Встановіть перемичку IO0–GND, натисніть
RST, завантажте скетч. - Зніміть перемичку, відкрийте Serial Monitor (115200) і знову натисніть
RST. - У лозі з'явиться
Camera Ready! Use 'http://192.168.x.x' to connect. - Відкрийте адресу → 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.