Примеры проектов на ESP32
Примеры проектов на ESP32 — 199 готовых примеров со схемой и кодом. Откройте любой в браузере и запустите без платы и проводов.
Потенциометр управляет яркостью
Связка вход-выход через map(). Первый пример, где приборы взаимодействуют.
Расписание: свет по часам
Включать нагрузку в заданные часы. Проверка написана так, чтобы работать и на промежутке через полночь.
Сглаживание показаний АЦП
Скользящее среднее по кольцевому буферу. Сырой АЦП шумит на пару единиц всегда.
Сеть как источник, часы как резерв
Сеть точнее, но её может не быть. Микросхема всегда на месте, но уходит. Правильная схема — сверять первым вторым.
Счётчик пересечений луча
Фоторезистор как датчик прохода. Считается фронт, а не уровень, иначе один проход даст сотню срабатываний.
Тара и отрицательный вес
Ноль весов — это не ноль датчика. Что происходит, когда груз снимают после тары, и почему это нормально.
Термистор NTC
Уравнение Стейнхарта–Харта в упрощённой форме: сопротивление в градусы через бета-коэффициент.
Ультразвук: медианный фильтр
Одиночный ложный отсчёт у сонара — норма. Медиана из трёх его выбрасывает, среднее — нет.
Часы на семисегментном
Часы, минуты и секунды с мигающими точками. Точка — старший разряд байта, и включается она отдельно от цифры.
Часы с мигающим двоеточием
Отдельного двоеточия у индикатора нет: это старший разряд второй цифры. Отсюда и способ им мигать.
Яркость и выключение
У микросхемы шестнадцать ступеней яркости и настоящее выключение. И то и другое видно на схеме.
NeoPixel: эффект огня
Случайное мерцание в тёплой части палитры. Простейший генеративный эффект.
RGB: плавная радуга
Перевод HSV в RGB. Один параметр — оттенок — вместо трёх яркостей.
WiFi: подключение с переподключением
Соединение может пропасть в любой момент. Проверка состояния в loop() — не роскошь.
Веб-сервер: управление выводом
Страница с двумя кнопками и обработчики маршрутов. Кнопка «Веб-интерфейс» над схемой открывает её в отдельном окне — как если бы в…
Веб-сервер: щиток из двух реле
Два канала, состояние каждого и кнопка «всё выключить». Показывает, как одна страница управляет несколькими нагрузками и как перед…
Внутренний термодатчик
Показывает температуру кристалла, а не воздуха: под нагрузкой она заметно выше комнатной.
Змейка на светодиодной матрице 8×8
Руль — энкодер: по часовой — змейка поворачивает направо, против — налево. Съела точку — длиннее и быстрее; врезалась в себя — игр…
ИК-пульт: приём кода
Приёмник ловит кадр пульта, а разбирает его блок RMT: импульсы по полмиллисекунды скетч поймать не успеет. Нажмите на кружок приём…
Конфиг в JSON и в памяти
Настройки хранятся строкой JSON в NVS: одно поле вместо десяти ключей, и добавить новое можно не ломая старое.
Кухонные весы
Вес на индикаторе с округлением до грамма и подавлением дрожания последнего разряда.
Обратный отсчёт до срока
Разность двух моментов времени: RTClib считает её сама, и переносы через сутки и месяцы считать руками не надо.
Порог с гистерезисом
Один порог заставляет выход дребезжать у границы. Два порога — нет.
Свободное падение
Падающий датчик не чувствует силы тяжести: длина вектора уходит к нулю. На этом и строится определение падения.