Об ESP32-CAM
ESP32-CAM — это небольшой модуль камеры, выпущенный компанией Ai-Thinker Co., Ltd, который может работать автономно как самая маленькая система, с размерами 27*40,5*4,5 мм и минимальным током в режиме глубокого сна 6 мА.
Особенности ESP32 CAM
- Интерфейс камеры (до 24 Мп)
- Подключение по Wi-Fi и Bluetooth
- Двухъядерный процессор ESP32-D0WDQ6
- 520 КБ SRAM
- 4 МБ флэш-памяти
- Модуль камеры OV2640 2 МП
- Поддержка форматов JPEG и BMP
- Интерфейс USB Type-C
- Разъем для LiPo-аккумулятора
- 32-разрядный процессор, до 240 МГц
- Встроенный приемопередатчик Wi-Fi 802.11b/g/n HT40
- Встроенный двухрежимный Bluetooth (классический и BLE)
- Встроенная печатная антенна
- Встроенная память PSRAM объемом 8 Мбайт
- Встроенная камера
- Внешний разъем для камеры
- 5 программируемых GPIO
- 2 x UART, 2 x SPI, I2C, I2S, IRDA, PWM, GPIO
Распиновка ESP32 CAM

ESP32-CAM имеет три контакта GND и два контакта для питания: 3,3 В или 5 В.
GPIO 1 и GPIO 3 являются последовательными контактами. Эти контакты необходимы для загрузки кода на плату. Кроме того, GPIO 0 играет важную роль, поскольку определяет, находится ли ESP32 в режиме мигания или нет. Когда GPIO 0 подключен к GND, ESP32 находится в режиме мигания.
Следующие контакты подключены внутренне к считывателю карт microSD:
GPIO 14: CLK
GPIO 15: CMD
GPIO 2: Данные 0
GPIO 4: Данные 1 (также подключен к встроенному светодиоду)
GPIO 12: Данные 2
GPIO 13: Данные 3
Разработка проекта ESP32 Cam
Создание среды
Оборудование
- Модуль ESP32-CAM
- Камера OV2640
- Плата USB-TTL (USB-TTL)
- Линия Dupont
- Источник питания 5 В 2 А
Модуль ESP32-CAM питается отдельно, U0TXD, U0RXD и GND подключаются к плате последовательного порта и подключаются к компьютеру, а камера подключается к модулю через кабель.
Перед программированием GPIO0 модуля ESP32-CAM необходимо заземлить и сбросить. После завершения программирования GPIO0 приостанавливается и сбрасывается для перехода в рабочий режим.
Системная среда
ESP32 можно разрабатывать на разных системах. Здесь представлено введение в среду разработки для настольной версии Ubuntu (версия Ubuntu 18.04.3).
Настройка сервера загрузки
Запустите «Программное обеспечение и обновления», щелкните раскрывающийся список «Загрузить из» на вкладке «Программное обеспечение Ubuntu», выберите «Другое…», найдите «Китай» и выберите любой сервер, нажмите «Выбрать сервер», а затем введите пароль для подтверждения. Когда окно закроется, появится запрос на обновление информации, нажмите «Перезагрузить» для обновления.

Установить программное обеспечение
sudo apt-get purge vim-common
sudo apt-get install vim
sudo apt install git
Установить зависимую среду
sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache libffi-dev libssl-dev
Код проекта и среда разработки
вытаскивать предмет
Одновременное извлечение проекта и подмодулей:
git clone --recurse-submodules https://github.com/Ai-Thinker-Open/Ai-Thinker-Open_ESP32-CAMERA_LAN.git
Если выгрузка прервана, необходимо войти в каталог проекта, чтобы повторно выгрузить субмодуль:
cd Ai-Thinker-Open_ESP32-CAMERA_LAN/
git submodule update --init --recursive
Структура развития
После извлечения проекта вы увидите, что в каталоге проекта есть каталог esp-idf. esp-idf (Espressif IoT Development Framework) — это среда разработки esp. Среда разработки проекта построена на основе esp-idf. Версия idf в этом проекте — esp-idf-v4.0.
Установите путь IDF_PATH
Отредактируйте файл конфигурации .bashrc:
cd esp-idf/
vim ~/.bashrc
Используйте команду vim, чтобы открыть .bashrc, переместите курсор в конец файла с помощью клавиатуры, нажмите a для ввода, нажмите Enter в конце, чтобы перейти к пустой строке, и введите соответствующее содержимое в соответствии со следующим форматом, чтобы установить переменную IDF_PATH:
# export IDF_PATH=<esp-idf absolute path>, the example is as follows
export IDF_PATH=/home/user/Desktop/esp32/Ai-Thinker-Open_ESP32-CAMERA_LAN/esp-idf
После завершения ввода нажмите esc, чтобы отменить редактирование, :wq, чтобы сохранить и выйти, выполните следующую команду, чтобы изменения вступили в силу немедленно:
source ~/.bashrc
Проверьте, является ли переменная действительной:
echo $IDF_PATH
Если выведенный путь соответствует настройке, перейдите к следующему шагу, в противном случае необходимо повторить операцию.
Установить инструменты разработки
Запустите скрипт install.sh в каталоге esp-idf:
./install.sh
Затем терминал запросит информацию о загрузке. После вывода сообщения «All done!» установка завершена. В этот момент запустите скрипт export.sh, чтобы установить переменную среды:
. ./export.sh
Обратите внимание, что после первой точки «.» есть пробел, который необходимо выполнять каждый раз при открытии терминала для разработки и отладки проекта.
После выполнения скрипта отобразится сообщение «Done!», означающее успешное завершение, после чего можно настраивать, компилировать и загружать проект.
Настройка, компиляция и загрузка
Конфигурация проекта
Войдите в каталог демонстрационного проекта «Ai-Thinker-Open_ESP32-CAMERA_LAN/examples/single_chip/camera_web_server».
cd ../examples/single_chip/camera_web_server/
Затем приступаем к настройке проекта:
make menuconfig
Сообщение «recipe for target 'mconf.o' failed» (рецепт для цели «mconf.o» не удался) является проблемой зависимости. Введите sudo apt-get install libncurses5-dev, чтобы установить соответствующие зависимости, и попробуйте снова.
Интерфейс конфигурации выглядит следующим образом:

