В этой статье мы познакомим вас с новым микроконтроллером ESP32. У всех нас есть некоторое представление о платах для разработки Arduino и о том, как они широко используются. Но когда дело доходит до ESP32, он имеет много преимуществ перед платами разработки Arduino. Старая версия этой платы — ESP8266. Итак, давайте подробно обсудим этот микроконтроллер. Мы рассмотрим его характеристики, основные функции, расположение контактов, питание этой платы, предпочтения по сравнению с Arduino и код мигающего светодиода, который может работать на этом микроконтроллере. Итак, приступим.

 

если вы хотите приобрести плату разработки ESP32, вы можете приобрести по этой ссылке:  ESP32

ВВЕДЕНИЕ в плату разработки ESP32

https://microcontrollerslab.com/wp-content/uploads/2019/03/ESP32-touch-sensors-pinout-with-Devkit-DOIT-300x127.jpg?ezimgfmt=ng:webp/ngcb1 300w,https://microcontrollerslab.com/wp-content/uploads/2019/03/ESP32-touch-sensors-pinout-with-Devkit-DOIT-768x324.jpg?ezimgfmt=ng:webp/ngcb1 768w" alt="Распиновка сенсорных датчиков ESP32 с помощью Devkit DOIT" width="1024" height="432" class="wp-image-9549 ezlazyloaded" style="vertical-align: bottom; border-radius: inherit;" data-attachment-id="9549" data-permalink="https://microcontrollerslab.com/esp32-touch-sensor-button-example/esp32-touch-sensors-pinout-with-devkit-doit/#main" data-orig-file="https://microcontrollerslab.com/wp-content/uploads/2019/03/ESP32-touch-sensors-pinout-with-Devkit-DOIT.jpg" data-orig-size="2292,967" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="ESP32 touch sensors pinout with Devkit DOIT" data-image-description data-image-caption data-medium-file="https://microcontrollerslab.com/wp-content/uploads/2019/03/ESP32-touch-sensors-pinout-with-Devkit-DOIT-300x127.jpg" data-large-file="https://microcontrollerslab.com/wp-content/uploads/2019/03/ESP32-touch-sensors-pinout-with-Devkit-DOIT-1024x432.jpg" data-ezsrcset="https://microcontrollerslab.com/wp-content/uploads/2019/03/ESP32-touch-sensors-pinout-with-Devkit-DOIT-1024x432.jpg?ezimgfmt=ng:webp/ngcb1 1024w,https://microcontrollerslab.com/wp-content/uploads/2019/03/ESP32-touch-sensors-pinout-with-Devkit-DOIT-300x127.jpg?ezimgfmt=ng:webp/ngcb1 300w,https://microcontrollerslab.com/wp-content/uploads/2019/03/ESP32-touch-sensors-pinout-with-Devkit-DOIT-768x324.jpg?ezimgfmt=ng:webp/ngcb1 768w" data-ezsrc="https://microcontrollerslab.com/wp-content/uploads/2019/03/ESP32-touch-sensors-pinout-with-Devkit-DOIT-1024x432.jpg?ezimgfmt=rs:776x327/rscb1/ng:webp/ngcb1" />

ESP32 относится к серии микроконтроллеров с низким энергопотреблением и низкой стоимостью. Он поставляется с уже интегрированным двойным режимом Bluetooth и Wi-Fi. Он специально предназначен для обеспечения универсальности, прочности и надежности в большом количестве приложений. Некоторыми приложениями, в которых этот микроконтроллер широко используется, являются декодирование MP3, кодирование голоса и потоковая передача музыки. С помощью этого микроконтроллера можно легко добиться наилучших характеристик по ВЧ и мощности. ESP32 поставляется с USB-портом, поэтому мы можем сказать, что это устройство plug and play, то есть просто подключите кабель, и ваше устройство включено, и вы можете программировать его так же, как платы разработки Arduino. Подробнее о программировании этой платы мы поговорим позже.

СРАВНЕНИЕ ESP32 С ARDUINO

Если мы сравним этот микроконтроллер с платами Arduino, то у нас будет большое преимущество этого микроконтроллера перед платами разработки Arduino, а именно Wi-Fi. Хотя Wi-Fi можно использовать со многими платами Arduino, эта функция реализуется в виде экранов/адаптеров. Если мы подключим экран Wi-Fi к нашей плате Arduino, мы сможем получить доступ к Интернету на нашей плате Arduino, иначе это невозможно. ESP32 имеет встроенный модуль Wi-Fi. То же самое и с Bluetooth, который доступен в Arduino в виде некоторых модулей, а когда дело доходит до ESP32, эта функция уже интегрирована. Так что, если мы заинтересованы в использовании Wi-Fi и Bluetooth, то эта плата дешевле по сравнению с платами Arduino, поскольку эти адаптеры для Wi-Fi и Bluetooth дороги.

