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

Напряжение питания - 5 В;

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

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

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

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

  • рабочий: 20 – 85 ℃;
  • хранение: -40 - 90 ℃ при 90% относительной влажности.

Карты памяти на 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. Если этого у вас не сделано, воспользуетесь следующей инструкцией:

Установка, прошивка платы ESP32 в Arduino IDE (Windows, Mac OS X, Linux)

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. Для этого закомментируйте все другие модели и раскомментируйте указанную ниже:

 данном случае используйте модель 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.

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

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

Файлы для скачивания

arduino-esp32-CameraWebServer-master arduino-esp32-CameraWebServer-master.zip14 Kb 476 Скачать
Вернуться в раздел: Проекты на ESP32 Дата публикации 5 ноября , 2019

Комментарии

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

Yurii
#15 Гость: Yurii (11 августа, 2020 в 21:06)

как включить/выключить вспышку ?

Dens
#14 Гость: Dens (27 марта, 2020 в 11:55)

Тоже два дня промучился с ошибками, пока не переключил два переключателя на програматоре в положение ON

argon43
#13 argon43 (16 января, 2020 в 19:27)
Может кому будет полезно,проблему решил так-сама плата esp-32 была плохо пропаяна,пропаял и все загрузилось.
argon43
#12 argon43 (15 января, 2020 в 21:08)
Кондерчик тоже не пойдет нет пина EN
argon43
#11 argon43 (15 января, 2020 в 20:42)
У меня нет кнопки Boot, только Reset
Admin
#10 Admin (15 января, 2020 в 19:59)
Доброго времени,у меня выдает такую ошибку Connecting........_____....._____....._____....._____....._____....._____.....____Произошла
ошибка при загрузке скетча
по вашему вопросу кажись кондерчик на 10микрофарад может поможет,
Ни нужно ни чего припаивать. Вот нормальное решение:

https://portal-pk.ru/news/226-ustanovka-proshivka-...

Внимание! Если у вас бежит строка с повторяющимися точками и линиями. Нажмите кнопку Boot на плате и удерживайте ее пока не побегут проценты загрузки. После чего кнопку можно отпустить.

Evgeniy
#9 Evgeniy (15 января, 2020 в 17:37)
Аргон,  по вашему вопросу кажись кондерчик на 10микрофарад может поможет, тоже его его хочу попробовать. Найдите эту статью Решение проблемы загрузки кода в ESP32 , если прокатит , отпишите плиз результат. Константин видимо по выходным заглядывает :)
argon43
#8 argon43 (14 января, 2020 в 22:45)
Доброго времени,у меня выдает такую ошибку Connecting........_____....._____....._____....._____....._____....._____.....____Произошла ошибка при загрузке скетча
_
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header ,перерыл все, что можно сделать?
Evgeniy
#7 Evgeniy (13 января, 2020 в 13:58)
Добрый день, Константин. Я подключаю контакт на массу.
1. Я замыкаю 0 на землю, затем подаю питание, затем гружу скеч. При этом  Выходит выгрузка вот так, как я показывал в предыдущем сообщении. Затем выключаю питание, убираю перемычку, включаю и в порту ошибка идет как в предыдущем сообщении.
2. Пробовал и такой вариант , отключал перемычку и в момент коннекта вставлял. эмитируя кнопку boot на обычной ESP 32. В этом случае сразу выходит так: 
A fatal error occurred: Timed out waiting for packet header
A fatal error occurred: Timed out waiting for packet header
Без выводов параметров ESP
Вот пытаюсь понять понять какой этап дает ошибку? Думаю не в вашем скече проблема , либо я как то не так гружу, либо аппаратная проблема какая то, либо может драйвера какого то не хватает,  Либо программатор не тот. Я пробовал два, СН340  тот что у вас указан по ссылке и  второй что в комплекте пришел . FT232FL
Admin
#6 Admin (13 января, 2020 в 07:14)
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 4096.0 kbit/s)...

A fatal error occurred: Timed out waiting for packet header
A fatal error occurred: Timed out waiting for packet header
Проверти схему подключения.
Важно!GPIO 0
должен быть подключен к GND,чтобы вы смогли загрузить код.
Evgeniy
#5 Evgeniy (11 января, 2020 в 21:18)
Все сделал по инструкции.
Скеч грузится и в конце ошибка
esptool.py v2.6
Serial port COM11
Connecting....
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: 24:6f:28:ae:40:94
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Warning: Could not auto-detect Flash size (FlashID=0x0, SizeID=0x0), defaulting to 4MB
Compressed 8192 bytes to 47...

Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 4096.0 kbit/s)...

A fatal error occurred: Timed out waiting for packet header
A fatal error occurred: Timed out waiting for packet header

Выключаю режим программирования, смотрю порт

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371

Не понятное что то
Владимир
#4 Гость: Владимир (23 декабря, 2019 в 19:39)

Сам нашел ответ на свой вопрос. Оказалось китаец подсунул камеру xrz00d1-v240 вместо ov2640. С ней все немного сложнее.

Владимир
#3 Гость: Владимир (18 декабря, 2019 в 19:28)

Добрый вечер! Все повторил по Вашей инструкции, - лог отправки кадров потока в консоли отображаются, но в браузере (Chrom, IE) видо не демонстрируется. При "старте потока" появляется маленький пустой квадратик и крестик для закрытия потока. При нажатии крестика лог в консоли останавливается. Все вроде бы работает правильно но "мультиков" нет. Что я делаю не правильно?

Великий Втыкатель
#2 Гость: Великий Втыкатель (15 декабря, 2019 в 01:28)

Esp 32 позволяет сделать и регистратор и ip камеру, и видеоняню и домофон... Особенно, если подружить его с ардуино. Программные (и "железные") доработки могут значительно расширить область применения. Очень привлекательный модуль в соотношении возможностей к цене. Основное применение модулю, конечно, в робототехнике.

Думаю, делать из него регистратор как то глупо, ввиду малого объема памяти и наличия чипа wi-fi - bluetooth. А вот на дрон - пожалуйста.

Serj156
#1 Serj156 (5 ноября, 2019 в 20:01)
А что можно сделать с этой камерой? 
Видео регистратор или IP Камеру? 

Cлучайные товары


Посмотреть товар в Магазине »

Мы в соц сетях

Подпишись на канал Мы на facebook

Portal-PK (Портал ПК) © 2015 - 2020
ЧПУ
Карта сайта
RSS