ESP32 — это микроконтроллер китайской компании Espressif, в котором на одном кристалле стоят процессор, Wi-Fi и Bluetooth. Проще говоря, это маленький компьютер без экрана и операционной системы: он выполняет одну вашу программу, читает датчики, управляет реле и сам выходит в интернет. Программируют его в Arduino IDE на C++ или на MicroPython.
Ниже разберём, что умеет чип, чем отличаются версии S3, C3 и C6, какую плату взять первой и как за 15 минут залить на неё рабочую программу. Если с Arduino вы ещё не знакомы, сначала пригодится разбор программирования Arduino с нуля: синтаксис скетчей для ESP32 тот же.
Что такое ESP32 простыми словами

Обычный Arduino Uno умеет мигать светодиодом и читать кнопку, но в сеть сам не выходит: нужен отдельный модуль. ESP32 сразу задумывали как «мозг» для устройств интернета вещей. Радио встроено в чип, поэтому датчик температуры на нём отправляет данные на телефон без лишних плат.
Ключевые параметры классического ESP32 по даташиту Espressif версии 5.3:
| Параметр | Значение |
|---|---|
| Процессор | Xtensa LX6, 32 бита, одно или два ядра до 240 МГц |
| Память | 520 КБ SRAM и 448 КБ ROM на кристалле, флеш-память внешняя |
| Wi-Fi | 802.11 b/g/n, 2,4 ГГц, до 150 Мбит/с |
| Bluetooth | Bluetooth v4.2 BR/EDR и Bluetooth LE |
| Выводы | 34 GPIO, из них 6 только на вход |
| Аналоговые входы | 12-битный АЦП, до 18 каналов |
| Прочее | два 8-битных ЦАП, 10 сенсорных входов, 3 UART, 4 SPI, 2 I2C |
| Глубокий сон | около 10 мкА |
Два ядра делят работу между собой: одно обычно занято сетевым стеком, второе остаётся под вашу программу, поэтому Wi-Fi не мешает опрашивать датчики.
Что на ESP32 собирают чаще всего:
- умный дом: реле для света и розеток, датчики протечки, термостаты;
- метеостанции с графиками в браузере;
- Bluetooth-устройства: пульты, трекеры, геймпады;
- устройства на батарейке, которые просыпаются раз в час, отправляют показания и снова засыпают.
Такие устройства и прошивку для них делает IoT-разработчик, и ESP32 у него один из самых частых рабочих чипов.
Всё это и есть интернет вещей в домашнем масштабе. На промышленном уровне те же чипы стоят в серийной технике: по описанию производителя, ESP32 работает при температуре от −40 до +125 °C.
Виды ESP32: чем отличаются S2, S3, C3, C6, H2 и P4
Слово ESP32 давно стало названием целого семейства. Буква после дефиса говорит о назначении чипа, и путать их неприятно: код с Bluetooth Classic не заработает на чипе, где Bluetooth Classic нет. Сводка по страницам продуктов Espressif:
| Чип | Процессор | Радио | Для чего брать |
|---|---|---|---|
| ESP32 | 2 ядра Xtensa LX6, 240 МГц | Wi-Fi 4, Bluetooth 4.2 и LE | универсальный старт, больше всего примеров и уроков |
| ESP32-S2 | 1 ядро Xtensa, 240 МГц | только Wi-Fi | USB-устройства, где Bluetooth не нужен |
| ESP32-S3 | 2 ядра Xtensa LX7, 240 МГц | Wi-Fi 4, Bluetooth 5 (LE) | нейросети и обработка звука прямо на плате |
| ESP32-C3 | 1 ядро RISC-V, 160 МГц | Wi-Fi 4, Bluetooth 5 (LE) | недорогие простые датчики и реле |
| ESP32-C6 | 1 ядро RISC-V, 160 МГц | Wi-Fi 6, Bluetooth 5 (LE), Zigbee и Thread | умный дом на Zigbee и Thread |
| ESP32-H2 | 1 ядро RISC-V | без Wi-Fi: Bluetooth 5 (LE), Zigbee и Thread | экономичные датчики в Zigbee-сети |
| ESP32-P4 | 2 ядра RISC-V, 400 МГц | в характеристиках радио нет | экраны и камеры с разрешением до 1080p |
У S3 есть векторные инструкции для ускорения нейросетей и обработки сигналов. У C3 при скромной частоте 22 вывода и 400 КБ памяти: для реле или датчика этого с запасом.
Новичку стоит взять классический ESP32 или ESP32-S3. Классический ESP32 вышел первым, поэтому готовых примеров и ответов на форумах под него больше всего, а S3 закрывает задачи посложнее.
Канал основателя Checkroi Вани Буявца3 800 человек читают мой Телеграм-канал про нейросетиСобрал промпты для Claude Code и ChatGPT, разборы ИИ-инструментов и лайфхаки по продвижению бизнеса в одном местеПрисоединитьсяКлассический ESP32 не устарел. В даташите 5.3 статус «не рекомендуется для новых разработок» стоит только у старых ревизий чипа, а актуальная ревизия V3 (например, ESP32-D0WD-V3) выпускается.
Чип, модуль и плата: что покупать
Голый чип ESP32 руками почти никто не паяет. Продают его в трёх видах, и в магазине их легко перепутать:
- Чип: сам кристалл в корпусе 5×5 или 6×6 мм. Нужен тем, кто разводит свою печатную плату, этим занимается инженер-электроник.
- Модуль: чип вместе с флеш-памятью, кварцем и антенной под металлическим экраном, например ESP32-WROOM-32E. Готов к пайке на свою плату, но USB у него нет.
- Плата для разработки: модуль на плате с разъёмом USB, стабилизатором питания и кнопками. Втыкается в макетку, прошивается одним кабелем. Именно её берут для обучения.
Для примера возьмём плату ESP32-DevKitC V4 от самой Espressif. По руководству к DevKitC на ней есть:
- мост USB-UART: через него компьютер видит плату как COM-порт;
- кнопка EN, она перезагружает чип;
- кнопка Boot: если держать её и нажать EN, чип перейдёт в режим загрузки прошивки;
- питание от USB, от вывода 5V или от вывода 3V3, причём только от одного источника за раз.
Платы с модулем WROVER вместо WROOM несут дополнительную память PSRAM. Она нужна для камеры и больших изображений, для первых проектов хватит и WROOM.

