Модуль Arduino ESP32-CAM WIFI Bluetooth с камерой OV2640
- Информация о материале
- Обновлено: 15.03.2023, 11:57
- Опубликовано: 14.03.2023, 12:54
- Автор: DeniS
Cоздание системы видеонаблюдения на основе модуля ESP32-CAM с распознаванием лиц. Можно использовать, как систему безопасности. ESP32-CAM маленький модуль камеры с чипом ESP32-S. На основе данного модуля просто создать систему компьютерного зрения с функцией распознавания лиц.
Модуль ESP32-CAM создан на основе микросхемы ESP32-S. К нему подключается камера OV2640. Можно подключить карту памяти формата micro SD для хранения снимков с камеры и различных файлов.
Модуль ESP32-CAM находит широкое применение в различных проектах интернета вещей (IoT). Он может использоваться в системах обнаружения лиц в офисах, школах и других охраняемых зонах, также он может использоваться для беспроводного мониторинга, беспроводной идентификации по QR коду и многих других приложениях.
Модуль ESP32-CAM программируют с помощью ESP-IDF или Arduino IDE. Также модуль содержит несколько контактов ввода/вывода общего назначения (GPIO pins) для подключения внешних устройств. Модуль ESP32-CAM не содержит USB разъема, поэтому для его программирования необходима плата FTDI переходник USB-UART.
Комплект поставки Модуля ESP32-CAM и камеры OV2640
- Модуль ESP32-CAM
- Камера OV2640
- Антенна
- Кабель для антенны
- Слот
Описание модуля ESP32-CAM:
- SoC модуль с поддержкой 802.11b/g/n Wi-Fi BT;
- 32-битный процессор с низкой потребляемой мощностью;
- тактовая частота процессора до 160MHz, суммарная вычислительная мощность до 600 DMIPS;
- встроенная 520 KB SRAM, внешняя 4MPSRAM;
- поддержка UART/SPI/I2C/PWM/ADC/DAC;
- поддержка камер OV2640 и OV7670, встроенная флэш-лампа;
- загрузка изображений через Wi-Fi;
- поддержка TF карт;
- поддержка нескольких типов спящих режимов;
- можно установить Lwip и FreeRTOS;
- поддержка режимов Wi-Fi STA/AP/STA+AP;
- "умное" конфигурирование с помощью технологии AirKiss;
- поддержка локальных и удаленных обновлений прошивки (FOTA).
Технические характеристики модуля ESP32-CAM:
- SPI Flash: по умолчанию 32Mbit;
- RAM: 520KB SRAM+ 4M PSRAM;
- поддержка TF карт: максимум 4G;
- поддержка интерфейсов UART, SPI, I2C, PWM;
- выходные форматы изображений: JPEG, BMP, GRAYSCALE;
- количество портов (IO): 9;
- напряжение питания: 5V.
Для программирования модуля ESP32-CAM потребуются:
- Модуль ESP32-CAM
- Ардуино IDE скачать с официального сайта >>> На момент написания действующая версия Arduino IDE 2.0.4
- Преобразователь USB UART
Программатор FTDI USB-TTL (USB-UART) FT232RL
Подключение модуля ESP32-CAM к преобразователю USB UART
Для подключения используются выводы:
GPIO1 - U0TXD - подключается к Rx UART.
GPIO3 - U0RXD - подключается к Tx UART.
В Ардуино IDE добавить поддержку ESP32
В настройках (File - Preferences) в нижней части окна в Additional Boards Manager URLs добавить строку:
https://dl.espressif.com/dl/package_esp32_index.json
Если в поле уже имеется какая-либо ссылка (или ссылки), то можно добавить еще одну, разделять их следует запятой:
В Boards Manager: Tools - Board - Boards Manager:
В поиске ввести "esp32", отобразится вариант ESP32 by Espressif Systems, нажать Install и дождаться установки
В Boards Manager: Tools - Board - Boards Manager выбрать тип модуля ESP32 Wrover Module:
Необязательно. Установка библиотеки для модуля ESP32
В Arduino IDE перейти в Управление библиотеками (Manage Libriries): Sketch -> Include Library -> Manage Libriries
В поиске набрать ESP32/ Установить библиотеку
Веб-сервер для камеры модуля ESP32
В Arduino IDE есть пример кода для камеры модуля ESP32. Для видео трансляций (video streaming) и распознавания лиц (face recognition) нужно открыть пример.
Выбрать пункт меню File -> Examples -> ESP32 > Camera -> CameraWebServer.
Выбрать модель камеры. Раскомментировать нужную модель камеры.
************************************************
// Select camera model
//#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
************************************************
Изменить параметры доступа к сети Wi-Fi (имя и пароль) на свои.
************************************************
const char* ssid = "WiFi Name";
const char* password = "Password";
************************************************
Код программы готов к загрузке в модуль ESP32.
В меню Tools задать параметры для программирования платы - выбрать плату, номер COM-порта и т. д. см.рис
Загрузка программы в модуль ESP32
Нажать кнопку сброса в модуле (reset button) ESP32-CAM
Нажать кнопку upload в Arduino IDE.
Внимание! если при загрузки программы появляется сообщения об ошибках, проверить
- подключение контакта IO0 к земле (GND)
- настройки в меню Tools.
После загрузки программы в модуль отключить контакт IO0 от земли (GND).
Открыть окно монитора последовательного порта и изменить в нем бодовую скорость на 115200.
Нажать кнопку сброса на ESP32-CAM. В окне монитора последовательного порта должен отобразиться IP адрес модуля и номер порта, к которому он подключен, как показано на следующем рисунке.
Рис.
Видеотрансляция камеры
Открыть браузер и ввести в строке адреса IP адрес вашего модуля ESP32-CAM. Должна открыться страница с видео трансляцией (streaming page).
Для начала видео трансляции с модуля камеры ESP32 нажать на кнопку ‘Start Stream’ внизу страницы.
Распознавание лиц
В настройках выбрать опции обнаружения лиц (detection) и их распознавания (Face recognition) как показано на следующем рисунке.
Сначала нужно добавить лицо в список лицы. Для добавления нового лица в систему нажать на ‘Enroll Face’. Произойдет несколько попыток сохранения лица. После сохранения лица система будем обнаруживать это лицо под именем subject 0 и после этого его можно будет использовать в системе безопасности.
Ошибки загрузки модуля ESP32-CAM
Sketch uses 2594774 bytes (82%) of program storage space. Maximum is 3145728 bytes.
Global variables use 56248 bytes (17%) of dynamic memory, leaving 271432 bytes for local variables. Maximum is 327680 bytes.
esptool.py v3.0-dev
Serial port COM3
Connecting........_____....._____....._____....._____....._____....._____....._____
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
Failed uploading: uploading error: exit status 2
Решение
При подключении платы должен появится СОМ порт с номером больше 1, его нужно выбрать при прошивке. Смотреть номер порта в Диспетчере устройств.
Если порт не появился значит: либо нет драйвера эмулятора для вашей платы, либо в плате нет загрузчика, либо неисправна плата.