КЛЮЧЕВЫЕ ОСОБЕННОСТИ ESP32

  • Встроенный модуль Wi-Fi стандарта 802.11
  • Модуль Wi-Fi работает в диапазоне 2,4 ГГц – 2,5 ГГц.
  • Три режима работы: 1. Точка доступа. 2. Клиент. 3. Точка доступа + станция
  • Двухъядерный 32-битный микропроцессор
  • Рабочее напряжение 3,3 В
  • Тактовая частота от 80 МГц до 240 МГц
  • Память SRAM составляет 512 КБ.
  • ПЗУ 448 КБ
  • Поддерживается внешняя флэш-память до 32 Мб, т.е. 4 Мб.
  • Максимальный ток на каждом выводе составляет 12 мА, но рекомендуется использовать 6 мА.
  • Он имеет 36 контактов ввода/вывода общего назначения.
  • Входные/выходные контакты общего назначения имеют функции PWM/I2C и SPI.
  • Доступна версия Bluetooth 4.2 и версия Bluetooth с низким энергопотреблением (BLE).
  • Рабочее напряжение от 2 до 3,6 В
  • Ток глубокого сна 2,5 мкА
  • 10-электродная емкостная сенсорная поддержка
  • Аппаратно поддерживаемое шифрование для AES, ECC, RSA — 4096, SHA2
  • Встроенная антенна на печатной плате или разъем IPEX, которые действуют как внешняя антенна
  • Рабочая температура находится в диапазоне от -40°C до +125°C

ХАРАКТЕРИСТИКИ ВЫВОДОВ ESP32

https://microcontrollerslab.com/wp-content/uploads/2019/02/ESP32-pinout-300x127.png?ezimgfmt=ng:webp/ngcb1 300w,https://microcontrollerslab.com/wp-content/uploads/2019/02/ESP32-pinout-768x324.png?ezimgfmt=ng:webp/ngcb1 768w" alt="Распиновка ESP32" width="1024" height="432" class="wp-image-9469 ezlazyloaded" style="vertical-align: bottom; border-radius: inherit;" data-attachment-id="9469" data-permalink="https://microcontrollerslab.com/esp32-pinout-use-gpio-pins/esp32-pinout/#main" data-orig-file="https://microcontrollerslab.com/wp-content/uploads/2019/02/ESP32-pinout.png" data-orig-size="2292,967" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="ESP32 pinout" data-image-description data-image-caption data-medium-file="https://microcontrollerslab.com/wp-content/uploads/2019/02/ESP32-pinout-300x127.png" data-large-file="https://microcontrollerslab.com/wp-content/uploads/2019/02/ESP32-pinout-1024x432.png" loading="lazy" data-ezsrcset="https://microcontrollerslab.com/wp-content/uploads/2019/02/ESP32-pinout-1024x432.png?ezimgfmt=ng:webp/ngcb1 1024w,https://microcontrollerslab.com/wp-content/uploads/2019/02/ESP32-pinout-300x127.png?ezimgfmt=ng:webp/ngcb1 300w,https://microcontrollerslab.com/wp-content/uploads/2019/02/ESP32-pinout-768x324.png?ezimgfmt=ng:webp/ngcb1 768w" data-ezsrc="https://microcontrollerslab.com/wp-content/uploads/2019/02/ESP32-pinout-1024x432.png?ezimgfmt=rs:776x327/rscb1/ng:webp/ngcb1" />

ESP32 поддерживает функцию мультиплексирования контактов, т.е. мы можем решить, какие периферийные устройства можно подключить из 28 сломанных входных/выходных контактов. Это просто означает, что мы должны принять решение об этих контактах, и они могут действовать как MISO, RX, SCLK, MOSI, TX, SCL, SDA и многие другие. Однако контакты для аналого-цифрового преобразователя и цифро-аналогового преобразователя являются статическими.

  • Каналов аналого-цифрового преобразователя (АЦП) 18.
  • Интерфейсов SPI 3
  • Интерфейсов UART 3
  • Интерфейсов I2C 2
  • Выходы ШИМ 16
  • Цифро-аналоговые преобразователи (DAC) 2
  • Интерфейсы I2S 2

ДАТЧИКИ НА ESP32

  • Датчики Холла
  • кварцевый генератор 32 кГц
  • Сверхмалошумящий аналоговый усилитель
  • 10-кратные емкостные сенсорные интерфейсы

ПИТАНИЕ РАЗРАБОТОЧНОЙ ПЛАТЫ ESP32

Чтобы включить вашу плату разработки ESP32, мы можем использовать порт USB или аккумулятор LiPo. Если мы используем эти оба устройства на нашей плате, то контроллер заряда, который уже присутствует на плате, будет заряжать нашу батарею LiPo. На плате также присутствует стабилизатор напряжения 3,3 В, который обеспечивает ток 600 мА. Во время радиопередачи наша плата может потреблять до 250 мА. Наши входные и выходные контакты общего назначения не могут выдерживать 5 В. Поэтому, если нам нужно подключить нашу плату к 5 В, мы должны сместить уровень.

