Проектов: 55
Проекты на ESP32
ESP32 — двухъядерный микроконтроллер Espressif со встроенными Wi-Fi и Bluetooth. Он работает на частоте до 240 MHz, у него гораздо больше памяти и пинов, чем у Arduino Uno, и при этом он недорогой. Программируется в Arduino IDE после установки пакета плат ESP32, так что почти всё, что ты знаешь об Arduino, пригодится с небольшими изменениями.
Эти проекты на ESP32 для всех, кто хочет управлять устройствами с телефона, получать данные из интернета или собрать систему умного дома. К каждому IoT-проекту — от веб-сервера и уведомлений в Telegram до метеостанции, часов с NTP и записи данных с датчиков — есть схема подключения, код с комментариями и список деталей.
С чего начать: нужны только плата ESP32 DevKit, USB-кабель с передачей данных и макетная плата. Познакомься с платой на проектах со светодиодом и подключением к Wi-Fi, а затем переходи к веб-серверам и датчикам. Помни, что пины ESP32 работают от 3,3 V: при подключении модулей с выходом 5 V используй делитель напряжения или преобразователь уровней.
Первые 10 проектов для новичков
Иди по порядку: каждый проект добавляет один новый навык к предыдущим.
- 1
Мигающий светодиод на ESP32Учит базовой работе с выходами GPIO на ESP32. Эффект мигания получается включением и выключением светодиода с цифрового пина. Это ESP32-версия классического проекта мигания на Arduino UNO; базовые команды мигания в среде Arduino те же, но расположение пинов ESP32 и уровни GPIO 3,3 V отличаются от Arduino UNO.Новичок - 2
Управление светодиодом кнопкой на ESP32 (удержание)Светодиод горит, когда кнопка нажата, и гаснет, когда её отпускают. Показывает, как используются цифровой входной пин ESP32 и встроенный подтягивающий резистор. Режим INPUT_PULLUP избавляет от внешнего резистора.Новичок - 3
Управление светодиодом кнопкой на ESP32 (переключение)При каждом нажатии кнопки состояние светодиода меняется: если горел — гаснет, если не горел — загорается. Классический шаблон переключения. Антидребезг убирает механический шум кнопки, чтобы одно нажатие давало одно переключение.Новичок - 4
Мигание встроенным светодиодом ESP32Мигание встроенным синим светодиодом на ESP32 DevKit V1. Внешние компоненты не нужны! Первый проект, который стоит попробовать после покупки ESP32. Встроенный светодиод подключён к GPIO 2.Новичок - 5
Светофор на ESP32Реалистичная симуляция светофора на 3 светодиодах — красном, жёлтом и зелёном. Тайминги близки к реальной логике движения: красный долго, жёлтый коротко, зелёный долго. Классический пример последовательного управления GPIO.Новичок - 6
Светодиоды Knight Rider на ESP326 светодиодов по очереди бегают слева направо и справа налево (в стиле Knight Rider). Базовый пример использования циклов for и массивов. Учит логике смены направления.Новичок - 7
Полицейский стробоскоп на ESP32Имитация стробоскопа полицейской машины быстрыми вспышками групп красных и синих светодиодов. По 2 светодиода в каждой группе делают эффект эффектнее. Классический пример быстрого переключения и группового управления.Новичок - 8
Плавное затухание светодиода с PWM на ESP32Плавное изменение яркости светодиода от 0 до максимума и от максимума до 0. PWM управляется через analogWrite(), как в Arduino, — тот же синтаксис без проблем работает в ESP32 Arduino Core 3.0+. Достаточно определения пина, pinMode и analogWrite.Новичок - 9
Управление RGB-светодиодом на ESP32Бесконечное число цветов одним RGB-светодиодом вместо 3 отдельных. Как в Arduino, радужный переход получается заданием значений R/G/B через analogWrite(). Теория цвета (например, красный + зелёный = жёлтый) видна на практике.Новичок - 10
Ночник на LDR с ESP32Ночник, в котором светодиод сам загорается в темноте и гаснет на свету. Используется пин D0 (цифровой выход) модуля датчика LDR — порог темноты задаётся маленьким потенциометром на модуле, а выход HIGH/LOW формирует сам модуль. ESP32 просто читает этот сигнал через digitalRead(), код очень простой.Новичок
Проекты по сложности
НовичокПроектов: 14

Мигающий светодиод на ESP32
Учит базовой работе с выходами GPIO на ESP32. Эффект мигания получается включением и выключением светодиода с цифрового пина. Это ESP32-версия классического проекта мигания на Arduino UNO; базовые команды мигания в среде Arduino те же, но расположение пинов ESP32 и уровни GPIO 3,3 V отличаются от Arduino UNO.

Управление светодиодом кнопкой на ESP32 (удержание)
Светодиод горит, когда кнопка нажата, и гаснет, когда её отпускают. Показывает, как используются цифровой входной пин ESP32 и встроенный подтягивающий резистор. Режим INPUT_PULLUP избавляет от внешнего резистора.

Управление светодиодом кнопкой на ESP32 (переключение)
При каждом нажатии кнопки состояние светодиода меняется: если горел — гаснет, если не горел — загорается. Классический шаблон переключения. Антидребезг убирает механический шум кнопки, чтобы одно нажатие давало одно переключение.

Мигание встроенным светодиодом ESP32
Мигание встроенным синим светодиодом на ESP32 DevKit V1. Внешние компоненты не нужны! Первый проект, который стоит попробовать после покупки ESP32. Встроенный светодиод подключён к GPIO 2.

Светофор на ESP32
Реалистичная симуляция светофора на 3 светодиодах — красном, жёлтом и зелёном. Тайминги близки к реальной логике движения: красный долго, жёлтый коротко, зелёный долго. Классический пример последовательного управления GPIO.

Светодиоды Knight Rider на ESP32
6 светодиодов по очереди бегают слева направо и справа налево (в стиле Knight Rider). Базовый пример использования циклов for и массивов. Учит логике смены направления.

Полицейский стробоскоп на ESP32
Имитация стробоскопа полицейской машины быстрыми вспышками групп красных и синих светодиодов. По 2 светодиода в каждой группе делают эффект эффектнее. Классический пример быстрого переключения и группового управления.

Плавное затухание светодиода с PWM на ESP32
Плавное изменение яркости светодиода от 0 до максимума и от максимума до 0. PWM управляется через analogWrite(), как в Arduino, — тот же синтаксис без проблем работает в ESP32 Arduino Core 3.0+. Достаточно определения пина, pinMode и analogWrite.

Управление RGB-светодиодом на ESP32
Бесконечное число цветов одним RGB-светодиодом вместо 3 отдельных. Как в Arduino, радужный переход получается заданием значений R/G/B через analogWrite(). Теория цвета (например, красный + зелёный = жёлтый) видна на практике.

Ночник на LDR с ESP32
Ночник, в котором светодиод сам загорается в темноте и гаснет на свету. Используется пин D0 (цифровой выход) модуля датчика LDR — порог темноты задаётся маленьким потенциометром на модуле, а выход HIGH/LOW формирует сам модуль. ESP32 просто читает этот сигнал через digitalRead(), код очень простой.

Измерение освещённости модулем LDR на ESP32
Наблюдение в мониторе порта в реальном времени за сырым значением ADC модуля LDR и относительным процентом освещённости, вычисленным по опорным значениям темноты и света. Этот процент — не измерение в люксах. Учит логике калибровки модуля. Идеально выполнить его перед проектом 10, потому что он нужен для определения порога.

Мелодия на зуммере с ESP32
Воспроизведение простой мелодии (Twinkle Twinkle Little Star) на пассивном зуммере. Ноты играются функциями tone() и noTone(), как в Arduino, — ESP32 работает с тем же синтаксисом в Arduino Core 3.0+. Нужен пассивный зуммер (активный мелодию не сыграет).

Таймер Помодоро на ESP32 (кольцо NeoPixel + кнопка + зуммер)
Светящийся настольный таймер, который не даёт отвлекаться на телефон во время учёбы! Кольцо NeoPixel из 24 светодиодов показывает оставшееся время, как циферблат: работа — красный, короткие перерывы — зелёный, а длинный перерыв после каждых четырёх сессий — синий. В последние 5 секунд кольцо мигает, а пассивный зуммер тикает, затем радуга отмечает завершённую фазу. Одна кнопка запускает, ставит на паузу и сбрасывает, всё на ESP32 без единого delay().

