ESP32:Платы/ESP32-WROOM-32

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

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


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

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

Модуль ESP32-WROOM-32

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

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

Ниже – беглый обзор функций и характеристик чипа 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 будут работать с IDE Arduino, оправдались. То есть, если вы впишите в скетче что-то вроде...

pinMode(16, OUTPUT);

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

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

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

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

/*
 * Кнопка, зажигающая светодиод
 *
 * Автор: Руи Сантос (Rui Santos )
 * Более подробно о проекте на: http://randomnerdtutorials.com
 */

// это константы, т.е. их значения меняться не будут;
// они используются, чтобы задать номера контактов: 
const int buttonPin = 4;     // контакт для кнопки
const int ledPin =  16;      // контакт для светодиода

// это переменные, т.е. их значения будут меняться:
int buttonState = 0;         // переменная для считывания данных
                             // с кнопки

void setup() {
  // инициализируем контакт светодиода, выставляя его в режим OUTPUT: 
  pinMode(ledPin, OUTPUT);
  // инициализируем контакт кнопки, выставляя его в режим INPUT:
  pinMode(buttonPin, INPUT);
}

void loop() {
  // считываем состояние кнопки:
  buttonState = digitalRead(buttonPin);

  // проверяем, нажата ли кнопка;
  // если нажата, присваиваем переменной buttonState состояние HIGH: 
  if (buttonState == HIGH) {
    // включаем светодиод:
    digitalWrite(ledPin, HIGH);
  } else {
    // выключаем светодиод:
    digitalWrite(ledPin, LOW);
  }
}

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

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

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

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

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

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

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

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

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

См.также

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