Esp cam bluetooth wi fi esp32

Детальный обзор ESP32-CAM

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

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

В этом обзоре мы подробно рассмотрим аппаратное обеспечение ESP32-CAM, разберем его схему и назначение всех GPIO пинов.

Спецификация

Для начала, коротко пробежимся по основным техническим возможностям устройства:

  • 10 GPIO
  • Самый маленький модуль Wi-Fi BT SoC стандарта 802.11b / g / n
  • 32-разрядный процессор с низким энергопотреблением
  • Тактовая частота до 160 МГц, суммарная вычислительная мощность до 600 DMIPS
  • Встроенная память 520 КБ SRAM, внешняя память 4 МП
  • Поддерживает UART / SPI / I2C /PWM / АЦП /ЦАП
  • Поддержка камер OV2640 и OV7670
  • Встроенная светодиодная подсветка
  • Поддержка передачи изображений по Wi-Fi
  • Поддержка TF-карты
  • Поддерживает несколько режимов сна
  • Встроенный Lwip и FreeRTOS
  • Поддерживает режим работы STA / AP / STA + AP
  • Поддержка технологии Smart Config / AirKiss
  • Поддержка локального и удаленного обновления прошивки (FOTA)

ESP32-CAM AI-Thinker – одна из самых популярных плат для разработки ESP32 с камерой — она обладает множеством полезных функций и стоит около 400 рублей !

Она оснащена чипом ESP32-S и поставляется с “обычной” 2-мегапиксельной камерой OV2640. Эта плата имеет 4 МБ PSRAM, которая используется для буферизации изображений с камеры в потоковое видео или для других задач и позволяет использовать более высокое качество в ваших снимках без сбоев ESP32.

Она поддерживает карту microSD и имеет 10 доступных GPIO и разъемов питания. Однако можно использовать далеко не все, поскольку некоторые из них используются либо камерой, либо картой microSD.

Плата ESP32-CAM поставляется со встроенной антенной , а также с разъемом IPEX , позволяющим альтернативно использовать внешнюю антенну для улучшения диапазона связи Wi-Fi.

Читайте также:  Iphone показать пароль от wifi

Плата оснащена встроенной кнопкой сброса для перезапуска платы и ярким светодиодом, который работает как вспышка. Вспышка может быть полезна для освещения области перед потоковой передачей видео или съемкой. Тем не менее, фотовспышка разделяет GPIO с одним из GPIO карты microSD. Это означает, что при использовании функций, связанных с картой microSD, светодиод будет время от времени загораться, даже если вы этого не хотите.

Одним из основных недостатков ESP32-CAM является то, что он не имеет интерфейса USB-to-UART. Это означает, что вы не можете подключить ESP32-CAM непосредственно к компьютеру с помощью USB-кабеля. Вам необходимо использовать программатор FTDI.

Список камер поддерживаемых модулем ESP32-CAM

Модуль ESP32-CAM официально поддерживает следующие камеры:

Источник

Быстрый старт с ESP32 и камерой OV2640. Модуль ESP32-CAM.

Попался мне под руку модуль ESP32-CAM, включающий в себя, собственно, ESP32, а также камеру OV2640. Модуль является довольно-таки популярным решением, так что не обойдем стороной нюансы и вопросы, связанные с его использованием. А в этой статье организуем быстрый старт с ESP32-CAM. И, конечно, старт с этой платой нельзя считать полноценным без того, чтобы задействовать основные функции — а именно Wi-Fi подключение и получение видео-потока с камеры.

Начнем с более подробного рассмотрения:

Модуль ESP32-CAM.

  • Беспроводной модуль ESP32-S с интегрированным Wi-Fi и Bluetooth контроллерами.
  • Камера OV2640 — идет отдельно, но на плате предусмотрен разъем для ее подключения.
  • Разъем для карт памяти micro-SD.
  • Светодиод, который, если придерживаться логических соображений, видимо призван играть роль вспышки.

И, поскольку ESP32 не просто реализует связь по беспроводным интерфейсам, но и является полноценным контроллером сам по себе, то на плате его сигналы выведены на штыревые разъемы для дальнейшего использования. ESP32 имеет:

  • 32-разрядный процессор, с тактовой частотой 160 или 240 МГц.
  • Wi-Fi: 802.11 b / g / N
  • Bluetooth: v4.2 BR/EDR and BLE
  • Большое количество периферийных модулей, в том числе:
    • SPI x 4
    • ADC
    • DAC x 2
    • UART x 3
    • CAN
    • I2C x 2

    И это еще далеко не полный список. Прошивается ESP32 по UART, поэтому я взял для этих целей USB-UART переходник на базе PL2303 (не USB-RS232(!), у этого переходника соответствующие требуемым уровни — 3.3 В):

    USB-UART на базе PL2303.

    Для подключения используются выводы:

    Кроме того, для программирования модуля необходимо подтянуть вывод GPIO0 к земле. Соответственно, по окончанию прошивки подтяжку надо убрать. И вот так в итоге выглядит полное подключение:

    Схема подключения ESP32-CAM.

    Причем при подключении питания через вход 3.3В наблюдалось большое количество разнообразных проблем — прошивалось через раз, работать модуль отказывался в принципе и т. д. И эти проблемы разом устранились при подаче 5В питания через соответствующий вход (как на схеме выше).

    Но при этом напряжение логических уровней на входах — строго 3.3 В! Сигналы 5 В могут повредить контроллер.

    На этом с физическим подключением заканчиваем.

    Итак, для быстрого запуска ESP32-CAM используем существующие примеры и библиотеки для Arduino IDE. И, поскольку я лично Arduino IDE никогда не пользовался, да и не собирался, то переходим к Шагу 0.

    Установка Arduino IDE. С этим все просто — скачиваем с официального сайта, устанавливаем и запускаем.

    Теперь в свежеустановленную IDE необходимо интегрировать поддержку нашего модуля ESP32. Идем в настройки (File — Preferences) и в нижней части окна настроек в Additional Boards Manager URLs добавляем строку:

    https://dl.espressif.com/dl/package_esp32_index.json

    В итоге получаем следующее:

    ESP32 в Arduino IDE.

    Небольшое дополнение — если у вас в этой строке уже сохранена какая-либо ссылка (или ссылки), то можно без проблем добавить еще одну, разделять их следует просто запятой:

    https://dl.espressif.com/dl/package_esp32_index.json, https://link2.com/dl/file2.json, https://link3.com/dl/file3.json

    На этом закрываем окно настроек и переходим к Шагу 2.

    Переходим в Boards Manager: Tools — Board — Boards Manager:

    Boards Manager Arduino IDE.

    В открывшемся окне в поиске вводим «esp32», получаем один вариант и нажимаем на Install:

    Библиотеки для ESP32.

    Ожидаем завершения операции и переходим к следующему этапу. Только предварительно в Tools — Board — ESP32 Arduino выбираем используемую плату. Разработчики IDE периодически перетасовывают и изменяют список доступных плат, итоговая задача тем не менее проста — нужно найти в списке свою и выбрать ее.

    Открываем в Arduino IDE пример для работы с камерой. Для этого следуем в File — Examples — ESP32 — Camera — CameraWebServer:

    Camera Web Server пример.

    Получаем готовый проект с инициализацией в функции setup() и основным циклом программы в функции loop().

    Теперь необходимо немного изменить код для того, чтобы плата и камера успешно заработали. Первым делом выбираем модель камеры. Осуществляется это комментированием ненужного и раскомментированием нужного:

    // Select camera model //#define CAMERA_MODEL_WROVER_KIT //#define CAMERA_MODEL_ESP_EYE //#define CAMERA_MODEL_M5STACK_PSRAM //#define CAMERA_MODEL_M5STACK_WIDE #define CAMERA_MODEL_AI_THINKER

    Второе изменение заключается в установке имени сети и пароля для подключения по Wi-Fi. К примеру:

    const char* ssid = "home"; const char* password = "pass1234";

    На этом с кодом заканчиваем и переходим к прошивке.

    Подключение мы уже осуществили, так что на этом этапе чисто программные моменты. В меню Tools нам нужно задать актуальные параметры для программирования платы, в частности, номер COM-порта (плату мы уже выбрали на Шаге 2). Вот список настроек для моей платы:

    Прошиваем плату, для этого нажимаем кнопку upload, не забыв предварительно подтянуть пин GPIO0 к земле:

    Arduino IDE upload.

    Завершающая часть успешного лога прошивки выглядит примерно так:

    Compressed 3072 bytes to 119. Wrote 3072 bytes (119 compressed) at 0x00008000 in 0.0 seconds (effective 1068.5 kbit/s). Hash of data verified. Leaving. Hard resetting via RTS pin.

    Отключаем подтяжку GPIO0 и запускаем Serial Monitor (Tools — Serial monitor):

    Теперь можем перезапустить плату кнопкой Reset и на экране появятся строки, сигнализирующие об успешном подключении к сети Wi-Fi:

    WiFi connected Starting web server on port: '80' Starting stream server on port: '81' Camera Ready! Use 'http://192.168.0.104' to connect

    Собственно, остается только перейти в браузере по указанному ip-адресу, чтобы наглядно увидеть результат работы программы. Далее находим внизу кнопку Start Stream и получаем изображение с OV2640:

    Пример Web Server.

    Видео-поток с камеры OV2640.

    Можно потестировать имеющиеся настройки камеры, в частности интересны режимы распознавания лица. Кстати я видел много комментариев на разных площадках, что начиная с определенной версии эта функция работать перестала. Но на практике я с проблемами не столкнулся — все работает более чем корректно.

    Включаем Face Detection и Face Recognition и далее кнопкой Enroll Face можно зарегистрировать человека. И впоследствии камера определит, находится ли в кадре зарегистрированное лицо или некое другое. В общем, все это можно попробовать, а наша сегодняшняя задача на этом выполнена, до скорых встреч 🤝

    Источник

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