ESP32:Модули/ESP32-WROOM-32

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 1837 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


Знакомство с модулем ESP32[1]

Это ознакомительный гайд по модулю ESP32. Если вы знакомы с ESP8266, то ESP32 – это его «наследник». ESP32 оснащен кучей новых функций, но самые главные из них – это два ядра и функционал для беспроводной коммуникации по WiFi и Bluetooth.

Модуль ESP32-WROOM-32

В данном руководстве о чипе ESP32 будет рассказываться на примере модуля ESP-WROOM-32. Он показан на картинке ниже:

ESP32 1.jpg

Функции и характеристики

Ниже – беглый обзор функций и характеристик чипа ESP32:

  • Беспроводная связь: WiFi – скорость 150 Мбит/сек в режиме HT40; BluetoothBLE (Bluetooth Low Energy) и стандартный Bluetooth.
  • Процессор: 32-битный 2-ядерный микропроцессор Tensilica Xtensa LX6, умеющий работать на 160 и 240 МГц.
  • ROM: 448 Кб.
  • SRAM: 520 Кб.
  • Низкое энергопотребление: Вы можете делать аналогово-цифровые преобразования, к примеру, в режиме глубокого сна.
  • Функционал для ввода/вывода данных на периферийные устройства: Передача данных с DMA; поддерживаются емкостные датчики, АЦП, ЦАП, I2C, UART, SPI, I2S, RMII и ШИМ.
  • Безопасность: Аппаратные ускорители для AES и SSL/TLS.

Подготовка модуля ESP32 для IDE Arduino

Чип ESP32 встраивается в IDE Arduino аналогично ESP8266, но на данный момент пока не все работает как нужно. Есть аддон, благодаря которому ESP32 можно программировать при помощи IDE Arduino и ее языка программирования. О том, как установить этот аддон на Windows, читайте тут, на Mac – тут.

Распиновка

В качестве подсказки того, за какие функции отвечают разные контакты ESP32, можно использовать картинку ниже:

ESP32 dev board pinout.jpg

Примечание: Ожидания касаемо того, как контакты ESP32 будут работать с IDE Arduino, оправдались. То есть, если вы впишите в скетче что-то вроде...

pinMode(16, OUTPUT);

...то эта команда сработает для контакта GPIO16.

Загрузка кода

Для этого примера нам нужно подключить к ESP32 светодиод и кнопку. Скетч очень прост: если держать кнопку нажатой, светодиод будет гореть, а если отпустить, то он потухнет.

Скопируйте код, показанный ниже, в IDE Arduino, а затем загрузите его на модуль ESP32.

  1. /*
  2.  * Кнопка, зажигающая светодиод
  3.  *
  4.  * Автор: Руи Сантос (Rui Santos )
  5.  * Более подробно о проекте на: http://randomnerdtutorials.com
  6.  */
  7.  
  8. // это константы, т.е. их значения меняться не будут;
  9. // они используются, чтобы задать номера контактов:
  10. const int buttonPin = 4;     // контакт для кнопки
  11. const int ledPin =  16;      // контакт для светодиода
  12.  
  13. // это переменные, т.е. их значения будут меняться:
  14. int buttonState = 0;         // переменная для считывания данных
  15.                              // с кнопки
  16.  
  17. void setup() {
  18.   // инициализируем контакт светодиода, выставляя его в режим OUTPUT:
  19.   pinMode(ledPin, OUTPUT);
  20.   // инициализируем контакт кнопки, выставляя его в режим INPUT:
  21.   pinMode(buttonPin, INPUT);
  22. }
  23.  
  24. void loop() {
  25.   // считываем состояние кнопки:
  26.   buttonState = digitalRead(buttonPin);
  27.  
  28.   // проверяем, нажата ли кнопка;
  29.   // если нажата, присваиваем переменной buttonState состояние HIGH:
  30.   if (buttonState == HIGH) {
  31.     // включаем светодиод:
  32.     digitalWrite(ledPin, HIGH);
  33.   } else {
  34.     // выключаем светодиод:
  35.     digitalWrite(ledPin, LOW);
  36.   }
  37. }

Теперь подключаем ESP32 к компьютеру и делаем следующее:

  • Откройте меню Инструменты > Плата (Tools > Board) и выберите свою плату. В моем случае это «ESP32 Dev Module».
ESP32 Arduino IDE 1 2.png
  • Выберите нужный COM-порт.
  • Чтобы ESP32 перешел в режим загрузки кода, зажмите кнопку BOOT и нажмите на кнопку EN. Это перезагрузит ESP32.
ESP32 BOOT EN-Copy-2 3.jpg
  • Нажмите кнопку «Загрузка» в IDE Arduino, а потом подождите несколько секунд, чтобы код скомпилировался и загрузился на модуль. Если все в порядке, вы должны увидеть следующее:
ESP32 Arduino IDE 3 4.png

Необходимые компоненты и схема

Вот список компонентов, которые потребуются вам для этого проекта:

  • Один модуль ESP32
  • Один светодиод
  • Одна кнопка
  • Одна макетная плата
  • Один резистор на 10 кОм
  • Один резистор на 270 Ом
  • Провода-перемычки

Подключите все эти компоненты, как показано на картинке ниже:

Button led esp32 schematic 5.jpg

Демонстрация

Как видите, когда я нажимаю на кнопку, светодиод горит...

Pushbutton 6.jpg

...а когда отпускаю, то тухнет.

Pushbutton2 7.jpg

См.также

Внешние ссылки

  1. randomnerdtutorials.com - Getting Started with ESP32 Dev Module