Что такое ESP32: Wi-Fi, Bluetooth, два ядра и GPIO

Разбираемся, что за чип лежит в основе курса и почему именно он завоевал интернет вещей.

ESP32 — это система-на-кристалле (SoC) от компании Espressif с двумя процессорными ядрами, встроенными Wi-Fi и Bluetooth и десятками программируемых выводов.

Почему именно ESP32

Для умного дома устройству нужно две вещи: уметь работать с физическим миром (читать датчик, включить реле) и выходить в сеть (отправить данные, принять команду). Многие микроконтроллеры умеют первое, но для сети к ним приходится докупать Wi-Fi-модуль. ESP32 объединяет всё в одном дешёвом чипе — отсюда его популярность. Плата стоит как чашка кофе, а умеет почти всё, что нужно для IoT.

Что внутри чипа

  • Два ядра на архитектуре Xtensa, частота до 240 МГц. Одно может заниматься сетью, другое — вашей логикой.
  • Wi-Fi (802.11 b/g/n) — подключение к роутеру и интернету.
  • Bluetooth (Classic и BLE) — связь с телефоном, датчиками.
  • GPIO — программируемые выводы (General Purpose Input/Output), к которым подключают светодиоды, кнопки, датчики, реле.
  • АЦП и ЦАП — чтение аналоговых сигналов (потенциометр, датчик света) и генерация напряжения.
  • Аппаратные ШИМ, I2C, SPI, UART — интерфейсы для управления и общения с периферией.
  • Сенсорные пины, датчик Холла, deep sleep — для энергосбережения и спецприменений.

Карта выводов (упрощённо)

На типовой плате DevKit выводы расположены по краям. Вот фрагмент логической схемы:

        ESP32 DevKit (вид сверху)
      +-----------------------+
  3V3 |o                     o| GND
  EN  |o                     o| GPIO23
GPIO36|o   [ Wi-Fi/BT чип ]   o| GPIO22
GPIO39|o                     o| GPIO1  (TX)
GPIO34|o                     o| GPIO3  (RX)
  ... |o                     o| ...
  GND |o     [ USB порт ]    o| 5V
      +-----------------------+

Не все выводы равноценны: одни умеют только ввод, другие заняты при загрузке, третьи поддерживают АЦП или сенсор. К этому вернёмся в разделе про GPIO.

Как работает под капотом

ESP32 — это не «голый» микроконтроллер, а целая платформа. Внутри крутится FreeRTOS — операционная система реального времени. Когда вы пишете на MicroPython, прошивка использует FreeRTOS, чтобы параллельно обслуживать Wi-Fi-стек и ваш код. Поэтому, например, плата может отвечать на сетевые запросы, пока ваш цикл опрашивает датчик. Два физических ядра позволяют делать это по-настоящему параллельно.

Платы на ESP32

«ESP32» — это чип, но в магазинах продаются платы с этим чипом: ESP32 DevKit V1, WROOM, WROVER (с дополнительной памятью PSRAM), а также компактные варианты. Для курса подойдёт почти любая плата с маркировкой ESP32 и USB-разъёмом.

Частые ошибки

  • Путать ESP32 и ESP8266. ESP8266 — более старый и слабый предшественник: одно ядро, только Wi-Fi, меньше выводов и без полноценного АЦП.
  • Подавать на выводы 5 вольт. Логика ESP32 работает на 3.3 В; 5 В могут повредить чип.
  • Считать, что все GPIO взаимозаменяемы. Некоторые пины нельзя использовать как выход или они мешают загрузке.

Итог

  • ESP32 — двухъядерный чип с Wi-Fi, Bluetooth и множеством GPIO.
  • Он совмещает работу с железом и выход в сеть в одном дешёвом корпусе.
  • Логика работает на 3.3 В — это важно для безопасности подключений.
  • Внутри — FreeRTOS, поэтому сеть и ваш код выполняются параллельно.
Проверьте себя
1. Чем ESP32 принципиально удобен для умного дома?
AВ нём встроены Wi-Fi и Bluetooth вместе с GPIO в одном чипе
BОн работает на 5 вольтах
CУ него нет выводов для датчиков
DОн программируется только на C
2. На каком напряжении работает логика ESP32?
A1.8 В
B3.3 В
C5 В
D12 В
3. Чем ESP32 отличается от ESP8266?
AESP8266 мощнее
BESP32 имеет два ядра, Bluetooth и больше GPIO
CОни полностью идентичны
DESP32 не умеет Wi-Fi