Электронная книга создание проектов esp32 cam с использованием arduino ide
Build 20 projects with the ESP32-CAM using Arduino IDE: photo capture, web servers, email notifications, video streaming, car robot, pan and tilt server, face detection, face recognition and much more.
See what others are saying
Thank you Rui for everything you’ve done for ESP8266 projecteers. You and your site have been my “go-to” for a few years whenever I need advice or some detail of a component.
DWilliams
I have been doing your courses on ESP8266, ESP32, and Home automation, and they are really excellent. It seems that you have taken lots of efforts to make and explain even very difficult topics in a very simple and easy to understand way. Congratulations for your valuable work.
Dattatraya Apte
This is one of the best sites on the net, period. I recently purchased your course (Learn ESP32 with Arduino IDE) and I can’t say enough about it. It simply let me bypass hours of aggravation. Clear instruction and great example code. Thanks again.
Jay W.
Hello Sir. You are such an inspiring person. I really appreciate the effort you put into your projects. Because of RNT I have successfully built my first DHT11 circuit with my new ESP32 and I am very proud of it.
Bhavish Dussoye
Hi, I love your eBooks and courses – everything has worked perfectly. I have lots of new ideas. Thanks!
John Benson
Электронные проекты на основе модулей (микроконтроллеров) ESP32, являющиеся продолжением серии модулей ESP8266 и отличающиеся от них более мощным двухъядерным процессором, наличием двухрежимного Bluetooth, большим количеством контактов ввода/вывода и рядом других усовершенствований. Благодаря всему этому модули ESP32 в настоящее время находят широкое применение в проектах тематики интернета вещей (Internet of Things, IoT). Дополнительным достоинством данных модулей является возможность их программирования с помощью такой популярной среды как Arduino IDE
Аудиоплеер на основе модуля ESP32
Музыкальные аудиоплееры – одни из популярных самодельных проектов, реализуемых начинающими радиолюбителями. Ранее на нашем сайте мы уже рассматривали проект аудиоплеера на основе платы Arduino, в этой же статье мы рассмотрим создание аудиоплеера на основе модуля ESP32 и модуля усилителя LM386 … Читать далее →
Удаление старых версий плат ESP32 из Arduino IDE
Если вы подключаете свой модуль ESP32 к Arduino IDE, то данный пункт статьи можно полностью пропустить. Если же вы ранее добавляли поддержку плат ESP32 в Arduino IDE с помощью инструмента GIT (к примеру, как описано в данной статье), то вам необходимо будет удалить каталог Espresiff из каталога Arduino. Пользователи операционной системы Windows могут найти этот каталог по адресу Documents/Arduino/hardware. Удалите данный каталог Espresiff прежде чем переходить к выполнению других пунктов статьи.
Интернет радио на ESP32 и модуле MAX98357A
Обычное аналоговое радио, достигнув пика своего развития в конце XX века, в настоящее время стало постепенно сдавать свои позиции Интернет радио, которое доступно в любой точке земного шара, где есть Интернет-соединение. Интернет радио (Internet Radio), также известное как стриминговое (streaming), … Читать далее →
Подготовка Arduino IDE к программированию ESP32
Шаг 2. Откройте Arduino IDE и в ней выберите пункт меню Files -> Preferences, в открывшемся окне найдите поле “Additional Boards Manager URLs:” (выделено красной рамкой на рисунке ниже).
Шаг 3. Это поле может быть пустым или оно может содержать некоторую информация если до этого вы в Arduino IDE работали с модулем ESP8266.
Если это поле уже содержит другой URL, то добавьте в него наш необходимый URL, разделив эти два URL запятой (,) – на представленном ниже рисунке как раз показан этот случай.
Модули ESP весьма популярны в современной радиоэлектронике благодаря наличию в них функциональности Wi-Fi. К подобным модулям можно отнести ESP8266, ESP-12E и т.д. Но среди этих модулей есть один, который отличается большей вычислительной мощностью и большей универсальностью чем другие подобные модули – это модуль ESP32. В нем реализована поддержка Bluetooth, BLE и Wi-Fi, благодаря чему он весьма часто используется в проектах, связанных с технологией интернета вещей (IoT – Internet of Things). Но не все знают, что ESP32 является двухъядерным (Dual-core) микроконтроллером. Иногда его называют не микроконтроллером, а модулем.
ESP32 имеет в своем составе два 32-битных микропроцессора Tensilica Xtensa LX6, благодаря которым он является достаточно мощным двухъядерным (core0 и core1) микроконтроллером. ESP32 доступен в двух вариантах – одноядерный и двухъядерный, но более распространен двухъядерный вариант поскольку он стоит лишь немногим дороже чем одноядерный.
Структурная схема микроконтроллера ESP32 представлена на следующем рисунке.
ESP32 можно программировать с помощью Arduino IDE, Espressif IDF, Lua RTOS и т.д. При программировании с помощью Arduino IDE код программы будет исполняться только на первом ядре (Core1) поскольку нулевое ядро (Core0) будет уже запрограммировано для решения задач радиочастотной связи. Но в данной статье мы рассмотрим как использовать оба ядра ESP32 для выполнения двух операций одновременно. Первой из этих задач будет мигание встроенным светодиодом, а второй – считывание данных температуры с датчика DHT11. Но вначале давайте рассмотрим преимущества многоядерных микропроцессоров над одноядерными.
Download the eBook
- Updated 2021
- 5 Modules (PDF eBook with 400 pages)
- Source Code
- Schematic Diagrams
- Parts List
- Unlimited Updates
- Exclusive access to a Private Forum
- Access to our Facebook group
- English language
- Created by Rui Santos and Sara Santos
Note: after your purchase, you receive an email with a username and password that you use to access the members area and download the PDF eBook.
You won’t regret it. My 60 day money back guarantee backs up every word in this message. Proceed with confidence. See you inside,
Backed by a 60 day 100% money-back guarantee
If you don’t like the course, I don’t want your money. Seriously, that’s why I offer a 60 days money back guarantee. Email me here and I will promptly refund all your money. No questions, no hassles – it’s that simple.
Измеритель мощности (ваттметр) на ESP32
Измерение тока, напряжения и мощности с помощью амперметра, вольтметра и ваттметра соответственно, является привычным делом для радиолюбителей. Но измерение эффективности использования мощности (выхода мощности, отдачи мощности, в англ. – power efficiency) с помощью обычного мультиметра может стать ощутимой проблемой. Поэтому … Читать далее →
Необходимые компоненты
- Модуль ESP32 (купить на AliExpress).
- Arduino IDE.
- Кабель для программирования micro USB.
Frequently Asked Questions
Yes. All projects contain step by step instructions and all the resources to follow along even if you’re not familiar with the ESP32.
However, keep in mind that this eBook doesn’t cover basic concepts related to ESP32 – so if you’re new to programming you might not be able to fully understand the code. To learn ESP32, you might consider enrolling in Learn ESP32 with Arduino IDE course instead.
Yes. However, depending on the board you’re using, you won’t be able to follow some of the projects.
For example, projects that use the microSD card are not compatible with boards that don’t have microSD card support. Projects that use peripherals are just compatible with boards that have exposed GPIOs.
Yes, I often update all my eBooks, so everyone who purchases gets free lifetime updates. You’ll also have access to future content that we’ll add to the eBook.
Well, if you don’t like it, I don’t want your money. Seriously, that’s why I offer a 60 days money back guarantee. Email me here and I will promptly refund all your money. No questions, no hassles – it’s that simple!
If you still have questions after reading this page please email me here. I’ll do my best to answer your questions.
The eBook is only available in English language.
Programming Language
The projects in this eBook cover programming the ESP32-CAM using Arduino IDE and the “Arduino programming language“. At the moment, the eBook doesn’t cover programming the ESP32-CAM with MicroPython.
Как использовать спящие режимы в модуле ESP32
ESP32 в настоящее время является одним из самых популярных микроконтроллеров с поддержкой технологии Wi-Fi и широко применяется в различных проектах, относящихся к тематике интернета вещей (IoT). ESP32 – достаточно мощный микроконтроллер, который поддерживает двухъядерное программирование и имеет встроенную поддержку технологии … Читать далее →
Основные аппаратные возможности модуля ESP32
При внешнем взгляде на модуль ESP32 видно, что он по размеру немного больше чем модуль ESP8266-01 и его контакты расположены более удобно на его плате. Внешний вид модуля ESP32 показан на следующем рисунке.
Как вы можете видеть из представленного рисунка, "сердцем" модуля является 32-битный микропроцессор. Далее кратко рассмотрим назначение основных элементов модуля.
Micro-USB jack: данный разъем используется для подключения модуля ESP32 к компьютеру с помощью USB кабеля. С его помощью можно программировать модуль с компьютера, а также осуществлять последовательную связь.
Кнопка EN: это кнопка сброса модуля ESP32. Нажатие этой кнопки прекращает выполнение кода программы, которая запущена в модуле.
Кнопка загрузки (Boot Button): эта кнопка используется для загрузки программы в модуль ESP32. Ее необходимо нажимать после нажатия кнопки загрузки программы в Arduino IDE. Когда эта кнопка нажата вместе с кнопкой EN, модуль переходит в режим загрузки прошивки (firmware). Не экспериментируйте с этим режимом если вы не понимаете суть происходящих при этом процессов.
Светодиод красного цвета (Red LED): данный светодиод сигнализирует о том, что на модуль подано питание.
Светодиод синего цвета (Blue LED): данный светодиод подключен к контакту GPIO модуля. Его можно включать/выключать в программе. На некоторых клонированных китайских модулях ESP32 этот светодиод может быть также красного цвета.
Контакты ввода/вывода (I/O pins): данные контакты могут выполнять функции цифрового ввода/вывода, аналогового ввода/вывода, ШИМ (PWM), IIC, SPI, ЦАП (DAC) и многое. Более подробно про назначение данных контактов вы можете прочитать в даташите на модуль ESP32.
ESP-WROOM-32: "сердце" модуля ESP32. Это 32-битный микропроцессор, разработанный компанией Espressif systems.
Основные технические характеристики модуля ESP32 представлены в следующей таблице.
Число ядер процессора | 2 |
Архитектура | 32 бита |
Wi-Fi | есть |
Bluetooth | есть |
RAM (ОЗУ) | 512 KB |
FLASH | 16 MB |
Число контактов | 30-38 (в зависимости от модификации модуля) |
Коммуникационные протоколы | SPI, IIC, I2S, UART, CAN |
Каналы АЦП | 18 |
Разрешение АЦП | 12 бит |
Каналы ЦАП | 2 |
Разрешение ЦАП | 8 бит |
Далее перейдем к подготовке среды Arduino IDE к работе с модулем.
ESP32 и FreeRTOS
Модуль ESP32 имеет встроенное в него программное обеспечение FreeRTOS, которое представляет собой операционную систему реального времени, особенно полезное при выполнении многозадачных процессов. RTOS помогает в управлении ресурсами и максимизирует производительность системы. FreeRTOS имеет множество API (прикладного программирования) функций для различных целей и с помощью этих функций мы можем запускать различные задачи на различных ядрах.
Полную документацию по API функциям FreeRTOS можно найти по этой ссылке. В нашем проекте мы сделаем попытку использования ряда этих функций для построения многозадачного приложения, которое будет исполняться на обоих ядрах ESP32.
Пульсоксиметр на ESP32 и датчике MAX30100
Пульсоксиметр – это медицинский прибор, который позволяет не инвазивно и безболезненно измерять уровень сатурации кислорода в крови, то есть степень ее насыщенности кислородом. Во время текущей пандемии коронавируса Covid-19 спрос на пульсоксиметры резко возрос во всем мире. На нашем сайте … Читать далее →
Программирование ESP32 "по воздуху" (Over-the-air) с помощью Arduino IDE
Технология программирования «по воздуху» (Over the Air, OTA) доступна для микроконтроллеров ESP32 и ESP8266, имеющих поддержку WiFi. Данная технология позволяет обновлять их прошивку или загружать в них новую программу беспроводным способом, без всякого физического контакта с ними. Эта технология особенно … Читать далее →
Ранее на нашем сайте мы уже рассматривали начало работы с модулем ESP32, в котором мы рассматривали его программирование с помощью Arduino IDE. Но на момент написания той статьи в Arduino IDE еще не было официальной поддержки модуля ESP32, поэтому его поддержку в Arduino IDE приходилось добавлять используя инструмент GIT. Теперь же, когда в Arduino IDE есть официальная поддержка модулей (плат) ESP32, в использовании инструмента GIT уже нет никакой необходимости и используя описанный ниже подход вы сможете подготовить Arduino IDE для программирования модуля ESP32.
Invitation to Join our Private Forum!
This eBook comes with an opportunity to join our private Forum of like-minded people where you can ask questions about the eBook or other related subjects. You’ll get direct help from Rui and Sara or from other active members of the community.
Протокол I2S в ESP32: принципы работы, основы программирования
I2S (Inter-IC Sound protocol) – последовательная шина для соединения цифровых аудиоустройств, используемая для передачи и приема аудио данных по синхронному последовательному порту между двумя устройствами. Находит достаточно широкое применение в современной электронике. В настоящее время в мире существует много протоколов … Читать далее →
Extra Units
- ESP32-CAM Access Point (AP)
- ESP32-CAM Static/Fixed IP Address
- Pinout for ESP32 Camera Boards
Обнаружение BLE устройств с помощью модуля ESP32
Датчики приближения (proximity sensors) предназначены для обнаружения близкорасположенных объектов с помощью света, электромагнитного поля или звука. В ряду случаев для обнаружения близко расположенных объектов целесообразно использовать технологию BLE (Bluetooth Low Energy – Bluetooth с низким энергопотреблением). Для создания подобного датчика … Читать далее →
Преимущества многоядерных микропроцессоров
- Многоядерные микропроцессоры особенно полезны когда требуется выполнять два или более процесса одновременно.
- Поскольку работа распределена между несколькими ядрами, то это позволяет выполнить некоторые задачи быстрее.
- Для многоядерных микропроцессоров можно уменьшить энергопотребление, поскольку когда какое-нибудь ядро находится в холостом режиме (idle mode), оно может быть использовано для отключения периферийных устройств, которые не используются в текущий момент времени.
- Двухъядерным микропроцессорам нет необходимости так часто переключаться между различными потоками задач как одноядерным микропроцессорам, поскольку они могут обрабатывать два потока задач одновременно вместо одного.
Определение идентификатора ядра (core ID) ESP32
В этом проекте мы будем использовать среду Arduino IDE для загрузки кода программы в модуль ESP32. Для определения идентификатора ядра (core ID), на котором исполняется код, существует специальная API функция.
Эта статья представляет собой краткое руководство по началу работы для платы 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
Напряжение питания - 5 В;
Потребляемая мощность:
- при выключенной вспышке - 180 мА;
- при включенной вспышке - 310 мА;
- глубокий сон - 6 мА;
- модем-сон - 20 мА;
- лёгкий сон - 6,7 мА.
Размеры - 40,5 х 27 х 4,5 мм
Температурный диапазон:
- рабочий: 20 – 85 ℃;
- хранение: -40 - 90 ℃ при 90% относительной влажности.
Карты памяти на 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 сети.
Затем убедитесь, что вы выбрали правильный модуль камеры. В данном случае используйте модель AI-THINKER Model. Для этого закомментируйте все другие модели и раскомментируйте указанную ниже:
Теперь код готов к загрузке на вашу ESP32.
3. Прошивка ESP32-CAM
Для прошивки я использую самый недорогой TTL программатор. И всё прошивается и работает отлично.
Подключаю всё вот по такой схеме:
Важно! GPIO 0 должен быть подключен к GND, чтобы вы смогли загрузить код.
Чтобы загрузить код, выполните следующие действия:
Важно! Если вы не можете загрузить код, то еще раз проверьте, что GPIO 0 подключен к GND и, что вы выбрали правильные настройки в меню Инструменты. Вы также должны нажать кнопку сброса на борту, чтобы перезагрузить ESP32 в режиме программирования.
4. Получение IP-адреса и подключение к камере.
После загрузки кода отключите GPIO 0 от GND. Подключите питание на 5 В. На 3,3 В у меня камера не заработала.
IP-адрес ESP32 должен быть выведен в последовательном мониторе.
У вас так же есть возможность делать фотографии, нажав на кнопку Get Still. К сожалению, этот пример не сохраняет фотографии, но вы можете изменить его, чтобы использовать встроенную карту microSD для хранения полученных фотографий.
Есть еще несколько настроек камеры, с которыми вы можете поиграть, чтобы настроить параметры изображения.
Если вы откроете монитор порта во время работы камеры, то вы получите подробную информацию о количестве кадров в секунду, о скорости обработки и пр.
Чем выше качество потокового вещания, тем меньше кадров. Комфортно работает при разрешении 600х800.
Можно реализовать распознавание лиц. Но, пока, в данном направлении я не экспериментировал. Как будут результаты, обязательно напишу статью, или сделаю проект.
Подписывайтесь на наш канал на Youtube и вступайте в группы в Вконтакте и Facebook.
Meet the Authors
Hey there, I’m Rui Santos, founder of the Random Nerd Tutorials blog. For the last couple of months we’ve been working on this new eBook dedicated to programming the ESP32-CAM boards with Arduino IDE. This eBook is our complete guide to take the most out of the ESP32 Camera development boards. If you like my work, you’ll certainly like “Build ESP32-CAM Projects” eBook.
Hi. I’m Sara Santos and I work at the RNT blog with Rui. We’ve created the “Build ESP32-CAM Projects” eBook to provide an easy way to get started with this amazing ESP32-CAM board. This board allows you to build complex projects with real world applications. By the end of this eBook, you’ll be able to make your own video streaming servers, robots, surveillance systems, and much more. I’m sure you’ll like it.
What’s Inside the eBook?
“Build ESP32-CAM Projects” is an eBook with 20 projects divided into 5 Modules and 400 pages long. The ESP32-CAM is a development board with an ESP32 chip, an OV2640 camera, microSD card slot and several GPIOs to connect peripherals.
Here’s what you’ll have access:
- eBook in PDF format (5 Modules, 400 pages, 20 Projects)
- Source Code + Full Schematics + Parts List + Pinout Diagrams
- Unlimited Free Updates (future projects will be added to the eBook)
- Access to a private Forum to ask questions
- Exclusive access to our Facebook group community
What you’ll learn:
- Take photos and save them on microSD card or SPIFFS;
- Build a web server to display and take photos;
- Send photos captured with the ESP32-CAM via email;
- Control and monitor ESP32-CAM using Telegram App;
- Create a video streaming web server;
- Run an IP cam connected to Home Assistant or Node-RED;
- Build a remote controlled car robot with camera;
- Control a pan and tilt stand to move your camera remotely;
- Face detection with face-api.js;
- Face recognition comparing two photos with face-api.js;
- And much more…
Continue reading for the complete Table of Contents…
- Getting Started with ESP32-CAM
- Preparing Arduino IDE for the ESP32-CAM
- Camera Web Server (Video Streaming and Face Recognition)
- Troubleshooting Most Common Problems
- ESP32-CAM Flashlight and External Pushbutton
- Take Photos and Save to MicroSD Card (Time-lapse)
- Photo Filename with Date and Time Saved to MicroSD Card
- Change Camera Settings
- Take Photo and Save to MicroSD Card with Pushbutton
- Take Photo and Display in Web Server
- Web Server SD Card Photo Manager: Capture, View and Delete
- Send Photos via Email using SMTP Server
- Motion Detector with Photo Capture and Email Notifications
- Take and Email Photo with a Web Server
- Take and Send Photo to Telegram App
- Motion Detector with Photo Capture and Telegram Notifications
- Video Streaming Web Server (Start and Stop Buttons)
- Video Streaming Web Server with Sensor Readings
- Video Streaming IP Camera
- Remote Controlled Car Robot with Camera (Web Server)
- Pan and Tilt Video Streaming (2 Axis)
- ESP32-CAM IP Camera: Raspberry Pi and Node-RED Dashboard
- Face Detection Video Streaming (Age, Face Expression, etc)
- Face Recognition (Comparing Two Photos)
Дверной замок с распознаванием лиц на основе модуля ESP32-CAM
Безопасность в настоящее время является одной из ключевых проблем человечества. С развитием технологий достаточно важную роль в обеспечении безопасности помещений различного назначения стали играть цифровые замки. Существующие цифровые замки могут работать на различных физических принципах: радиочастотная идентификация (RFID), распознавание лиц, … Читать далее →
Система контроля доступа с распознаванием лиц на ESP32-CAM
ESP32-CAM представляет собой крошечную плату с камерой, слотом для карт microSD и микроконтроллером ESP32, и при этом она стоит менее 10 долларов. Также у нее есть возможности использования технологий Wi-Fi и Bluetooth, что делает ее отличным выбором для многих проектов … Читать далее →
Recommended ESP32 Camera Board
This eBook is fully compatible with the ESP32-CAM AI-Thinker board – it comes with an OV2640 camera, microSD card support, 4MB PSRAM and external GPIOs to connect peripherals – see figure below.
Other ESP32 development boards with the OV2640 camera are compatible with some projects. We provide the pin assignment for the most common ESP32 camera dev boards: TTGO T-Journal, M5-Stack ESP32 camera, M5-Camera without PSRAM, TTGO T-Plus, ESP-EYE, etc…
For example, projects that involve using the SD card are just compatible with boards that support microSD card. Projects that connect external peripherals are compatible with boards with exposed GPIOs.
For projects that don’t require a microSD card nor external peripherals, the M5-stack ESP32 camera with PSRAM is a great option.
Читайте также: