Главная » Микроконтроллеры » Введение в плату разработки ESP32

Введение в плату разработки ESP32

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

Итак, давайте подробно обсудим этот микроконтроллер. Мы рассмотрим его характеристики, ключевые особенности, распиновку ESP32, питание этой платы, предпочтение перед Arduino и протестируем простейший код «мигающий светодиодный», который может работать на этом микроконтроллере. Итак, приступим.

Если вы хотите приобрести плату для разработки ESP32, вы можете приобрести ее по следующей ссылке: ESP32

Введение в плату разработки ESP32

Введение в плату разработки ESP32

ESP32 относится к серии маломощных и недорогих микроконтроллеров. Он имеет интегрированный двухрежимный Bluetooth и Wi-Fi. Он особо нацелен на обеспечение универсальности и надежности в большом количестве приложений.

Некоторые приложения, в которых широко используется этот микроконтроллер: декодирование MP3, кодирование голоса и потоковая передача аудио. ESP32 имеет USB порт, поэтому мы можем сказать, что это устройство Plug And Play, т.е. просто подключите кабель, и ваше устройство будет подключено, и вы сможете программировать его так же, как платы Arduino. Подробнее о программировании этой платы мы поговорим позже.

Сравнение ESP32 с Arduino

Если мы сравним этот микроконтроллер с платами Arduino, то у нас есть одно большое преимущество этого микроконтроллера перед платами Arduino — это Wi-Fi. Хотя Wi-Fi можно использовать со многими платами Arduino, но эта функция добавляется посредством установки шилдов или дополнительных модулей. Если мы прикрепим шилд Wi-Fi к нашей плате 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 МБ
  • Максимальный ток на каждом контакте составляет 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

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

Однако выводы аналогово-цифрового преобразователя (АЦП) и цифро-аналогового преобразователя (ЦАП) статичны.

  • Каналов АЦП: 18
  • Каналов ЦАП: 2
  • SPI: 3
  • UART: 3
  • I2C: 2
  • ШИМ: 16
  • I2S: 2

Датчики в ESP32

  • Датчик холла
  • Кварцевый генератор частотой 32 кГц
  • Аналоговый усилитель со сверхнизким уровнем шума
  • 10 емкостных сенсорных выводов

Питание платы разработки ESP32

Чтобы запитать плату разработки ESP32, мы можем использовать либо порт USB, либо LiPo аккумулятор. Если мы используем оба этих устройства на нашей плате, то контроллер заряда, который уже присутствует на плате, будет заряжать нашу LiPo батарею.

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

Программирование ESP32

программирование платы ESP32 с Arduino IDE

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

Установка драйверов для ESP32

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

Установка библиотек для ESP32

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

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

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

Мигающий светодиод

Итак, первая программа, которую мы собираемся обсудить, — это мигание светодиода. Весь код для мигания светодиода написан в Arduino IDE.

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

Если он распознается Arduino IDE, тогда мы можем писать свой код, в противном случае вам нужно сделать его распознаваемым Arduino IDE, используя следующий фрагмент кода

int LED_BUILTIN = 2;

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

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

void setup() 
{
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() 
{
  digitalWrite(LED_BUILTIN, HIGH);   // включить светодиод, установив ВЫСОКИЙ уровень напряжения
  delay(1000);                       // ждем секунду
  digitalWrite(LED_BUILTIN, LOW);    // выключить светодиод, установив НИЗКИЙ уровень напряжения
  delay(1000);                       // ждем секунду
}

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

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

Если мы хотим снова вызвать функцию настройки setup(), мы должны повторно запустить нашу программу или перезапустить плату разработки, либо с помощью кнопки на плате, либо путем отключения и повторного подключения нашей платы.

Итак, если мы посмотрим на наш код, помня о перечисленных выше пунктах, то видим что мы сначала инициализировали наш встроенный светодиод на входном/выходном контакте общего назначения 2. После инициализации мы объявляем этот вывод как выход. Затем переходим в основной рабочий цикл, который будет выполняться бесконечно, пока мы не отключим нашу плату или не остановим выполнение этой программы.

В loop() мы сначала включаем светодиод с помощью функции DigitalWrite, установив HIGH. Затем мы ждем 1 секунду. Далее выключаем светодиод, назначив DigitalWrite значение LOW и снова ждем 1 секунду. После этого цикл повторяется сначала.

Оставить комментарий

Ваш email нигде не будет показан. Обязательные для заполнения поля помечены *

*