Початок роботи з ESP32
Микита
Головний редактор
Стаття призначена для тих, хто тільки починає знайомство з платою розробки ESP32. Якщо ви знайомі з ESP8266, ESP32 це його вдосконалена версія. Плата поєднує бездротові можливості Wi-Fi та Bluetooth та двоядерний процесор.

ESP32 DEVKIT V1
У статті розглядається ESP32 DEVKIT V1. Але всі приклади сумісні з іншими платами розробки ESP32 на чіпі ESP-WROOM-32.
Приклади плат ESP32:
Яку ESP32 вибрати
| Характеристики | |
|---|---|
| Кількість ядер | 2 (Dual Core) |
| Тактова частота | до 240 МГц |
| Архітектура | 32-bit |
| RAM | 512 КБ |
| Wi-Fi | 2.4 ГГц, до 150 Мбіт/с |
| Bluetooth | BLE (Bluetooth Low Energy) та Legacy Bluetooth |
| Кількість пінів введення/виводу (GPIO) | 30 або 36 залежно від моделі |
| Периферія | АЦП (аналого-цифровий перетворювач), ЦАП (цифро-аналоговий перетворювач), UART (універсальний асинхронний приймач), SPI (послідовний периферійний інтерфейс), I2C (послідовна асиметрична шина) та багато іншого. |
Середовище розробки
ESP32 можна програмувати за допомогою:
- Arduino IDE
- Espressif IDF (IoT Development Framework)
- Micropython
- JavaScript
- LUA
Підготовка до роботи
Розпіновка ESP32
ESP32 має більше контактів GPIO з більшою функціональністю в порівнянні з ESP8266. У програмному коді можна встановити режим роботи GPIO пінів: UART, I2C або SPI. Це можливо завдяки функції мультиплексування мікросхеми ESP32, яка дозволяє призначати кілька функцій одному й тому виходу. Якщо їх не встановити в коді, контакти будуть використовуватися за замовчанням, як показано на малюнку нижче (розташування контактів може змінюватися залежно від виробника).
Версія з 30 панами входу/виходу
Версія з 36 панами входу/виходу
Arduino IDE
Завантаження коду
Розглянемо простий приклад миготіння вбудованим світлодіодом.
Відкрийте Arduino IDE на своєму комп'ютері та скопіюйте наступний код:
// світлодіод на ESP32 під'єднано до GPIO 23
const int ledPin = 23;
// функція setup виконується один раз під час підключення живлення або перезавантаження плати
void setup () {
// ініціалізація режиму роботи цифрового піна ledPin як вихідний
pinMode(ledPin, OUTPUT);
}
// функція loop виконується нескінченну кількість разів по колу
void loop () {
digitalWrite(ledPin, HIGH); // подаємо цифровий сигнал високого рівня (HIGH) на пін ledPin, тобто включаємо світлодіод
delay(1000); // чекаємо 1 секунду
digitalWrite(ledPin, LOW); // подаємо сигнал низького рівня (LOW), тобто вимикаємо світлодіод
delay(1000); // чекаємо 1 секунду
}
Цей код включає та вимикає світлодіод, підключений до GPIO 23 з інтервалом в одну секунду.
Ускладнимо приклад
Крім увімкнення/вимкнення вбудованого світлодіода, можна під'єднати зовнішній світлодіод до порту 23.
Важливо! Завжди перевіряйте розпіновку вашої плати перед підключенням.
Для цієї збірки знадобиться:
- Плата ESP32 DEVKIT V1
- 5 мм світлодіод
- Резистор на 330 Ом
- Джампери
- Макетна плата (необов'язково)
Після підключення всіх компонентів під'єднайте ESP32 до комп'ютера та дотримуйтесь інструкцій:
- Перейдіть до меню
ІнструментиПлата. Знайдіть розділ ESP32 і виберіть плату ESP32, наприклад ESP32 DEVKIT V1. - У меню
ІнструментиПортвиберіть порт, до якого під'єднано ESP32. Якщо ви не впевнені в назві порту, від'єднайте плату і перевірте, який порт зник зі списку. - Натисніть
Завантажити.
Демонстрація
Після завантаження коду, вбудований світлодіод, підключений до GPIO 23, блиматиме з інтервалом в 1 секунду.
Можливі помилки
Failed to connect to ESP32: Timed out... Connecting...
Передусім переконайтеся, що в налаштуваннях Arduino IDE вибрано правильну плату та порт.
Якщо помилка не зникла, це означає, що плата ESP32 не знаходиться в режимі перепрошивки/завантаження. Щоб завантажити код у такій ситуації, виконайте такі кроки:
- Затисніть кнопку
BOOTна платі ESP32 - Після того, як ви побачите повідомлення Connecting…. у консолі Arduino IDE, відпустіть палець із кнопки
BOOT: - Після цього ви маєте побачити повідомлення Done uploading.
Після завантаження скетчу натисніть кнопку ENABLE для перезавантаження ESP32.
На завершення
Миготіння світлодіодом - це простий проєкт, який допоможе вам почати працювати з ESP32 і дізнатися, як завантажувати прошивку в плату.