Esp32 cam wifi arduino

Использование модуля камеры ESP32 для видео трансляции и распознавания лиц

В настоящее время системы распознавания лиц (face recognition) получают все более широкое распространение, начиная от систем безопасности и заканчивая различными системами контроля доступа.

В данной статье мы рассмотрим создание системы распознавания лиц на основе модуля ESP32-CAM (ESP32 Camera module), которую можно использовать в качестве системы безопасности, предотвращающей проникновение неавторизованных лиц в охраняемое помещение. ESP32-CAM представляет собой очень маленький модуль камеры с чипом ESP32-S. На основе данного модуля мы можем достаточно просто создать систему распознавания лиц, не прибегая к каким то «тяжеловесным» технологиям как, например, система распознавания лиц на основе платы Raspberry Pi с модулем камеры и библиотеки OpenCV.

Общие сведения о модуле ESP32-CAM

Модуль ESP32-CAM содержит в своем составе чип ESP32-S, очень маленького размера камеру OV2640 и слот для карт памяти формата micro SD, на которых можно хранить снимки с камеры и различные файлы. Модуль ESP32-CAM находит широкое применение в различных проектах интернета вещей (IoT). Он может использоваться в системах обнаружения лиц в офисах, школах и других охраняемых зонах, также он может использоваться для беспроводного мониторинга, беспроводной идентификации по QR коду и многих других приложениях.

Модуль ESP32-CAM можно программировать с помощью ESP-IDF или Arduino IDE. Также модуль содержит несколько контактов ввода/вывода общего назначения (GPIO pins) для подключения внешних устройств. Модуль ESP32-CAM не содержит USB разъема, поэтому для его программирования необходима плата FTDI.

Особенности модуля 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 к плате FTDI для его программирования с компьютера.

Контакты Vcc и GND модуля ESP32-CAM подключены к контактам Vcc и GND платы FTDI. Контакты Tx и Rx модуля ESP32-CAM подключены к контактам Rx и Tx платы FTDI.

Примечание : перед загрузкой кода программы в модуль замкните контакт IO0 модуля на землю. Когда контакт GPIO 0 модуля замкнут на землю (GND) – модуль находится в режиме загрузки программы (flashing mode), если он не замкнут на землю – то модуль не находится в режиме загрузки.

После загрузки программы в модуль ESP32-CAM можно отключить от него плату FTDI и подать на модуль питание 3.3V используя регулятор напряжения 7805. В результате у вас должна получиться конструкция примерно следующего вида:

Установка модуля ESP32-CAM в Arduino IDE

Мы будем программировать модуль ESP32-CAM с помощью Arduino IDE. Для этого мы в Arduino IDE должны установить дополнение (add-on) для работы с данным модулем.

Для этого в Arduino IDE выберите пункт меню File> Preferences.

Preferences в Arduino IDE» src=»https://microkontroller.ru/wp-content/uploads/2022/02/preferences-to-install-esp32-board-on-arduino-ide.png» alt=»Выбор пункта меню File> Preferences в Arduino IDE» width=»300″ height=»444″ srcset=»https://microkontroller.ru/wp-content/uploads/2022/02/preferences-to-install-esp32-board-on-arduino-ide.png 300w, https://microkontroller.ru/wp-content/uploads/2022/02/preferences-to-install-esp32-board-on-arduino-ide-203×300.png 203w» sizes=»(max-width: 300px) 100vw, 300px»/>

Затем в открывшемся окне в поле “Additional Board Manager URLs” вставьте строку https://dl.espressif.com/dl/package_esp32_index.json как показано на рисунке ниже. После этого нажмите кнопку “OK”.

Далее в Arduino IDE выберите пункт меню Tools > Board > Boards Manager.

В открывшемся менеджера плат (Board Manager) выполните поиск ESP32, после чего из результатов поиска установите библиотеку “ESP32 by Espressif Systems“.

Код веб-сервера для камеры модуля ESP32

У нас в Arduino IDE уже есть пример кода для камеры модуля ESP32 чтобы с ее помощью осуществлять видео трансляции (video streaming) и распознавание лиц (face recognition). Откройте этот пример выбрав пункт меню File > Examples > ESP32 > Camera и из него открыв пример CameraWebServer.

Но прежде чем загружать код этого примера в свой модуль измените в нем параметры доступа к сети Wi-Fi (имя и пароль) на свои.

Источник

ESP32-CAM ov2640, потоковое видео в среде Arduino IDE.

Эта статья представляет собой краткое руководство по началу работы для платы ESP32-CAM. Я расскажу как настроить веб-сервер потокового видео менее, чем за 5 минут с помощью Arduino IDE.