IoT-выключатель лампы на ESP32 (реле)
Включай и выключай лампу с телефона откуда угодно. Этот проект — пошаговое руководство к IoT-шаблону «Лампа на реле» в приложении, собранному на ESP32 и модуле реле и сначала опробованному со светодиодом. Открой Мастерская › Устройства › Добавить устройство и выбери «Лампа на реле»; Ohmi подготовит код с твоим собственным ключом устройства. Код на этой странице — пример: ключ и данные Wi-Fi в нём заглушки.
СреднийПроектов: 24

Регулировка яркости светодиода потенциометром на ESP32 (аналог → PWM)
В этом проекте яркость светодиода плавно регулируется потенциометром. Пин АЦП ESP32 читает напряжение 0–3,3V с потенциометра, затем это значение превращается в сигнал PWM (широтно-импульсная модуляция) и подаётся на светодиод. В результате при повороте потенциометра светодиод постепенно становится ярче или тусклее. В Arduino Core 3.0+ можно сразу использовать analogWrite(); на ESP32-S2/S3 разрешение АЦП фиксировано — 12 бит.

Ультразвуковой датчик расстояния HC-SR04 на ESP32
Ультразвуковой датчик HC-SR04 вычисляет расстояние по времени, за которое испущенная им звуковая волна отражается от предмета и возвращается (Time of Flight). В этом проекте ESP32 подаёт импульс 10 микросекунд на пин TRIG датчика, а длительность эха читает с пина ECHO через pulseIn(). Вычисленное расстояние в сантиметрах выводится на I2C LCD 16x2. HC-SR04 работает от 5V, поэтому на пине ECHO нужен делитель напряжения.

Температура и влажность с DHT22 на ESP32 (с LCD-дисплеем)
Этот проект измеряет температуру и влажность воздуха датчиком DHT22 и в реальном времени показывает данные на I2C LCD 16x2. Данные читаются с датчика по однопроводному протоколу через библиотеку Adafruit DHT. Проект служит основой для IoT-метеостанций, умного дома или систем мониторинга среды в теплицах. Связь с DHT22 идёт через пин GPIO 4 у ESP32.

Сервопривод на ESP32 (управление потенциометром)
В этом проекте сервопривод SG90 управляется потенциометром. Угол сервопривода задаётся сопоставлением аналогового значения потенциометра с диапазоном 0–180 градусов. Библиотека ESP32Servo формирует сигналы сервопривода на подходящих выходных пинах GPIO у ESP32; этот проект использует GPIO 18. Это базовый способ управления для роборук, подвесов камер и механизмов автоматических дверей.

I2C LCD-дисплей (16x2) на ESP32
В этом проекте символьный LCD-экран 16x2 подключается к ESP32 по протоколу I2C и выводит текст. Благодаря I2C экраном можно управлять всего двумя пинами данных (SDA и SCL), не тратя 6+ пинов, как при классическом параллельном подключении. Код печатает постоянное сообщение в первой строке и счётчик, растущий каждую секунду, во второй. Кроме того, при запуске работает сканер I2C, который выводит адрес дисплея в монитор порта.

Цифровые часы на ESP32 и DS1307 RTC (I2C + LCD)
В этом проекте время и дата из модуля часов реального времени (RTC) DS1307 выводятся на I2C LCD-экран 16x2. DS1307 — RTC с резервной батарейкой, который хранит время даже при выключенной ESP32. Оба модуля делят одну шину I2C (SDA/SCL), и ты узнаёшь, как управлять несколькими устройствами всего по двум сигнальным проводам. Проект даёт практические знания о протоколе I2C, работе модуля RTC и динамическом выводе данных на LCD-экран.

Автоматическое освещение с PIR-датчиком движения на ESP32
В этом проекте PIR-датчик движения HC-SR501 замечает, что кто-то вошёл в комнату, и автоматически включает светодиод. Время свечения отслеживается через millis(); каждое показание HIGH обновляет время последнего движения, и светодиод гаснет не раньше чем через 10 секунд после последнего HIGH. Текущий код ещё и ждёт 50 ms на каждом цикле через delay(50), поэтому цикл не полностью неблокирующий. Подходит для освещения лестниц, шкафов и ванной.

Сигнализация газа и дыма MQ-2 на ESP32
В этом проекте модуль датчика газа MQ-2 обнаруживает горючие газы (сжиженный газ, метан, пропан) и дым, а при обнаружении пассивный зуммер играет тревогу, похожую на сирену. Цифровой пороговый выход датчика (DO) подключён к GPIO 4 у ESP32; когда газ или дым превышают порог, DO переходит в LOW, и срабатывает тревога. Чувствительность настраивается потенциометром модуля. Пассивный зуммер управляется через tone() и даёт сирену на двух частотах.

