Esp32 cam wifi arduino

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

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

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

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

ESP32-камера - это очень маленький модуль камеры с чипом ESP32-S

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

Потребляемая мощность:

  • при выключенной вспышке — 180 мА;
  • при включенной вспышке — 310 мА;
  • глубокий сон — 6 мА;
  • модем-сон — 20 мА;
  • лёгкий сон — 6,7 мА.

Размеры — 40,5 х 27 х 4,5 мм

Температурный диапазон:

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

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

показаны выводы 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

Пример Кода CameraWebServer

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

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

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

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

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

const char* ssid = "Имя_точки_wi-fi"; const char* password = "пароль_от_wi-fi";

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

Читайте также:  Wi fi приставка mini tv

 данном случае используйте модель AI-THINKER Model.

#define CAMERA_MODEL_AI_THINKER

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

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

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

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

Прошивка ESP32-CAM

Важно! 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 должен быть выведен в последовательном мониторе.

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

Нажмите кнопку Start Streaming, чтобы начать потоковую передачу видео.

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

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

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

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

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

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

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

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

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

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

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

Источник

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

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

Внешний вид проекта с использованием модуля камеры ESP32 (ESP32-CAM)

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

Читайте также:  Одноранговая локальная сеть wifi

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

Внешний вид модуля 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

Особенности модуля 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

Как видите, схема очень проста. Достаточно просто подключить модуль 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.

Выбор пункта меню File data-lazy-src=

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

Установка в Arduino IDE библиотеки для работы с модулем ESP32

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

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

Читайте также:  Слабый сигнал wifi ноутбука

Открытие в Arduino IDE примера для работы с модулем кмеры ESP32

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

После этого в программе инициализируйте модуль камеры ESP32. В представленном примере представлены примеры инициализации 5 модулей камеры, для нашего проекта раскомментируйте строку “ CAMERA_MODEL_AI_THINKER ” и оставьте в комментариях остальные 4 строки. Теперь наш код программы готов к загрузке в модуль.

Для загрузки кода программы в модуль ESP32-CAM подключите плату FDTI в компьютеры и в качестве своей платы (модуля) выберите ‘ESP32 Wrover Module’. Также измените другие настройки как показано на следующем рисунке.

Подготовка Arduino IDE для загрузки программы в модуль ESP32-CAM

Перед загрузкой программы в модуль ESP32-CAM нажмите на нем кнопку сброса (reset button) и затем нажмите на кнопку upload в Arduino IDE.

Примечание : если во время загрузки кода программы у вас появились сообщения об ошибках, убедитесь в том, что контакт IO0 замкнут на землю (GND) и что вы выбрали правильные настройки в меню Tools.

После загрузки кода программы в модуль отключите его контакт IO0 от земли (GND). Затем откройте окно монитора последовательной связи и измените в нем бодовую скорость на 115200. После этого нажмите кнопку сброса на ESP32-CAM – в результате этого в окне монитора последовательной связи должен отобразиться IP адрес модуля и номер порта, к которому он подключен, как показано на следующем рисунке.

Отображение IP адреса модуля ESP32-CAM

Теперь, чтобы получить доступ к видеотрансляции камеры, откройте браузер и введите в нем в строке адреса IP адрес вашего модуля ESP. После этого вас должно перебросить на страницу с видео трансляцией (streaming page). Чтобы начать видео трансляцию с модуля камеры ESP32 нажмите на кнопку ‘Start Stream’ внизу страницы.

Начало видео трансляции с модуля ESP32-CAM

Изменить качество видео трансляции можно изменяя параметр ‘Resolution’ на странице видео трансляции. Также вместо видео вы можете включить показ картинки нажав на кнопку ‘Get Still’, но используемый нами код примера не содержит опции для сохранения этих картинок.

После того как мы протестировали видео трансляцию с модуля ESP32-CAM, можно приступить к тестированию обнаружения лиц и их распознавания. Для этого в настройках выберите опции обнаружения лиц (detection) и их распознавания (Face recognition) как показано на следующем рисунке.

Включение распознавания лиц в модуле ESP32-CAM

Тестирование работы распознавания лиц

Для того чтобы использовать распознавание лиц вы сначала должны добавить/внести в список лицо. Вы можете добавить новое лицо в систему нажав на опцию ‘Enroll Face’. Произойдет несколько попыток сохранения лица. После сохранения лица система будем обнаруживать это лицо под именем subject 0 и после этого его можно будет использовать в нашей системе безопасности.

Более подробно работу проекта вы можете посмотреть на видео, приведенном в конце статьи.

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

Исходный код программы (скетча)

Библиотеку esp_camera.h можно скачать по следующей ссылке (либо самостоятельно можете скачать ее с github’а).

Источник

Оцените статью
Adblock
detector