Примечание: в этой статье я использую пример из библиотеки arduino-esp32, но не рассматриваю как его изменить.

ESP32-камера — это очень маленький модуль камеры с чипом ESP32-S, который стоит около $ 10. Помимо камеры OV2640 и нескольких GPIO для подключения периферийных устройств, он имеет слот для карт microSD, который может быть полезен для хранения изображений, сделанных с помощью камеры, или хранения файлов.

Основные характеристики 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% относительной влажности.

Карты памяти на 4 Гб не было под рукой, поэтому проверить не получилось. Ставил на 16 Гб. Не сохраняет.

На следующем рисунке показаны выводы ESP32-CAM.

Есть три вывода GND и два вывода для питания: 3.3 V, либо 5V.

GPIO 1 и GPIO 3 — это последовательные контакты. Вам нужны эти контакты, чтобы загрузить код на вашу плату. Кроме того, GPIO 0 играет важную роль, поскольку он определяет, находится ли ESP32 в режиме программирования или нет. Когда GPIO 0 подключен к GND, ESP32 находится в режиме программирования.

Для программирования ESP32-камеры понадобятся следующие компоненты:

Приступим к установке, настройке необходимого ПО и прошивке ESP32. Разделим вс ё на несколько этапов:

1. Установка дополнения ESP32
В этом примере я использую Arduino IDE для программирования платы ESP32-CAM. Установите Arduino IDE, и настройте работу с ESP32. Если этого у вас не сделано, воспользуетесь следующей инструкцией:

2. Пример Кода CameraWebServer
В среде Arduino IDE выберите пример для работы с камерой для этого перейдите:

Файл > Примеры > ESP32 > Camera>CameraWebServer

Откроется пример скетча работы с камерой ESP32:

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

После загрузки распакуйте папку и откройте файл скетча для esp32 cam ov2640: CameraWebServer.ino.

Перед загрузкой прошивки в модуль ESP32 CAM необходимо указать ваши данные для подключения к Wi-Fi сети.

Затем убедитесь, что вы выбрали правильный модуль камеры. В данном случае используйте модель AI-THINKER Model. Для этого закомментируйте все другие модели и раскомментируйте указанную ниже:

Теперь код готов к загрузке на вашу ESP32.

3. Прошивка ESP32-CAM

Для прошивки я использую самый недорогой TTL программатор. И всё прошивается и работает отлично.

Подключаю всё вот по такой схеме:

Важно! GPIO 0 должен быть подключен к GND, чтобы вы смогли загрузить код.

Чтобы загрузить код, выполните следующие действия:

  • Перейдите в меню Инструменты>Плата и выберите модуль ESP32 Wrover
  • Перейдите в меню Инструменты >порт и выберите COM-порт, к которому подключен ESP32
  • В меню Инструменты >Partition Scheme , выберите “Huge APP (3MB No OTA)
  • Нажмите кнопку ESP32-CAM on-board RESET
  • Затем нажмите кнопку Загрузка, чтобы загрузить код

Важно! Если вы не можете загрузить код, то еще раз проверьте, что GPIO 0 подключен к GND и, что вы выбрали правильные настройки в меню Инструменты. Вы также должны нажать кнопку сброса на борту, чтобы перезагрузить ESP32 в режиме программирования.

4. Получение IP-адреса и подключение к камере.

После загрузки кода отключите GPIO 0 от GND. Подключите питание на 5 В. На 3,3 В у меня камера не заработала.

Откройте последовательный монитор со скоростью передачи данных 115200. Нажмите кнопку ESP32-CAM on-board Reset.

IP-адрес ESP32 должен быть выведен в последовательном мониторе.

Теперь вы можете получить доступ к серверу потоковой передачи камеры в локальной сети. Откройте браузер и введите IP-адрес ESP32-CAM . Нажмите кнопку Start Streaming, чтобы начать потоковую передачу видео.

У вас так же есть возможность делать фотографии, нажав на кнопку Get Still. К сожалению, этот пример не сохраняет фотографии, но вы можете изменить его, чтобы использовать встроенную карту microSD для хранения полученных фотографий.

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

Если вы откроете монитор порта во время работы камеры, то вы получите подробную информацию о количестве кадров в секунду, о скорости обработки и пр.

Чем выше качество потокового вещания, тем меньше кадров. Комфортно работает при разрешении 600х800.

Можно реализовать распознавание лиц. Но, пока, в данном направлении я не экспериментировал. Как будут результаты, обязательно напишу статью, или сделаю проект.

Подписывайтесь на наш канал на Youtube и вступайте в группы в Вконтакте и Facebook.

Всем Пока-Пока. И до встречи в следующей статье.

Понравилась статья? Поделитесь ею с друзьями:

Источник

Adblock
detector