- Крутая Wi-Fi камера на основе ESP32 CAM
- Особенности проекта
- Установка
- Крутая Wi-Fi камера на основе ESP32 CAM
- Особенности проекта
- Установка
- Настройка прошивки
- Основные настройки прошивки
- Компиляция и прошивка
- Первый запуск
- Веб интерфейс камеры
- ESP32-CAM ov2640, потоковое видео в среде Arduino IDE.
- Всем Пока-Пока. И до встречи в следующей статье.
Крутая Wi-Fi камера на основе ESP32 CAM
Хочу представить вам проект функциональной прошивки веб-камеры на базе ESP32-CAM с модулем OV2640 с использованием фреймворка ESP-IDF. Такие модули часто поставляются с дополнительными компонентами, такими как светодиодная «вспышка» высокой мощности, OLED-дисплей или детектор движения. Этот проект включает поддержку дополнительных библиотек для поддержки этих компонентов.
Особенности проекта
- Улучшенный веб-интерфейс
- Возможность изменять настройки Wi-Fi и сети из веб-интерфейса
- Постоянное хранение настроек камеры и других настроек в NVS
- Драйвер дисплея SSD1306 и код для вывода соответствующей информации о подключении Wi-Fi и частоте кадров
- Драйвер светодиодной подсветки для управления интенсивностью светодиодной вспышки
- Сервер mDNS для объявления услуг камеры в локальной сети
- Встроенный клиент NTP и RTC для определения даты / времени
Ресурсы, доступные на ESP32 для поддержки камер, очень ограничены, и выжать максимум из OV2640 весьма затруднительно.
Установка
Исходный код требует установки ESP-IDF toolchain and development framework
В установке нет ничего сложного. Скачайте пакет по ссылке выше, запустите и следуйте указаниям мастера.
Для сборки проекта требуется ESP-IDF не ниже v4.0!
Крайне желательно чтобы в пути к программе не было русских букв. В моем случае пакет был установлен в C:\Espressif
После установки среды разработки обязательно зайдите в настройки переменных среды Windows ( Панель управления\Система\Переменные среды ) и проверьте, наличие этой переменной
IDF_TOOLS_PATH со значением C:\Espressif . Если она отсутствует, то создайте ее самостоятельно.
После чего перезагрузите компьютер
Далее перейдите в проводнике в папку C:\Espressif , создайте в нем директорию myprojects и распакуйте в нее содержимое архива проекта. В итоге ваш проект должен располагаться по следующему пути C:\Espressif\myprojects\esp32-cam.
Далее из меню Пуск>Программы>ESP-IDF запустите ESP-IDF CMD и ESP-IDF PowerShell в зависимости от ваших предпочтений. Первый вариант открывает Консоль разработчика через Командную строку Windows,
Крутая Wi-Fi камера на основе ESP32 CAM
Хочу представить вам проект функциональной прошивки веб-камеры на базе ESP32-CAM с модулем OV2640 с использованием фреймворка ESP-IDF. Такие модули часто поставляются с дополнительными компонентами, такими как светодиодная «вспышка» высокой мощности, OLED-дисплей или детектор движения. Этот проект включает поддержку дополнительных библиотек для поддержки этих компонентов.
Особенности проекта
- Улучшенный веб-интерфейс
- Возможность изменять настройки Wi-Fi и сети из веб-интерфейса
- Постоянное хранение настроек камеры и других настроек в NVS
- Драйвер дисплея SSD1306 и код для вывода соответствующей информации о подключении Wi-Fi и частоте кадров
- Драйвер светодиодной подсветки для управления интенсивностью светодиодной вспышки
- Сервер mDNS для объявления услуг камеры в локальной сети
- Встроенный клиент NTP и RTC для определения даты / времени
Ресурсы, доступные на ESP32 для поддержки камер, очень ограничены, и выжать максимум из OV2640 весьма затруднительно.
Установка
Исходный код требует установки ESP-IDF toolchain and development framework
В установке нет ничего сложного. Скачайте пакет по ссылке выше, запустите и следуйте указаниям мастера.
Для сборки проекта требуется ESP-IDF не ниже v4.0!
Крайне желательно чтобы в пути к программе не было русских букв. В моем случае пакет был установлен в C:\Espressif
После установки среды разработки обязательно зайдите в настройки переменных среды Windows (Панель управления\Система\Переменные среды) и проверьте, наличие этой переменной
IDF_TOOLS_PATH со значением C:\Espressif. Если она отсутствует, то создайте ее самостоятельно
После чего перезагрузите компьютер
Далее перейдите в проводнике в папку C:\Espressif , создайте в нем директорию myprojects и распакуйте в нее содержимое архива проекта. В итоге ваш проект должен располагаться по следующему пути C:\Espressif\myprojects\esp32-cam.
Далее из меню Пуск>Программы>ESP-IDF запустите ESP-IDF CMD и ESP-IDF PowerShell в зависимости от ваших предпочтений. Первый вариант открывает Консоль разработчика через Командную строку Windows,
Второй через Windows Power Shell.
В остальном разницы никакой. Переходим к настройке прошивки
Настройка прошивки
cd C:\Espressif\myprojects\esp32-cam
Для экономии места в памяти ESP32 выполним сжатие таблиц стилей, страниц html и javascript Веб-интерфейса прошивки, введя команды
cd main/www ./compress_pages.sh cd ../..
Далее для настройки параметров прошивки введите следующую команду
Откроется редактор настроек прошивки.
Основные настройки прошивки
- Выберите USB-порт для загрузки прошивки в разделе Serial Flasher Config -> Default serial port
- Выберите, какую плату вы используете, в разделе Camera Web Server -> Camera Pins
- Если на вашей плате установлена светодиодная подстветка, включите ее в разделе Camera Web Server -> LED Illuminator
- Вы можете выбрать настройки Wi-Fi по умолчанию в разделе Camera Web Server -> Wifi Settings
- Если на вашей плате установлен OLED-дисплей на базе SSD1306, включите его в разделе Component Config -> SSD1306 Configuration и выберите контакты для SDA и SCL
- Чтобы использовать дополнительную внешнюю оперативную память SPI, которая может быть на вашей плате, включите ее с помощью Component Config -> ESP32 Specific -> Support for external, SPI-connected RAM
- Чтобы включить наложение шрифтов, в разделе Font Configuration проверьте раздел Store Font Partition (используется примерно 240 КБ флэш-памяти)
- Включите NTP и выберите NTP-сервер и часовой пояс по умолчанию в разделе NTP configuration
Когда настройки будут завершены, сохраните их и выйдите.
Компиляция и прошивка
При необходимости очистите каталог сборки с помощью
Скомпилируйте исходный код, выполнив
Прошейте двоичный файл в свой ESP32 с помощью
Контролируйте процесс сборки, выполнив
Первый запуск
При первом запуске прошивки она попытается установить соединение wifi в следующем порядке:
- Установка соединения, используя SSID и пароль, хранящиеся в энергонезависимом хранилище (nvs)
- Установка соединения, используя SSID и пароль STA по умолчанию, предоставленные make menuconfig
- После пяти неудачных попыток запуска в режиме станции (STA) она вернется в режим SoftAP и будет действовать как точка доступа Wi-Fi
Чтобы подключиться к точке доступа, введите в браузере 192.168.4.1. Имя пользователя и пароль вводить не нужно.
В веб-интерфейсе выберите SSID и пароль Wi-Fi и, при необходимости, укажите статический IP-адрес и другие сетевые настройки. Перезагрузите устройство, чтобы настройки вступили в силу.
Веб интерфейс камеры
Экран веб интерфейса камеры представлен на скриншоте ниже
Основные его возможности это настройка параметров захвата изображения, сетевого доступа, синхронизации времени и параметров аутентификации
Также есть возможность сохранить скриншот изображения на SD карты вставленную в модуль, а также запустить потоковую трансляцию видео
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
Потребляемая мощность:
- при выключенной вспышке — 180 мА;
- при включенной вспышке — 310 мА;
- глубокий сон — 6 мА;
- модем-сон — 20 мА;
- лёгкий сон — 6,7 мА.
Размеры — 40,5 х 27 х 4,5 мм
Температурный диапазон:
Карты памяти на 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 сети.
const char* ssid = "Имя_точки_wi-fi"; const char* password = "пароль_от_wi-fi";
Затем убедитесь, что вы выбрали правильный модуль камеры. В данном случае используйте модель AI-THINKER Model. Для этого закомментируйте все другие модели и раскомментируйте указанную ниже:
#define CAMERA_MODEL_AI_THINKER
Теперь код готов к загрузке на вашу 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.
Всем Пока-Пока. И до встречи в следующей статье.
Понравилась статья? Поделитесь ею с друзьями: