Справочник платы

ESP32 и Arduino: плата с Wi-Fi на языке скетчей

ESP32 программируется как обычная Arduino: те же setup() и loop(), тот же digitalWrite — только под капотом два ядра по 240 МГц, Wi-Fi и Bluetooth. Здесь всё, что нужно для уверенного старта: распиновка с пинами-ловушками, честное сравнение с Uno, лечение зависшей прошивки и первая программа, которая сканирует сети вокруг.

Что это за плата

При чём тут Arduino, если чип — Espressif

ESP32 — микроконтроллер компании Espressif, и формально к Arduino он отношения не имеет. Но для него написана поддержка языка Arduino, поэтому скетчи, библиотеки и привычки переносятся почти без изменений: переход с Uno занимает вечер. Именно эта связка — «мощный чип + знакомый язык» — сделала ESP32 главной платой умного дома, метеостанций и всего, чему нужна сеть.

Технические характеристики ESP32

ЧипESP32 (Xtensa LX6): два ядра до 240 МГц
Память520 КБ оперативной; флеш-память модуля — обычно 4 МБ
Беспроводная связьWi-Fi 2,4 ГГц (802.11 b/g/n) + Bluetooth 4.2 и BLE
Рабочее напряжение3,3 В — пятивольтовые сигналы на входы нельзя
Питание платы5 В по micro-USB или 5–12 В на VIN (выше — сильнее греется стабилизатор)
GPIOдо 25 на 30-контактной плате; ШИМ — почти на любом выводе
АЦП12 бит: значения 0–4095 (у классических Arduino — 0–1023)
ЦАП2 канала — выводы 25 и 26: настоящий аналоговый выход
Сенсорные входыдо 9 ёмкостных (реагируют на касание)
Интерфейсы3×UART, I2C (21/22), SPI (18/19/23/5)
USB-чипCP2102 или CH340 — нужен драйвер
Форматы платDevKit на 30 и 38 контактов и десятки вариантов

Главное отличие от классики, о котором забывают чаще всего: логика здесь 3,3-вольтовая. Питать плату по USB можно как обычно, но подавать 5 В на входы нельзя — датчики берите с логикой 3,3 В или ставьте делитель напряжения из двух резисторов.

Распиновка ESP32 DevKit: схема выводов

Ниже — самая распространённая учебная плата ESP32 DevKit V1 на 30 контактов, вид сверху: антенна Wi-Fi вверху, micro-USB и кнопки внизу. Наведите на категорию в легенде — её выводы подсветятся. Обратите внимание: у ESP32, в отличие от Uno и Nano, не все выводы одинаково свободны — зелёные умеют только слушать, а оранжевые не любят нагрузку в момент включения.

Распиновка ESP32 DevKit V1 — схема выводовESP32-WROOMESP32 DEVKITLEDENBOOTUSBENVP·36VN·3934353233252627141213GNDVIN23221·TX03·RX021GND1918517·TX216·RX242153V3

Плат ESP32 выпускаются десятки видов — на 30, 36 и 38 контактов, с разными USB-разъёмами. Номера GPIO при этом совпадают, но их порядок на гребёнках бывает разным, поэтому всегда сверяйтесь с надписями на своей плате.

Какие выводы можно занимать, а какие — нет

Шпаргалка, которая экономит больше всего нервов при переходе с классических Arduino:

ВыводыСтатусПочему
36 (VP), 39 (VN), 34, 35Только входНет выходного каскада и внутренних подтяжек — идеальны для датчиков и АЦП
32, 33СвободноУниверсальные, и их АЦП работает даже при включённом Wi-Fi
25, 26СвободноБонус: единственные выводы с настоящим аналоговым выходом (ЦАП)
2, 12, 15С осторожностьюУчаствуют в выборе режима загрузки: лишняя нагрузка на них мешает старту; 12 не подтягивать к плюсу
1 (TX0), 3 (RX0)Лучше не заниматьКанал прошивки и монитора порта — подключённый модуль оборвёт загрузку
6–11НельзяОбслуживают флеш-память; на 30-контактных платах их и не выводят

Ещё две тонкости. Во-первых, при включённом Wi-Fi команда analogRead работает только на выводах 32–39 (это канал АЦП номер один) — остальные аналоговые входы на время работы сети отключаются. Во-вторых, встроенный светодиод на DevKit висит на выводе 2 — удобно для первых опытов, но помните, что этот же вывод участвует в загрузке.

Шины по умолчанию

  • I2C — SDA на выводе 21, SCL на выводе 22: сюда подключаются дисплеи и большинство датчиков.
  • SPI — MOSI 23, MISO 19, SCK 18, CS 5: для карт памяти и быстрых дисплеев.
  • UART2 — TX 17, RX 16: свободный последовательный порт для GPS, модемов и других плат.

Как настроить среду для ESP32

Поддержка ESP32 ставится одним пакетом из менеджера плат. В Trema IDE пакет приезжает с российского зеркала за пару минут — без VPN и ручной правки ссылок, которые нужны в классической Arduino IDE. Пошаговая инструкция с экранами — в гайде «ESP32 в Trema IDE». Если плата не появилась в списке портов — поставьте драйвер CP2102 (на части плат — CH340): инструкция по драйверам.

«Connecting......»: что делать, если прошивка зависла

Фирменная особенность ESP32, о которую спотыкаются все новички. Если в консоли бегут точки после слова Connecting — плата не вошла в режим загрузки. Зажмите кнопку BOOT на плате на пару секунд, и прошивка продолжится; на упрямых платах — зажмите BOOT ещё до начала загрузки и отпустите, когда она пошла. Это не поломка, а особенность схемы автозагрузки на дешёвых платах. Другие причины и лечение — в статье «ESP32 не прошивается».