Считыватель карт RFID RC522 на ESP32 (с LCD)
В этом проекте модуль RFID RC522 на базе MFRC522 подключается к ESP32 по SPI и читает UID карты или метки. Это основа для дверных замков, клубных систем и контроля доступа. Прочитанный UID выводится на LCD-экран; эта версия не сравнивает его со списком разрешённых карт. ВНИМАНИЕ: RC522 работает только от 3.3V; подача 5V сожжёт модуль!

Пульт ДУ с ИК-приёмником на ESP32 (с экраном LCD)
В этом проекте модуль ИК-приёмника TSOP4838 ловит сигналы пульта от телевизора, кондиционера или любого другого инфракрасного пульта с помощью ESP32. С библиотекой IRremote v4 расшифрованные ненулевые сырые коды выводятся на I2C LCD-экран. Этот пример помогает узнать коды пульта; включения, выключения или регулировки яркости светодиода с пульта в нём нет. Отличная отправная точка, чтобы превратить старые пульты в управление умным домом.

4-разрядный семисегментный индикатор TM1637 на ESP32
Модуль 4-разрядного семисегментного индикатора с драйвером TM1637 управляется с ESP32. Всего через 2 пина GPIO (CLK и DIO) запускается счётчик от 0 до 9999, меняется яркость и показывается двоеточие (:) в формате часов. Благодаря библиотеке TM1637Display выводить числа, шестнадцатеричные значения, сегменты и строки очень просто.

Управление лентой WS2812B NeoPixel на ESP32
Адресуемые светодиоды WS2812B (NeoPixel) — умные RGB-светодиоды, которыми управляют цепочкой через один пин данных. В этом проекте лента WS2812B из 8 светодиодов управляется библиотекой Adafruit_NeoPixel и показывает плавную радужную анимацию. Логика 3,3V у ESP32 работает с большинством WS2812B, но на случай нестабильности показано решение с последовательным резистором 470Ω и конденсатором 1000µF. Анимация получается сдвигом значения оттенка.

Глаза робота на ESP32 (OLED-дисплей + сенсорный датчик TTP223)
Настольный робот с чувствами! ESP32 рисует на OLED на 0,96 дюйма два глаза, которые сами осматриваются и моргают. Коснись сенсорного датчика TTP223, и робот обрадуется; удержи — глаза превратятся в сердечки; тыкай слишком часто — он рассердится; не обращай внимания 20 секунд — он уснёт. Пассивный зуммер даёт каждому настроению свой звук: конечный автомат, анимация фигур и неблокирующий звук в одном проекте.

T-Rex Run на ESP32: игра с динозавром (OLED-дисплей + кнопка + зуммер)
Динозавр из Chrome, который появляется, когда нет интернета, теперь у тебя на столе! ESP32 рисует бегущего динозавра на OLED на 0,96 дюйма; нажимай кнопку, чтобы прыгать, пока кактусы всё ускоряются. Очки и рекорд показаны в верхней строке, а рекорд сохраняется во flash-памяти ESP32 через Preferences, поэтому переживает отключение питания. Это версия проекта OLED T-Rex Run для ESP32 с пассивным зуммером для звуков прыжка, каждых 100 очков и столкновения.

Сигнализация землетрясения на ESP32 (MPU-6050 + OLED-дисплей + зуммер)
Экран замечает, когда стол трясётся! ESP32 считывает вибрацию с акселерометра MPU-6050 и рисует на OLED на 0,96 дюйма живую бегущую сейсмограмму. При превышении порога пассивный зуммер включает сирену, а красный светодиод мигает; одна кнопка глушит и сбрасывает тревогу. Тревога требует трёх измерений подряд выше порога: всплеск в одно измерение отбрасывается, но долгая вибрация от одиночного удара всё же может её вызвать. Это учебный проект, а не система оповещения.

Табло курсов золота и валют на ESP32 (Wi-Fi + OLED-дисплей + кнопка)
Почём сейчас золото в Турции? Не нужно заглядывать в телефон! ESP32 подключается к Wi-Fi, берёт цены на грамм золота, доллар США и евро в турецких лирах из бесплатного JSON-источника без ключа и показывает их на OLED на 0,96 дюйма. Цены обновляются каждые 60 секунд; кнопка листает страницы, а долгое нажатие сразу обновляет данные. Если интернет пропадёт, последние значения остаются на экране с пометкой OFFLINE.

Часы времени намаза на ESP32 (Wi-Fi + OLED-дисплей + зуммер)
Сколько осталось до магриба? ESP32 берёт время из интернета, получает время намазов для твоего города по методу Diyanet и показывает следующий намаз с крупным обратным отсчётом на OLED на 0,96 дюйма. Когда время наступает, пассивный зуммер играет короткий мягкий сигнал. Нажми кнопку, чтобы увидеть список всех времён на сегодня, или удержи её, чтобы сразу проверить оповещение в демо-режиме.

Гонка кликов для двух игроков на ESP32 (OLED-дисплей + 2 кнопки + зуммер)
Вызови друга на 10-секундную гонку кликов! Оба игрока нажимают свою кнопку, чтобы приготовиться, а после отсчёта 3-2-1 каждый жмёт так быстро, как может. ESP32 показывает на OLED на 0,96 дюйма две полоски, которые мчатся бок о бок, а также оставшееся время, очки обоих и лидера в реальном времени. Когда время выходит, ты видишь победителя и число кликов в секунду, а рекорд сохраняется через Preferences. Пассивный зуммер даёт каждому игроку свой звук клика, свисток и фанфары.

Игровой автомат на ESP32 (OLED-дисплей + кнопка + зуммер)
Дёрни рычаг и смотри, как крутятся барабаны! Этот проект на ESP32 крутит на OLED на 0,96 дюйма три барабана со значками вишни, колокольчика, BAR и 7 с реалистичным замедлением, и всё это одной кнопкой. Кредиты полностью виртуальные, никаких настоящих денег: цель — изучить вероятность и случайные числа, на которых держатся азартные игры. Если первые два барабана совпали, третий крутится дольше для интриги, 7-7-7 играет мелодию JACKPOT, а Preferences сохраняет кредиты.

Мини-музыкальная шкатулка на ESP32 (OLED-дисплей + 3 кнопки + зуммер)
Три кнопки, зуммер и пять классических мелодий: карманная музыкальная шкатулка на ESP32! OLED на 0,96 дюйма показывает плейлист, а кнопки «назад», «пуск/пауза» и «вперёд» переключают «Оду к радости», «К Элизе», Jingle Bells, Happy Birthday и Twinkle Twinkle. Пока звучит мелодия, появляется название ноты, а её клавиша загорается на клавиатуре пианино в две октавы рядом с прошедшим временем и полосой прогресса. Все мелодии в общественном достоянии и играют на пассивном зуммере.

IoT-комнатная станция на ESP32 (реле + DHT22)
Включай лампу с телефона и следи за температурой и влажностью в комнате вживую откуда угодно. Этот проект — пошаговое руководство к IoT-шаблону «Комнатная станция» в приложении, собранному на ESP32, модуле реле и DHT22. Открой Мастерская › Устройства › Добавить устройство и выбери «Комнатная станция»; Ohmi подготовит код с твоим собственным ключом устройства. Код на этой странице — пример: ключ и данные Wi-Fi в нём заглушки.

IoT RGB-лента на ESP32 (WS2812B)
Управляй светом в комнате с телефона: выбирай цвет, задавай яркость, включай эффект радуги или дыхания. Этот проект — пошаговое руководство к IoT-шаблону «RGB-лента» в приложении, собранному на ESP32 и ленте WS2812B из 30 светодиодов с тремя проводами. Открой Мастерская › Устройства › Добавить устройство и выбери «RGB-лента»; Ohmi подготовит код с твоим собственным ключом устройства. Код на этой странице — пример: ключ и данные Wi-Fi в нём заглушки.

IoT-полив растений на ESP32 (датчик почвы + насос)
Пусть насос включается сам, когда земля в горшке пересыхает, а влажность почвы видна на телефоне вживую. Этот проект — пошаговое руководство к IoT-шаблону «Влажность почвы + насос» в приложении, собранному на ESP32, датчике влажности почвы, реле и мини-помпе для воды. Открой Мастерская › Устройства › Добавить устройство; Ohmi подготовит код с твоим собственным ключом устройства. Код на этой странице — пример: ключ и данные Wi-Fi в нём заглушки.

IoT-открыватель штор на ESP32 (сервопривод SG90)
Нажми + или − на телефоне, и сервопривод в тот же миг повернётся на этот угол: управляй моделью шторы, тягой жалюзи или крышкой откуда угодно. Этот проект — пошаговое руководство к IoT-шаблону «Штора на сервоприводе» в приложении, собранному на ESP32 и сервоприводе SG90 всего с 3 проводами. Открой Мастерская › Устройства › Добавить устройство; Ohmi подготовит код с твоим собственным ключом устройства. Код на этой странице — пример: ключ и данные Wi-Fi в нём заглушки.
ПродвинутыйПроектов: 17

Подключение ESP32 к Wi-Fi в режиме STA (с экраном LCD)
В этом проекте ESP32 надёжно и устойчиво к сбоям подключается к домашней сети Wi-Fi в режиме станции (STA). SSID и пароль хранятся в отдельном файле secrets.h, чтобы не утекли в Git; настроено автоматическое переподключение, а уровень сигнала RSSI и IP-адрес выводятся на I2C LCD-экран. Встроенный светодиод служит индикатором состояния. Это менеджер подключения уровня реальных устройств.

Точное время из интернета через NTP на ESP32
ESP32 подключается к Wi-Fi и получает точное время с точностью до миллисекунд от серверов NTP (Network Time Protocol). Благодаря функции configTzTime() автоматически применяется часовой пояс Турции (TRT, UTC+3), а в странах с летним временем переходы обрабатываются автоматически по строке POSIX TZ. Время выводится в монитор порта и на необязательный I2C LCD. configTzTime() запускает службу SNTP, которая периодически пересинхронизирует часы.

Асинхронный веб-сервер на ESP32 (с выводом IP на LCD)
В этом проекте ESP32 превращается в асинхронный веб-сервер, которым можно управлять с телефона или компьютера в той же сети Wi-Fi. Благодаря библиотеке ESPAsyncWebServer сервер может обрабатывать несколько запросов одновременно (в отличие от классического WebServer.h, который блокируется на одном запросе). Открыв IP-адрес ESP32 в браузере, ты нажимаешь кнопки ON/OFF (маршруты /on и /off) и включаешь и выключаешь светодиод на GPIO 5.

Счётчик на WebSocket с ESP32 (2 кнопки + LCD + веб в реальном времени)
В этом проекте две кнопки, подключённые к ESP32 (GPIO 5 увеличивает, GPIO 4 уменьшает), меняют счётчик. Значение сразу обновляется и на I2C LCD 16x2, и — через поддержку WebSocket в ESPAsyncWebServer — во всех подключённых браузерах без перезагрузки страницы. Вместо опроса по HTTP используется одно постоянное соединение, и ESP32 отправляет новое значение всем через ws.textAll().

mDNS на ESP32: доступ к устройству через bluegrays-esp.local (с экраном LCD)
В этом проекте к ESP32 добавляется служба mDNS (Multicast DNS), и к устройству можно обращаться по понятному имени вроде bluegrays-esp.local вместо IP-адреса. Даже если IP, выданный DHCP, меняется, устройство всегда доступно по одному имени. На устройстве также работает маленький веб-сервер, через который по адресу http://bluegrays-esp.local/ из браузера отправляются команды светодиоду. I2C LCD показывает имя хоста, IP-адрес и состояние светодиода.

Обновление ESP32 по воздуху (OTA): беспроводная установка прошивки (с экраном LCD)
В этом проекте ты узнаешь, как загружать новую прошивку в ESP32 по Wi-Fi без USB-кабеля. С библиотекой ArduinoOTA ESP32 становится видна в сети и автоматически появляется как bluegrays-ota на вкладке «Сетевой порт» в Arduino IDE. Первая загрузка выполняется по USB, а все следующие обновления — без проводов: это важно для устройств в эксплуатации. I2C LCD показывает состояние Wi-Fi, IP-адрес, имя хоста, процент загрузки OTA и сообщения об ошибках.

ESP32 HTTPClient + API погоды (с экраном LCD)
В этом проекте ESP32 через HTTPClient.h делает вызов REST API к сервису погоды (wttr.in) через интернет. Полученный ответ в JSON разбирается с помощью ArduinoJson v7, а город, температура, влажность, погода и ветер выводятся на I2C LCD на турецком и английском. wttr.in бесплатен и не требует ключа API — достаточно указать любое название города, чтобы получить текущую погоду. Данные автоматически обновляются каждые 30 минут.