Используйте клавиши со стрелками и клавишу Enter для перемещения курсора, войдите в интерфейс «Serial flasher config» (Настройка последовательного мигателя) и следуйте инструкциям на рисунке ниже для настройки. Здесь последовательный порт настроен на «/dev/ttyUSB0», и его необходимо настроить для подключения к модулю ESP32-CAM во время работы последовательного порта.

Войдите в интерфейс «Camera Web Server»->«Camera Pins»->«Select Camera Pinout», выберите «ESP32-CAM by AI-Thinker».

Войдите в интерфейс «Camera Web Server»->«Wifi Settings» (Веб-сервер камеры->Настройки Wi-Fi), чтобы установить режим Wi-Fi, «Wifi STA SSID» (SSID Wi-Fi STA) и «Wifi STA Password» (Пароль Wi-Fi STA), а также «Wifi AP SSID» (SSID Wi-Fi AP) и «Wifi AP Password» (Пароль Wi-Fi AP), чтобы установить один из них.
(Wifi STA означает режим станции, ESP32-CAM подключается к сети Wi-Fi других устройств; Wifi AP означает режим AP, компьютер или мобильный телефон подключается к точке доступа Wi-Fi, открытой ESP32-CAM)
Здесь используется режим Wifi AP, а «Wifi AP IP Address» ниже устанавливает IP-адрес модуля в режиме Wifi AP.

После завершения настройки используйте клавиши «влево» и «вправо», чтобы переместить нижний курсор на «<Save>» (Сохранить) и нажмите Enter для сохранения, а затем перейдите к «<Exit>» (Выход), чтобы выйти из конфигурации.
Скомпилировать и скачать
сборка:
make
загрузка:
make flash
Следует отметить, что перед программированием модуль GPIO0 необходимо заземлить и сбросить.
При загрузке make flash по умолчанию используется ранее настроенный порт «/dev/ttyUSB0», а другие порты можно указать с помощью параметра -p: make flash -p [PORT]
Если появится сообщение о том, что не удается открыть последовательный порт из-за проблем с правами доступа, можно открыть все права доступа к последовательному порту с помощью sudo chmod -R 777 <порт>, например sudo chmod -R 777 /dev/ttyUSB0, но все права доступа к открытому последовательному порту станут недействительными после отключения последовательного порта. Кроме того, текущий пользователь может быть добавлен в группу dialout sudo usermod -a -G dialout <имя пользователя>
Получение информации о печати последовательного порта:
make monitor
Следует отметить, что модуль GPIO0 должен быть приостановлен для включения или сброса при работе.
Кроме того, вы также можете использовать помощник последовательного порта для просмотра информации о печати модуля.
Сделать фото и видео
После загрузки демонстрационной прошивки модуль ESP32-CAM включается и запускается. Подключите компьютер или мобильный телефон к сети, в которой находится модуль, и перейдите по адресу модуля в браузере.
В режиме Station адрес модуля — это IP-адрес, назначенный модулю устройством Wi-Fi-хотспота; в режиме AP — это адрес, установленный в поле «Wifi AP IP Address».
На веб-странице модуля нажмите кнопку «Get Still» (Сделать снимок) под панелью управления слева, чтобы сделать фотографию, и кнопку «Start Stream» (Запустить трансляцию), чтобы записать видео. После съемки фотографии или видео изображение будет отображаться на веб-странице.
Просмотрите интерфейс управления модулем на мобильном телефоне, как показано ниже. Вы можете нажать «Save» (Сохранить) в правом верхнем углу изображения, чтобы сохранить изображение.