Первая программа: сканер Wi-Fi вместо маячка

Мигать светодиодом ESP32 тоже умеет (он на выводе 2), но первая программа этой платы обязана показать её суперсилу. Сканер находит все сети Wi-Fi вокруг и печатает их в монитор порта:

#include <WiFi.h>                  // встроена в пакет ESP32

void setup() {
  Serial.begin(115200);            // монитор порта: скорость 115200
  WiFi.mode(WIFI_STA);             // режим клиента Wi-Fi
}

void loop() {
  int count = WiFi.scanNetworks(); // ищем сети вокруг
  Serial.print("Сетей найдено: ");
  Serial.println(count);
  for (int i = 0; i < count; i++) {
    Serial.println(WiFi.SSID(i));  // имя каждой сети
  }
  delay(5000);                     // повторяем каждые пять секунд
}

Обратите внимание на скорость 115200 — у ESP32 она стандартна. Если в мониторе порта вместо текста «кракозябры», значит, скорость в мониторе не совпадает с той, что в скетче: разбор этой ошибки. Библиотека WiFi уже входит в пакет ESP32 — ничего докачивать не нужно.

ESP32 или классическая Arduino?

ПараметрArduino UnoESP32
Частота16 МГц, одно ядроДо 240 МГц, два ядра
Оперативная память2 КБ520 КБ
Wi-Fi и BluetoothНетВстроены
Логика выводов5 В3,3 В
АЦП10 бит (0–1023)12 бит (0–4095)
ШИМ6 выводовПочти любой вывод
Уроки и учебникиМоре — стандарт школМного, но меньше
Цена клонаСравнимаСравнима

Простое правило выбора: учиться основам удобнее на Uno или Nano — 5-вольтовая логика прощает больше ошибок, а уроков под них море. Как только в проекте появляется слово «интернет», «телефон» или «умный дом» — берите ESP32. Подробнее о выборе — в статье «Какую плату выбрать».

Что собирают на ESP32

  • Метеостанция с веб-страницей — датчики меряют, плата раздаёт результаты прямо в браузер телефона.
  • Умные розетки и свет — управление реле по Wi-Fi из дома или дачи.
  • Датчики с уведомлениями — протечка, открытая дверь, температура теплицы: плата сама шлёт сообщение.
  • Bluetooth-проекты — пульты, датчики и обмен данными с телефоном без всякой сети.
  • Обычная автоматика — без сети ESP32 тоже отличная плата: быстрая, с большой памятью и почти безлимитным ШИМ.

Чем программировать

ESP32 + Trema IDE: русская среда для этой платы

Классическая Arduino IDE требует вписывать ссылку на пакет ESP32 руками, а из России её серверы работают с перебоями. В Trema IDE пакет ставится из менеджера плат с российского зеркала, среда говорит по-русски, а ошибки сборки объясняются карточками с переходом к строке. Скетчи при этом остаются обычными файлами .ino — совместимость с классикой полная. Чем ещё отличаемся — на странице «Arduino IDE на русском».

  • Пакет ESP32 ставится с российского зеркала за пару минут
  • Параметры платы и портов — по-русски, в один клик
  • Ошибки сборки объясняются русскими карточками
  • Проекты сохраняются в облако — не потеряются

Вопросы

Частые вопросы про ESP32 и Arduino

Не нашли ответа? Спросите нас

Можно ли программировать ESP32 как Arduino?

Да, это самый популярный способ: на ESP32 работает язык и библиотеки Arduino — те же setup() и loop(), digitalWrite и Serial. Достаточно установить пакет поддержки ESP32 в среде разработки; скетчи пишутся так же, как для Uno или Nano.

Чем ESP32 отличается от Arduino Uno?

ESP32 на порядок мощнее: два ядра по 240 МГц против 16 МГц, в сотни раз больше памяти, встроенные Wi-Fi и Bluetooth. Но логика у неё 3,3 В, а не 5 В: пятивольтовые датчики напрямую подключать нельзя. Цена при этом сравнима с клоном Uno.

Почему прошивка ESP32 зависает на Connecting...?

Плата не вошла в режим загрузки. Когда в консоли появляются точки Connecting......, зажмите на плате кнопку BOOT на пару секунд — прошивка продолжится. На части плат помогает зажать BOOT до начала загрузки и отпустить после её старта.

Какой драйвер нужен для ESP32?

На большинстве плат ESP32 стоит USB-чип CP2102 (квадратный, Silicon Labs), на части — CH340. Драйвер ставится один раз с официального сайта производителя чипа, после этого плата появляется в списке портов.

Можно ли подключать к ESP32 пятивольтовые датчики?

Питать датчик от вывода VIN или 5 В можно, а вот подавать 5-вольтовый сигнал на вход ESP32 нельзя — выводы рассчитаны на 3,3 В. Используйте датчики с логикой 3,3 В или делитель напряжения из двух резисторов на линии сигнала.

Работает ли ESP32 без Wi-Fi и интернета?

Конечно: Wi-Fi и Bluetooth — дополнительные возможности, а не обязанность. ESP32 можно использовать как обычную быструю Arduino-плату: датчики, дисплеи, моторы — всё работает без сети, в том числе прошивка.

Плата с Wi-Fi ждёт первую прошивку

Скачайте Trema IDE, поставьте пакет ESP32 с российского зеркала — и через десять минут плата напечатает список сетей вокруг. Дома — бесплатно навсегда.