- Платы Ардуино
- Обучение Ардуино
- Мой блог
- Уроки
- Урок № 1 "Пишем свой первый скетч"
- Урок № 2 "Подключение фоторезистора"
- Урок № 3 "Подключение пищалки(BUZZER)
- Урок № 7 "Модуль часов RTC DS3231"
- Урок № 8 - "Шаговый двигатель 28BYJ-48"
- Урок № 10 - "ИК пульт на Ардуино"
- Урок № 11- "Сканер отпечатка пальца"
- Урок № 12- "Датчик наклона SW-200D"
- Урок № 13- "Гирлянда светодиодная WS2812b"
- Книги
- Мой YOUTUBE
esp 32 cam. Плата ESP с камерой ov2640 Установка ESP32, подключение.
Плата ESP с камерой ov2640 Установка ESP32, подключение.
Приветствую друзья.
Сегодня будем учиться работать с камерой OV2640 подключенной к плате ESP32-CAM.Это как бы 2 в 1. На камеру можно записывать видео, снимать стримы и транслировать их в WEB, делать фотографии. Камерой может управлять какой-нибудь датчик, например датчик движения, и тогда получится фото ловушка или контроль за помещением, или ещё что-нибудь.
Модуль ESP32-CAM выглядит вот так.
Он не поставляется с разъемом USB, поэтому вам понадобится программатор FTDI для загрузки кода Загрузка производится как и везде через UART, а контакты U0R и U0T – это RX и TX соответственно.
Я купил себе вот такую модель, а так как мне для примеров понадобится сотни раз её прошивать, я взял себе модуль с дополнительной платой, с установленным на ней программатор. Это избавит меня от дополнительных проводов и постоянного подключения и отключения GPIO0, так как при загрузке его надо подключить к GND, а затем не забыть отключить. Вам может такая плата и не понадобится, так как вы скорее всего будете использовать готовый скетч, и вам придётся всего разок-другой прошить плату. Мне же придётся делать это сотни раз. На плате выведена кнопка ресет, вот её мы и будем использовать для фотографирования.
Это будет серия уроков про эту камеру.
1. Мы познакомимся с камерой и научимся её настраивать и делать снимки.
2. Сделаем фото ловушку и видео ловушку. Подключим к камере датчик движения и будем записывать всех кто движется. Сначала я хотел установить камеру напротив двери и когда дверь будет открываться, то делать снимок входящего, но у меня возникли вопросы как и когда делать снимок. Я могу установить задержку между движением и снимком, но как узнать время этой задержки, чтобы сфотографировать нарушителя. Так что жду ваших советов. А пока остановился на записи 10-15 секунд видео, чтобы уж наверняка.
3. Отправка фото с нарушителя в бот телеграмм.
Жду ваших советов, что ещё можно сделать.
Теперь поговорим про сам модуль камеры. Вот так выглядит плата спереди и сзади.
Кроме платы ESP32 и камеры у него есть ещё и слот для microSD карты, что позволяет сохранять фото и видео на карту, а так же на плате есть блютуз, его мы тоже изучим, но в следующих уроках.
Характеристики
- Процессор: 32-х битный, частота 160-240 МГц;
- Объём RAM: 520 КБ
- Объём Flash-памяти: 448 КБ
- Питание: 2.2 - 3.6В;
- Внешняя Flash-память: 4 МБ;
- (520 КБ SRAM + 4 МБ PSRAM + слот для SD-карты)
- Поддержка Wi-Fi: 802.11 b/g/n/d/e/i/k/r (802.11n до 150 Мбит/с);
- Поддержка Bluetooth: 4.2 BR/EDR и Low Energy
- Поддерживает загрузку изображений через Wi-Fi.
- прошивку с возможностью обновления по OTA
- 9 Выводов GPIO;
- Встроенный светодиод подсветки;
- Интерфейсы: UART, SPI, I2C, PWM;
- Поддержка microSD карт до 4 Гб;
- Энергопотребление:
- При включённом светодиоде 310 мА
- При передаче Wi-Fi 160-260 мА
- Режим "мягкого" сна до 6.7 мА
- Имеет несколько режимов сна
- Камера:
- Поддерживает камеры OV2640, которые можно приобрести в комплекте или приобрести отдельно. Эти типы камер имеют:
- 2 МП на вашем сенсоре
- Размер массива UXGA 1622 × 1200 пикселей
- Формат вывода YUV422, YUV420, RGB565, RGB555 и 8-битное сжатие данных.
- Вы можете передавать изображение от 15 до 60 кадров в секунду.
Как я уже говорил, плату нельзя напрямую подключить к USB компьютера, а надо использовать программатор, или купить такой комплект как у меня. И не забудьте, что у программаторов есть два напряжения, и вам обязательно надо камеру соответственно напряжению на программаторе.
Посмотрите как его можно подключить. Подключается как всегда крест накрест. RX-TX и наоборот TX- RX.
GPIO1 — U0TXD — подключается к Rx UART.
GPIO3 — U0RXD — подключается к Tx UART.
А так расположены GPIO выходы на плате. Плата как и все ESP работает от 3.3 вольт. Но так как на плате есть регулятор напряжения, то плату можно подключить и к 5 вольтам.
GPIO 1 и GPIO 3 являются последовательными выводами, они нужны для того чтобы загрузить код плату.
GPIO 0 нужен для загрузки скетча в плату. Если он притянут к земле, то плата находится в режиме загрузки.
GPIO 4 соединён с встроенным в плату светодиодом - фотовспышкой.
Теперь давайте подключим ESP32 и настроим её для работы с Ардуино IDE.
Для начала вам надо установить плату в Arduino IDE. Для этого надо перейти в настройки и в самом низу добавить ссылку для Менеджера плат. Ссылка будет в архиве на моём сайте вместе со скетчем. Если вы уже работал с платами ESP8266, то у вас там уже есть одна ссылка. Для того чтобы добавить ещё одну надо скопировать её и между ними поставить запятую. В общем они должны быть разделены запятыми.
Теперь идём в инструменты и в разделе Платы выбираем пункт Менеджер плат. У вас появится новое окно в котором надо написать ESP32. Эти действия ничем не отличаются от установки библиотек. Появляется пакет с данными о платах которые есть в этом пакете. Нажимаем Установка и ждём когда платы установятся в Ардуино. Этот процесс оказался не таким быстрым как установка библиотек, а может у меня интернет тупил. В общем пришлось немного подождать.
После установки снова идём в раздел платы и находим там раздел ESP ARDUINO. Заходим туда и ищем вашу плату. У меня плата называется AI THINKER ESP32-CAM. Выбираем её смотрим что бы ещё поменять.
Частота 240 Мгц. Моя плата её поддерживает, поэтому так и оставляем. Частота flash тоже оставляем самую лучшую. Я знаю, что моя плата подключена к порту №6,значит всё правильно и можно идти двльше.
Теперь для проверки загрузим пример WEB сервера. Для этого идём в Примеры и ищем пункт ESP32. Выбираем камера, а там всего 1 пример, вот его и загрузим.
Сначала вам надо расскомментировать свою камеру. У меня это Камера модели AI THINKER.
Здесь как всегда при работе с платами ESP надо ввести название своей сети и пароль. Мы это делали много раз, поэтому у вас не должно быть с этим проблем.
Теперь загружаем скетч и после загрузки открываем монитор порта и нажимаем на камере ресет. В самом конце вы увидите по какому IP адресу у вас находится камера. По этому локальному адресу вы и сможете зайти на сервер, посмотреть и настроить свою камеру.
Сначала просто посмотрим что нам показывает камера. Нажимаем Начать стримить. Сейчас зима и уже вечер, поэтому на улице достаточно темно и съёмка ведётся через стекло, поэтому качество съёмки может быть не очень. Я буду просто изменять разные эффекты, и будем смотреть что изменяется. Вы это можете сделать сами. Я просто щёлкая по кнопкам и двигая ползунки наснимал целых 8 минут. Знаю, что никто столько смотреть не будет, поэтому я где то ускорю, где то обрежу. Поэтому если картинка будет прыгать, то камера не виновата.
Сейчас я пробовал настройки качества, яркости, и насыщенности. Кстати, чем меньше значения качества, тем картинка лучше. Не знаю о чём они думали, но это так. Но с ESP32 может быть проблема. Если установите самое лучшее качество, например 2 или 5, а это можно сделать программно из скетча, а на улице будет достаточно темно, то камера начнёт давать сбои, и может вообще перестать показывать, а весь экран будет в полосах и картинки вообще не будет.
Это мы посмотрели возможные эффекты заложенные на сервере.
А ещё здесь есть возможность делать фотографии, правда без сохранения на карту, но это мы научимся делать в этом видео.
Все эти настройки можно делать не только здесь, но и программно, в своём скетче. Как, это делать я покажу дальше.
Так же здесь есть функция распознавания лиц. Чтобы она заработала, вам надо сначала зарегистрировать своё лицо и камера будет находить вас на видео. Правда в последних версия эта функция перестала работать, возможно её скоро починят, а может и уже починили. Но на момент выпуска видео она не работала.
В интернете есть видео про подключение этой камеры к системе Умный дом на базе home-assistant или OpenHAB, а так же работе с mqtt.
Ладно, думаю что вам уже надоел вид из моего окна. Вы увидели качество работы камеры, мне кажется что это вполне достойно. Я сравнивал с видео на телефоне, обычным глазом разницы я не увидел. Это при расстоянии примерно метров 100-120 до ближайшего строения. Давайте перейдём теперь к скетчу работы с фотографиями записанными на карту при нажатии на кнопку.
Алгоритм работы примера такой.
При подачи питания на модуль, он просыпается и камера срабатывает. Происходит съёмка первого кадра и фотография сохраняется на SD карту. Затем модуль уходит в спячку. Это сделано для экономии заряда батареи. Разбудить его можно нажав на кнопку ресет. Этой же кнопкой производится и фотографирование.
Фотография имеет название PICTURE а дальше идёт её порядковый номер. С каждой фотографией номер увеличивается. Так же этот номер сохраняется в энергонезависимую память EEPROM. Это сделано для того чтобы знать сколько фотографий на карте. По умолчанию, в скетче прописано использовать 1 байт памяти. Это даёт нам возможность сохранять номера фотографий до 256. Вы можете изменить это в скетче и поставить 2 байта или больше, тогда число будет больше.
Не забудьте, что для работы вам нужна sd карта отформатированная в FAT32. В документации к ESP32 сказано что карта должна быть до 4 гб, но я пробовал 16 гигов, и она тоже замечательно работала.
Скетч разработан для работы с платой ESP32 CAM и камерой OV2640, но подойдёт и другая камера, из списка закомментированных в скетче.
Все фотографии сохраняются в корневую директорию sd карты, но вы можете изменить это и создать на карте папку для хранения фотографий.
Так же в скетче прописаны ряд возможных ошибок и если они произойдут, то вам будет выведено вообщение в монитор порта.
Да, забыл сказать в самом начале. При фотографировании загорается встроенный светодиод, который выполняет две роли. Первая – это подсветка, а вторая- оповещение о том, что съёмка произошла. Светодиод горит 2 секунды. Можно изменить в скетче. Например убрать его, для тайной съёмки.
Вот так за разговорами, я сделали 11 фотографий. Теперь надо вытащить карту и вставить её в компьютер. Сейчас я это проделаю и мы посмотрим что у нас сохранилось на карте.
Мы видим, что у нас сохранилось 10 файлов. Первого нет. Это файл который сработал при подачи питание на модуль. Я показал несколько фотографий, потому что больше выводить смысла нет. Так как они практически все с одного места у окна. Но по ним и так понятно качество работы камеры.
В архиве я положил файл очистки EEPROM памяти. Для очистки вам надо просто загрузить его в ESP32 и он очистить всю память. По окончании загорится светодиод на 2 секунды. Затем погаснет и у вас будет абсолютно чистая память.
На этом я думаю, что первое видео про использовании камеры можно закончить. Я правда озвучил не всё что хотел. И показал не всё что сделал. Например я ещё сделал пример автоматической съёмки через определённый промежуток времени, но видео и так получилось большое, поэтому покажу его в следующем примере. А когда он будет, будет зависеть только от вас и вашей активности.
esp32 камера примеры Фотографии сохранение на SD карту
ESP32-CAM датчик движения HC-SR501 Телеграм
отправить фотографию в Телеграм
ESP32-Cam Как сделать стоп кадр из видео, сохранить его на SD карту, просмотреть и удалить не нужное.
Используем ESP32-CAM. 5 Проектов и неограниченные возможности