ESP32 HTTPClient + API погоды (с OLED-дисплеем SSD1306)
В этом проекте ESP32 через HTTPClient.h делает вызов REST API к сервису погоды (wttr.in). В отличие от прошлой версии с I2C LCD, здесь используется OLED SSD1306 (128×64), который позволяет крупные шрифты, векторные значки и богатую картинку на одном экране. Семь векторных значков погоды (солнечно, переменная облачность, облачно, дождь, снег, гроза, туман) рисуются во время работы (растровые файлы не нужны). Температура выводится крупными цифрами.

Глубокий сон ESP32: экономия батареи (OLED + счётчик в RTC RAM)
Режим глубокого сна (Deep Sleep) у ESP32 снижает потребление до ~10 µA, выключая процессор и большую часть периферии, — это важно для IoT-устройств на батарейках. В этом проекте используются три источника пробуждения: таймер (15 секунд), внешний пин (EXT0 — кнопка GPIO 33) и касание (T0/GPIO 4). Переменные с RTC_DATA_ATTR сохраняются во время глубокого сна — счётчики загрузок, пробуждений по таймеру и по кнопке ведутся непрерывно.

Счётчик ракаатов намаза на ESP32 (HC-SR04 + SSD1306 OLED + 2 кнопки)
Бывает, что во время намаза забываешь, сколько ракаатов уже совершено? Этот проект — счётчик ракаатов, который ставится рядом с молитвенным ковриком и считает земные поклоны, когда к нему приближается рука. Ультразвуковой датчик HC-SR04 замечает приближение руки, OLED-дисплей SSD1306 показывает число ракаатов, а двумя кнопками можно выбрать 2, 3 или 4 ракаата и сбросить счёт. В нём умный конечный автомат с паузой 2,5 секунды и проверкой «рука убрана».

Дверной замок с RFID на ESP32 (RC522 + сервопривод + OLED + зуммер + светодиод)
Собираем умный дверной замок на ESP32, модуле RFID RC522, сервоприводе SG90, OLED-дисплее SSD1306, активном зуммере и 2 светодиодах. При поднесении карты её UID сравнивается со списком разрешённых карт в коде: если доступ разрешён, сервопривод поворачивается и открывает дверь (зелёный светодиод + 2 коротких сигнала), а через 5 секунд дверь снова запирается сама. При чужой карте загорается красный светодиод, звучат 3 быстрых сигнала, а прочитанный UID показывается на экране.