ПРОГРАММИРОВАНИЕ ESP32

Для программирования этой платы можно использовать Arduino IDE. Но нам нужно установить некоторые драйверы и библиотеки, чтобы сделать его совместимым с Arduino IDE и готовым к использованию, точно так же, как мы используем другие платы Arduino в Arduino IDE. Поэтому краткое описание необходимых драйверов и библиотек приведено ниже.

УСТАНОВИТЬ ДРАЙВЕРЫ

Самая первая и важная вещь для программирования этой платы — это установка драйверов CP210x USB — UART. В зависимости от вашей операционной системы установите соответствующие драйверы.

УСТАНОВИТЕ БИБЛИОТЕКИ ДЛЯ ESP32

Вы можете установить библиотеки для ESP32 с помощью GitHub. После установки всех этих драйверов и библиотек вы готовы к программированию платы. Вы можете использовать терминал в MAC или командную строку в операционной системе Windows, чтобы установить эти библиотеки из GitHub.

Как только вы закончите установку необходимых драйверов и библиотек, вам нужно перезапустить Arduino IDE, и вы готовы к работе. После перезапуска Arduino IDE вы увидите несколько плат, добавленных в меню инструментов Arduino IDE. Теперь выберите подходящую доску.

МИГАЕТ СВЕТОДИОД:

Итак, первая программа, которую мы собираемся обсудить, — это мигание светодиода. Весь код для мигания светодиода будет написан в Arduino IDE. Существует встроенный светодиод в комплекте для разработки ESP32, который подключен к вводу/выводу общего назначения 02. Еще одна вещь, которую нам нужно проверить перед написанием нашего кода, — это убедиться, что наша встроенная светодиодная плата для разработки ESP32 поддерживается Arduino IDE. . Если он распознается Arduino IDE, вы готовы написать свой код, в противном случае вам нужно сделать его распознаваемым Arduino IDE, используя следующий фрагмент кода.

  • интервал LED_BUILTIN = 2;

К каждой плате ESP32 подключен внутренний светодиод, но они подключены к разным входным и выходным контактам общего назначения. В нашем случае внутренний синий светодиод подключен к универсальному входу-выходу. Итак, давайте напишем наш кусок кода.

/*
  ESP 32 Мигание
  Включает светодиод на одну секунду, затем выключает на одну секунду, несколько раз.
  ESP32 имеет внутренний синий светодиод на D2 (GPIO 02).
*/

интервал LED_BUILTIN = 2;

недействительная установка ()
{
  pinMode (LED_BUILTIN, ВЫХОД);
}

пустой цикл ()
{
  цифровая запись (LED_BUILTIN, ВЫСОКАЯ); // включаем светодиод (HIGH - уровень напряжения)
  задержка(1000); // ждем секунду
  цифровая запись (LED_BUILTIN, НИЗКИЙ); // выключаем светодиод, понижая напряжение
  задержка(1000); // ждем секунду
}

Программный поток каждого кода, который мы пишем в Arduino IDE, заключается в том, что сначала мы инициализируем переменные. Переменные могут быть локальными или глобальными. Мы не будем вдаваться в подробности этих локальных и глобальных переменных. После инициализации переменных будет вызвана наша функция настройки, которая используется для присвоения значений инициализированным переменным, а затем будет вызвана наша функция цикла. Функция настройки будет вызываться только один раз, в то время как циклическая функция, как видно из названия, будет работать непрерывно организованным образом. Если мы хотим снова вызвать функцию настройки, нам нужно повторно запустить нашу программу или перезапустить нашу плату разработки, либо с помощью кнопки отдыха на плате, либо путем отключения и повторного подключения нашей платы.

Итак, если мы посмотрим на наш код, помня о пунктах, изложенных выше, мы сначала инициализируем наш встроенный светодиод на входном выводе общего назначения 2. После инициализации этого встроенного светодиода мы видим, что инициализация и цель этого привела к тому, действует ли он как вход или выход. После назначения его в качестве вывода мы запускаем функцию цикла, которая будет работать бесконечно, пока мы не отключим нашу плату или не прекратим выполнение этой программы. В нашей функции цикла мы сначала включили наш светодиод, используя функцию DigitalWrite и назначив нашему светодиоду высокое напряжение, затем мы подождали 1-секундную задержку, а затем выключили наш светодиод, назначив низкое напряжение нашему светодиоду, а затем подождали еще одну секунду, и так цикл продолжается, то есть этот цикл включает светодиод на 1 секунду, а затем выключает его на 1 секунду, и так продолжается. теперь вы можете проверить это:

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