Главная страница » ESP32 / ESP8266 » ESP32-CAM: Веб-камера и распознавание лиц своими руками
ESP32-CAM: Веб-камера и распознавание лиц своими руками
ESP32 / ESP8266

ESP32-CAM: Веб-камера и распознавание лиц своими руками

31.03.2026 163
ESP32-CAM: Веб-камера и распознавание лиц своими руками

Пошаговое руководство по созданию умной камеры на ESP32-CAM с распознаванием лиц. Прошивка, подключение, интеграция с умным домом. DIY проект для энтузиастов.

Приветствую всех энтузиастов умного дома и DIY-электроники! Сегодня мы погрузимся в увлекательный мир компьютерного зрения на микроконтроллерах. Я покажу вам, как превратить недорогую плату ESP32-CAM в полноценную веб-камеру с функцией распознавания лиц. Это отличный проект для домашней безопасности, автоматизации или просто для экспериментов.

Зачем это нужно? В отличие от обычных IP-камер, ESP32-CAM работает автономно, не требует постоянного подключения к облаку (что важно для приватности) и может принимать интеллектуальные решения прямо на устройстве. Например, она может отправлять вам уведомление только тогда, когда в кадре появился человек, а не каждый раз, когда мимо пробежала кошка.

Что нам понадобится

  • Плата ESP32-CAM — сердце нашего проекта. Убедитесь, что у вас версия с OV2640 (2 МП) — она наиболее распространена.
  • Адаптер FTDI (USB-to-Serial) или любой другой UART-программатор для прошивки. У ESP32-CAM нет встроенного USB-порта.
  • Макетная плата и провода «папа-папа» для удобного подключения.
  • Источник питания 5В — можно использовать Power Bank или стабильный блок питания.
  • (Опционально) Светодиодная подсветка для съёмки в темноте.

Подготовка среды разработки

Мы будем использовать PlatformIO — мощное расширение для VS Code. Если вы новичок в работе с ESP32, рекомендую сначала ознакомиться с нашей статьей ESP32 для начинающих: первый проект за 30 минут.

  1. Установите VS Code и расширение PlatformIO IDE.
  2. Создайте новый проект:
    • Назовите его, например, esp32-cam-face-recognition.
    • Выберите платформу Espressif ESP32.
    • В качестве фреймворка выберите Arduino.
    • Дождитесь завершения инициализации проекта.

Схема подключения

Внимание! Это самый критичный этап. Неправильное подключение может сжечь плату.

Подключите ESP32-CAM к программатору (FTDI) по следующей схеме:

ESP32-CAM   ->   FTDI Программатор
===================================
GND         ->   GND
5V/VCC      ->   5V (НЕ 3.3V!)
U0R/RXD     ->   TX
U0T/TXD     ->   RX
GPIO 0      ->   GND (ТОЛЬКО на время прошивки!)

Важные нюансы: * GPIO 0 должен быть подключен к GND только в момент прошивки. После успешной загрузки кода отсоедините этот провод, иначе модуль не запустится в нормальном режиме. * Питание 5V важно, потому что OV2640-камера требует именно такого напряжения. Подача 3.3V может привести к нестабильной работе или её отсутствию. * Для стабильной работы после прошивки рекомендуется использовать отдельный источник питания 5В с током не менее 1А, подключенный к пинам 5V и GND на ESP32-CAM.

Прошивка базового примера «Камера»

Давайте сначала убедимся, что железо работает, и зальём простейший скетч для видеопотока.

  1. В окне PlatformIO откройте файл src/main.cpp и полностью замените его содержимое на код из примера «CameraWebServer».
    • В левой панели PlatformIO нажмите PIO Home -> Projects -> Your Project -> Open.
    • Перейдите в «Examples», найдите «esp32-camera» -> «CameraWebServer» и откройте файл app_main.cpp.
    • Скопируйте его код в ваш src/main.cpp.
  2. Критический шаг: Нам нужно отредактировать файл конфигурации платформы. Откройте файл platformio.ini в корне проекта и приведите его к следующему виду:

    ```ini [env:esp32cam] platform = espressif32 board = esp32cam framework = arduino monitor_speed = 115200 upload_speed = 115200

    ; Важно: Указываем правильную модель камеры build_flags = -DBOARD_ESP32CAM_AITHINKER -DCAMERA_MODEL_AI_THINKER ```

    Комментарий ; в INI-файлах — это аналог // в C++.

  3. В файле main.cpp найдите строки с определением модели камеры (около 30-й строки) и раскомментируйте строчку для нашей платы:

    ```cpp // Выбираем модель платы. Раскомментируйте только одну строку! // #define CAMERA_MODEL_WROVER_KIT // #define CAMERA_MODEL_ESP_EYE // #define CAMERA_MODEL_M5STACK_PSRAM // #define CAMERA_MODEL_M5STACK_WIDE

    define CAMERA_MODEL_AI_THINKER // <--- ДОЛЖНА БЫТЬ РАСКОММЕНТИРОВАНА ТОЛЬКО ЭТА СТРОКА

    ```

  4. Настройте параметры Wi-Fi. Найдите в коде секцию с константами и введите данные вашей сети:

    cpp const char* ssid = "ВАШ_SSID_WIFI"; const char* password = "ВАШ_ПАРОЛЬ_WIFI";

  5. Прошиваем!

    • Убедитесь, что GPIO 0 подключен к GND.
    • В VS Code нажмите на значок стрелки внизу панели PlatformIO (Upload).
    • Дождитесь завершения процесса. В конце вы должны увидеть надпись SUCCESS.
    • Отключите провод с GPIO 0 от GND.
    • Нажмите кнопку Reset (RST) на плате ESP32-CAM или просто переподключите питание.

Проверка результата: Первый видеопоток

Откройте Монитор порта в PlatformIO (значок с розеткой). После загрузки вы увидите логи. Самый важный для нас — IP-адрес, который микроконтроллер получил в вашей сети. Выглядит это так:

...
WiFi connected
Camera Ready! Use 'http://192.168.1.100' to connect
  1. Скопируйте этот IP-адрес и вставьте в адресную строку браузера на любом устройстве в той же сети Wi-Fi.
  2. Откроется веб-интерфейс камеры. Выберите желаемое разрешение (например, UXGA (1600x1200)) и нажмите «Start Stream».
  3. Поздравляю! Вы только что запустили свою собственную беспроводную камеру. Теперь давайте научим её распознавать лица.

Добавляем распознавание лиц

Мы будем использовать встроенный в ESP32 алгоритм распознавания, который, хоть и базовый, отлично работает для демонстрации и простых задач.

  1. Создайте новый проект в PlatformIO (или скопируйте файлы из старого).
  2. Нам понадобятся дополнительные библиотеки. Откройте файл platformio.ini и добавьте зависимость:

    ```ini [env:esp32cam] platform = espressif32 board = esp32cam framework = arduino monitor_speed = 115200 upload_speed = 115200

    build_flags = -DBOARD_ESP32CAM_AITHINKER -DCAMERA_MODEL_AI_THINKER

    ; Подключаем библиотеку для работы с камерой и Face Recognition lib_deps = espressif/esp32-camera@^2.0.10 https://github.com/espressif/esp-face.git ```

    Сохраните файл. PlatformIO автоматически скачает указанные библиотеки.

  3. Замените содержимое src/main.cpp на более сложный скетч, который включает детектирование лиц. Полный код довольно объёмный, но его суть в следующем:

    • Инициализация камеры и Wi-Fi (как в предыдущем примере).
    • Настройка детектора лиц (face_detect).
    • В основном цикле: захват кадра, его преобразование в градации серого (для скорости), запуск детектора.
    • Если лицо найдено, функция вернёт координаты прямоугольника вокруг него.
    • Веб-сервер будет накладывать этот прямоугольник поверх видеопотока.

    Готовый скетч с комментариями вы можете найти в официальном репозитории примеров ESP-Face. Ищите пример web_camera. Скопируйте его код, не забудьте снова указать модель камеры (AI_THINKER) и данные Wi-Fi.

  4. Прошейте обновлённый код на ESP32-CAM, соблюдая ту же процедуру с GPIO 0.

Тестирование функции распознавания

После перепрошивки и перезагрузки снова откройте веб-интерфейс по IP-адресу.

  1. Теперь в интерфейсе должна появиться дополнительная кнопка или настройка, например, «Enable Face Detection».
  2. Включите её и направьте камеру на себя.
  3. Если всё настроено верно, вокруг вашего лица в реальном времени появится зелёный или синий прямоугольник.
  4. Поэкспериментируйте с освещением и расстоянием до камеры. Алгоритм работает лучше при хорошем свете и когда лицо занимает значительную часть кадра.

Интеграция с умным домом (Home Assistant)

Самое интересное начинается, когда мы подключаем нашу умную камеру к экосистеме. ESP32-CAM может не только показывать картинку, но и отправлять события.

  1. Как MQTT-клиент: Напишите скетч, который при обнаружении лица будет публиковать сообщение в MQTT-брокер (например, home/esp32cam/face_detected). Home Assistant легко ловит такие сообщения и может запустить автоматизацию: записать видео, включить свет, отправить push-уведомление.
  2. Через HTTP-запросы: При обнаружении объекта ESP32 может отправить POST-запрос на веб-хук в Home Assistant.
  3. Используя ESPHome: Если не хотите писать код, обратите внимание на проект ESPHome: прошиваем ESP32 без единой строки кода. С его помощью можно настроить многие функции через конфигурационный YAML-файл, хотя поддержка ESP32-CAM там требует дополнительных манипуляций.

Для полноценной интеграции систем умного дома рекомендую нашу статью о Zigbee2MQTT + Home Assistant: Собираем локальную сеть умного дома без облаков.

Типичные проблемы и их решение

  • «Camera init failed with error 0xffffffff» — Самая частая ошибка. Причины: неправильная модель камеры в platformio.ini или main.cpp, недостаточное питание (используйте 5В 1А+), бракованная камера.
  • Нестабильный видеопоток, обрывы — Снизьте разрешение (попробуйте SVGA), убедитесь в хорошем уровне сигнала Wi-Fi. ESP32 и камера создают высокую нагрузку на беспроводной интерфейс.
  • Плата не прошивается — В 99% случаев проблема в подключении GPIO 0 к GND во время загрузки. Также проверьте, что выбран правильный COM-порт в PlatformIO и драйверы FTDI установлены.
  • Детектор лиц не работает — Убедитесь, что вы подключили библиотеку esp-face и используете правильные функции инициализации. Проверьте освещение.

Заключение и идеи для развития

Мы прошли путь от простой платы до умной камеры с локальным распознаванием лиц. ESP32-CAM — это потрясающий инструмент для экспериментов, который открывает двери в мир IoT и компьютерного зрения.

Куда двигаться дальше? 1. Распознавание конкретного лица: Библиотека ESP-Face поддерживает и это. Вы можете «обучить» её, запомнив несколько изображений своего лица, и тогда камера сможет отличать вас от других. 2. Детекция движения: Более простая, но не менее полезная функция для охранных систем. 3. Сервер на Raspberry Pi: Вы можете перенести «мозги» на более мощный одноплатник. ESP32-CAM будет отправлять кадры, а Raspberry Pi — обрабатывать их с помощью OpenCV. О том, как выбрать плату, читайте в нашем гиде Выбор одноплатника в 2024. 4. Физические действия: Подключите реле к ESP32, и при обнаружении лица она сможет открывать электрозамок или включать подсветку.

Творите, экспериментируйте и делитесь своими проектами! Мир DIY-электроники безграничен.

Понравилась статья?

Поставьте лайк и сохраните полезный материал в закладки.

Комментарии (0)
Добавить комментарий
Прокомментировать
Кликните на изображение чтобы обновить код, если он неразборчив
Что можно сделать на LILYGO T-Dongle S3: 10 практических проектов
ESP32 / ESP8266
01.09.2026
Что можно сделать на LILYGO T-Dongle S3: 10 практических проектов
10 практических идей для LILYGO T-Dongle S3: мониторинг сервера, Home Assistant, MQTT, USB HID, 3D-принтер, сетевые инструменты и другие проекты на ESP32-S3.
ESP: как Espressif переписала правила DIY-электроники
ESP32 / ESP8266
10.09.2026
ESP: как Espressif переписала правила DIY-электроники
История создания чипов Espressif: от случайного успеха ESP8266 до линейки ESP32, C6, S3 и P4. Разбираем, чем отличаются платы и какую выбрать под конкретный DIY-проект.
ESP32 Web Server: Управляем реле через браузер
ESP32 / ESP8266
31.03.2026
ESP32 Web Server: Управляем реле через браузер
Запускаем веб-сервер на ESP32 и управляем реле через браузер: подключение, прошивка и простой интерфейс.
ESP32 Deep Sleep: как сделать датчик на батарейках, работающий месяцами
ESP32 / ESP8266
31.03.2026
ESP32 Deep Sleep: как сделать датчик на батарейках, работающий месяцами
Используем Deep Sleep на ESP32, чтобы снизить энергопотребление и продлить работу автономного датчика от батареи.
ESP32 Marauder: что это такое, как выбрать плату и где скачать прошивку
ESP32 / ESP8266
09.09.2026
ESP32 Marauder: что это такое, как выбрать плату и где скачать прошивку
ESP32 Marauder — это прошивка с открытым исходным кодом для тестирования Wi-Fi сетей на базе микроконтроллера ESP32. В статье разбираем, что умеет инструмент, как
ESP32 vs ESP8266: Что выбрать для своего DIY-проекта в 2024 году
ESP32 / ESP8266
31.03.2026
ESP32 vs ESP8266: Что выбрать для своего DIY-проекта в 2024 году
Подробное сравнение ESP32 и ESP8266 для DIY и умного дома в 2024. Технические характеристики, практические примеры выбора, типичные ошибки. Читайте в блоге!

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