Смеситель цветов на ESP32 (3 потенциометра + RGB-светодиод + OLED)
Умная лампа для смешивания цветов на ESP32: вращая три потенциометра, можно получить любой цвет! Когда крутишь потенциометры красного, зелёного и синего, RGB-светодиод с общим катодом меняет цвет в реальном времени. OLED-дисплей SSD1306 показывает значения каждого цвета в диапазоне 0–255, полосы заполнения и веб-код цвета HEX (например, #FF8040). Мини-студия цвета, которая учит теории цвета RGB, чтению АЦП, регулировке яркости через PWM и дизайну экрана I2C.

Умное освещение на ESP32 (PIR + LDR + реле + OLED)
Сделай умное освещение для коридора, ванной или кладовки на ESP32! С PIR-датчиком движения, датчиком освещённости LDR и модулем реле собирается классический сценарий «свет включается при движении в темноте»: если вокруг уже светло, движение свет НЕ включает, и днём энергия экономится. Свет горит 30 секунд; если движение продолжается, таймер сбрасывается, и свет горит дольше. OLED SSD1306 крупно показывает состояние (ON / DAYTIME / WAITING) и обратный отсчёт.

Парктроник на ESP32 (HC-SR04 + шкала из 5 светодиодов + зуммер + OLED)
ESP32-версия автомобильного парктроника! Ультразвуковой датчик HC-SR04 измеряет расстояние до предмета перед ним. По мере уменьшения расстояния шкала из 5 светодиодов заполняется (зелёный → жёлтый → красный), а интервал сигналов зуммера сокращается. Когда предмет совсем близко (меньше 10 см), звучит непрерывная тревога и горят все светодиоды. OLED SSD1306 показывает расстояние в см крупным шрифтом и сообщение состояния (STOP / CAUTION / CLOSE / STOP! / DANGER).

Универсальный ИК-пульт на ESP32 (ИК-приёмник + пульт + 3 светодиода + зуммер + OLED)
С ESP32 можно читать обычный ИК-пульт и управлять с него своим устройством! В этом проекте инфракрасный приёмник (протокол NEC, 38 kHz) ловит сигналы 20-кнопочного ИК-пульта. Каждой кнопке задано своё действие: кнопки 1, 2 и 3 переключают три отдельных светодиода, кнопка PWR выключает все, а цифры 4–9 показывают на OLED особые символы. OLED-дисплей SSD1306 крупно показывает последнюю нажатую кнопку и описание действия.

Регистратор температуры на ESP32 (DHT22 + DS1307 RTC + microSD + OLED)
Собери на ESP32 регистратор температуры с отметками времени! Каждую минуту читай температуру и влажность с DHT22, бери реальное время из DS1307 RTC и записывай всё на карту microSD в формате CSV. OLED показывает текущую температуру (крупным шрифтом), влажность в процентах, время и счётчик записей. Файл /temp_log.csv на SD-карте открывается в Excel, Google Sheets или Python pandas — идеально для теплиц, комнат, лабораторий и хранения продуктов.

Сигнализация движения на ESP32 (PIR + зуммер + светодиод + Telegram)
Умная охранная сигнализация, которая при обнаружении движения PIR-датчиком включает зуммер и светодиод и одновременно сразу отправляет владельцу уведомление в Telegram. В ней есть 30-секундная пауза, ограничивающая частоту повторных тревог; этот механизм не проверяет срабатывания PIR и не устраняет ложные тревоги. Подходит для дома, гаража, склада или мастерской. С ESP32-CAM можно добавить уведомления с фото, а с обычной ESP32 DevKit V1 приходят текстовые.
Детали и утилиты
Детали, которые чаще всего встречаются в этих проектах, калькуляторы, которые помогают при сборке, и пошаговые руководства.
Популярные компоненты
Руководства
- Время NTP на ESP32: интернет-часы, часовой пояс, OLED и резервный RTC
- ESP32-CAM и Telegram: отправка фото при обнаружении движения
- Обновление ESP32 по воздуху (OTA): загрузка кода по Wi-Fi через ArduinoOTA
- Глубокий сон ESP32: источники пробуждения, потребляемый ток и время работы от батареи
- ESP32 и MQTT: руководство по Mosquitto, Home Assistant и ESPHome
- Асинхронный веб-сервер на ESP32 с WebSocket: панель управления в реальном времени
Частые вопросы
Чем ESP32 отличается от Arduino?
У ESP32 встроенные Wi-Fi и Bluetooth, двухъядерный процессор на 240 MHz и намного больше памяти. Arduino Uno — более простая плата на 5 V, которая прощает ошибки. ESP32 лучше для проектов с подключением к сети, а Uno — для первых шагов в электронике.
Можно ли программировать ESP32 в Arduino IDE?
Да. Добавь URL менеджера плат Espressif в настройках Arduino IDE и установи пакет esp32 в «Менеджере плат» (Boards Manager). Затем выбери плату ESP32 Dev Module и загрузи код.
Выдерживают ли пины ESP32 5 V?
Нет. Пины GPIO у ESP32 работают от 3,3 V, и сигнал 5 V может их повредить. С датчиками, которые выдают 5 V, используй делитель напряжения или преобразователь логических уровней.
Какую плату ESP32 купить?
Самая распространённая плата с наибольшим числом примеров — ESP32 DevKit с модулем ESP32-WROOM-32. Для проектов с камерой есть ESP32-CAM, а для простых проектов с Wi-Fi подойдёт и NodeMCU на ESP8266.
Какие IoT-проекты можно собрать на ESP32?
Популярные проекты на ESP32: реле и светодиоды с управлением с телефона, метеостанция с данными датчиков на веб-странице, сигнализация движения с уведомлениями в Telegram, часы, которые берут время из интернета по NTP, и устройства с управлением по Bluetooth.
Что делать, если код не загружается в ESP32?
Убедись, что USB-кабель передаёт данные и установлен драйвер CP2102 или CH340. Если загрузка зависает на «Connecting...», зажми кнопку BOOT на плате. Должны быть выбраны нужный порт и ESP32 Dev Module.