Среды и языки программирования
Языков и сред у ESP32 больше, чем у Arduino, и выбирают их по задаче:
| Среда | Язык | Кому подходит |
|---|---|---|
| Arduino IDE с ядром arduino-esp32 | C++ | новичкам и тем, кто уже писал под Arduino; системно среду разбирают курсы по Arduino |
| MicroPython | Python | тем, кто знает Python и хочет пробовать код без компиляции |
| ESP-IDF | C, язык встраиваемых систем | для серийных устройств и полного доступа к возможностям чипа |
| ESPHome | YAML-конфиг | владельцам Home Assistant: датчик настраивается без кода |
На ноябрь 2026 года свежие версии такие: ядро arduino-esp32 3.3.12 от 18 сентября, ESP-IDF v6.1 от 27 августа, MicroPython v1.29.0 от 24 августа.
Arduino IDE для ESP32 работает поверх того же ESP-IDF, поэтому со временем можно перейти на «взрослый» фреймворк, не выбрасывая знания. Многие так и делают: прототип на Arduino, серия на ESP-IDF.
Первая программа в Arduino IDE за пять шагов
Порядок из официальной инструкции Espressif подходит для Arduino IDE 1.x и 2.x:
- Откройте окно настроек Arduino IDE, в английском интерфейсе оно называется Preferences. В поле «Дополнительные ссылки для Менеджера плат» вставьте адрес
https://espressif.github.io/arduino-esp32/package_esp32_index.json. Если там уже есть ссылка на ESP8266, добавьте новую через запятую. - Откройте «Менеджер плат», найдите esp32 by Espressif Systems и нажмите кнопку установки. Пакет весит несколько сотен мегабайт, установка занимает пару минут.
- В списке плат выберите ESP32 Dev Module: он подходит для DevKitC и большинства клонов. Для других чипов есть ESP32S3 Dev Module, ESP32C3 Dev Module и так далее.
- Подключите плату кабелем и выберите её порт.
- Вставьте скетч ниже и нажмите «Загрузить на плату», затем откройте «Монитор порта» на скорости 115200 бод.
Вместо классического мигания светодиодом сразу проверим главное, ради чего берут ESP32: Wi-Fi. Скетч ищет сети вокруг и печатает их с уровнем сигнала.
#include <WiFi.h>
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA); // режим клиента: плата ищет чужие сети
WiFi.disconnect();
delay(100);
Serial.println("Ищу сети Wi-Fi...");
int n = WiFi.scanNetworks();
Serial.printf("Найдено сетей: %d\n", n);
for (int i = 0; i < n; i++) {
Serial.printf("%d. %s, сигнал %d дБм\n", i + 1, WiFi.SSID(i).c_str(), WiFi.RSSI(i));
}
}
void loop() {
}
Мы запустили этот скетч в бесплатном онлайн-симуляторе Wokwi, где у виртуальной платы есть одна тестовая сеть. Вывод в мониторе порта:
Ищу сети Wi-Fi...
Найдено сетей: 1
1. Wokwi-GUEST, сигнал -79 дБм

На настоящей плате в списке окажутся сети ваших соседей. Светодиод в первом скетче мы не трогали сознательно: в ядре arduino-esp32 для универсальной платы ESP32 Dev Module константа LED_BUILTIN не задана, а на клонах светодиод висит на разных выводах.
Ещё одна деталь всплывает при компиляции. Даже этот короткий скетч занимает 877 КБ, то есть 66 % места под программу в стандартной разметке флеш-памяти на 4 МБ. Так весит сетевой стек. Если проект упрётся в память, в меню «Инструменты» меняют пункт Partition Scheme на вариант с бо́льшим разделом под приложение.
Подробный разбор той же цепочки с веб-сервером и кнопкой в браузере есть в инструкции по ESP8266 для начинающих: код для ESP32 отличается в основном именами библиотек.
Как программировать ESP32 на Python
Для ESP32 есть официальная прошивка MicroPython. Это облегчённый Python, который работает прямо на плате: подключаетесь терминалом и пишете команды, а программу кладёте в файл main.py. Порядок по странице загрузки MicroPython:
- Скачайте прошивку ESP32_GENERIC, на ноябрь 2026 года последняя версия v1.29.0.
- Поставьте утилиту прошивки esptool командой
pip install esptool. - Сотрите флеш и запишите прошивку с адреса 0x1000, подставив свой порт.
- Подключитесь к плате терминалом на скорости 115200: появится приглашение
>>>.
esptool.py --port /dev/ttyUSB0 erase_flash
esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash 0x1000 ESP32_GENERIC-20260824-v1.29.0.bin
В Windows вместо /dev/ttyUSB0 будет COM3 или похожее имя, а сама утилита может называться просто esptool. Та же проверка Wi-Fi на Python выглядит короче:
import machine
import network
print("Частота процессора:", machine.freq() // 1_000_000, "МГц")
wlan = network.WLAN(network.STA_IF) # режим клиента
wlan.active(True)
for net in wlan.scan():
print("Сеть:", net[0].decode(), "сигнал", net[3], "дБм")
Вывод в Wokwi на прошивке MicroPython 1.28:
Частота процессора: 160 МГц
Сеть: Wokwi-GUEST сигнал -73 дБм

Обратите внимание на частоту. Процессор умеет 240 МГц, но MicroPython в нашем запуске стартовал на 160 МГц. Поднять частоту можно одной строкой machine.freq(240000000), ценой большего потребления.
MicroPython удобен для экспериментов, но медленнее C++ и съедает часть памяти под интерпретатор. Если Python для вас новый язык, базу дадут курсы по Python: синтаксис на плате тот же.
Распиновка: какие выводы лучше не трогать
На плате 30 или 38 выводов, и новички часто подключают датчик к первому попавшемуся. У ESP32 так не выйдет: часть выводов занята или ведёт себя по-особому. Сводка по справочнику GPIO в документации ESP-IDF:
| Выводы | Особенность | Что делать |
|---|---|---|
| GPIO6–11 | подключены к флеш-памяти модуля | не использовать вообще |
| GPIO34–39 | работают только на вход, без внутренней подтяжки | брать под кнопки и аналоговые датчики, подтяжку ставить резистором |
| GPIO0, 2, 5, 12, 15 | strapping-выводы: их уровень при включении задаёт режим загрузки | не вешать на них то, что тянет уровень при старте |
| Каналы ADC2 | этот блок АЦП делит ресурсы с Wi-Fi | при включённом Wi-Fi читать аналог с выводов ADC1 (GPIO32–39) |
Отдельно про напряжение. Логика у ESP32 3,3 В: по электрическим характеристикам чипа высокий уровень на входе не должен превышать напряжение питания больше чем на 0,3 В. Датчик, который отдаёт 5 В, подключают через делитель или преобразователь уровней.
Сравнение с ESP8266, Arduino Uno и Raspberry Pi

Эти четыре платы постоянно сравнивают, хотя задачи у них разные. Коротко:
| Плата | Что внутри | Сеть | Когда брать |
|---|---|---|---|
| Arduino Uno R3 | 8-битный ATmega328P, 16 МГц, 2 КБ ОЗУ | нет | первое знакомство с электроникой, много наборов и уроков |
| ESP8266 | 32 бита, 1 ядро до 160 МГц | только Wi-Fi | простые сетевые проекты на старых платах |
| ESP32 | 32 бита, 2 ядра до 240 МГц, 520 КБ SRAM | Wi-Fi и Bluetooth | почти любой проект интернета вещей |
| Raspberry Pi | одноплатный компьютер с Linux | в большинстве моделей Wi-Fi, Bluetooth и Ethernet | видео, базы данных, сервер умного дома |
Главная граница проходит между микроконтроллером и компьютером. ESP32 включается за доли секунды, работает от батарейки месяцами и не боится выдёргивания питания. Raspberry Pi запускает полноценную операционную систему, зато ест больше энергии и требует аккуратного выключения.
Частая связка в умном доме: Raspberry Pi с Home Assistant в роли центра, а по комнатам десяток датчиков на ESP32.
Частые ошибки и что с ними делать

Failed to connect to ESP32: Timed out waiting for packet header
Компиляция прошла, а загрузка падает. Чип не перешёл в режим загрузчика. Разбор ошибок в документации arduino-esp32 советует:
- зажать кнопку Boot на плате на время загрузки;
- заменить кабель: многие кабели от зарядок передают только питание.
Ещё одну частую причину называет документация esptool: порт занят открытым окном терминала. Закройте монитор порта и другие программы, которые к нему подключены.
Плата не появляется в списке портов
Сначала кабель, потом драйвер моста USB-UART. Его название напечатано на маленькой микросхеме у разъёма, на недорогих платах чаще всего встречаются CP2102 и CH340. Драйвер для CH340 есть на сайте производителя WCH.
Плата перезагружается, как только включается Wi-Fi
Причина почти всегда в питании: радио в момент передачи берёт заметно больший ток. Документация esptool предупреждает, что блока питания может хватать для прошивки и не хватать для работы программы.
Решение: подключите плату напрямую к порту компьютера без хаба, возьмите короткий кабель, а при внешнем питании 3,3 В поставьте источник с запасом по току и конденсатор на линию питания.
analogRead выдаёт мусор или ноль
Датчик стоит на выводе блока ADC2, а Wi-Fi уже работает: по документации АЦП, ADC2 занят и Wi-Fi-драйвером. Перенесите сигнал на GPIO32–39. Заодно помните, что АЦП у ESP32 неточен у краёв диапазона, поэтому для точных измерений нужна калибровка.
После подключения датчика плата перестала загружаться
Проверьте, не занят ли strapping-вывод. Например, GPIO12, подтянутый к высокому уровню при старте, по описанию strapping-выводов меняет напряжение питания флеш-памяти, и модуль с 3,3-вольтовой флешкой не запустится. Перекиньте провод на другой вывод из таблицы выше.
Где освоить программирование микроконтроллеров системно
Поиск сетей и первая программа на MicroPython закрывают вопрос «что это за плата». Дальше начинаются датчики, протокол MQTT, обновление прошивки по воздуху, экономия батареи и своя печатная плата. Из хобби это вырастает в профессию: о ней подробно в материале о программисте микроконтроллеров и в плане как стать IoT-разработчиком.
Курсы по Arduino ниже подходят и для ESP32: среда, язык и библиотеки общие. Шире смотрите раздел программирование микроконтроллеров, курсы по интернету вещей и курсы робототехники.
| Курс | Школа | Стоимость со скидкой | В рассрочку | Длительность | Обзор курса от Checkroi |
|---|---|---|---|---|---|
| Профессия Инженер умного дома Перейти на сайт курса | 173 055 ₽ | 5082 ₽/мес. | 15 месяцев | Обзор курса | |
| Робототехника Перейти на сайт курса | 19 900 ₽ | 1658 ₽/мес. | 3 месяца | Обзор курса | |
| Преподавание робототехники в системе общего и дополнительного образования Перейти на сайт курса | 7000 ₽ | 1750 ₽/мес. | 5 недель | Обзор курса | |
| C++ для робототехников Перейти на сайт курса | 30 294 ₽ | - | 1 месяц | Обзор курса | |
| Электроника и схемотехника Перейти на сайт курса | 55 000 ₽ | - | 1 месяц | Обзор курса |
Больше программ — в полном каталоге курсов по Arduino




