Примеры проектов на ESP32
Примеры проектов на ESP32 — 199 готовых примеров со схемой и кодом. Откройте любой в браузере и запустите без платы и проводов.
TM1637: четыре разряда
Индикатор на двух проводах: не I2C, хотя и похоже. Числа, ведущие нули и то, чем показ отличается от вычисления.
Автополив и фитолампа на ESP32: панель на GyverLibs/Settings
Четвёртый вариант прибора: веб-админка не написана руками, а собрана библиотекой GyverLibs/Settings — скетч только перечисляет вид…
Датчик влажности почвы
Аналоговый вход и обратная шкала: чем влажнее, тем меньше сопротивление и ниже показание.
Датчик движения
PIR выдаёт готовый цифровой уровень. Вся сложность — в удержании света после последнего движения.
Жизнь на матрице
Игра «Жизнь» на поле 8×8 с замыканием краёв. Считается в двух буферах — иначе клетки видят соседей уже нового поколения.
Индикатор духоты
Три величины сводятся в одну оценку. Гистерезис в пороге — иначе индикатор мигает на границе.
Кнопка зажигает светодиод
Прямая связь входа и выхода. Кратчайший скетч, в котором есть и то и другое.
Короткое и длинное нажатие
Одна кнопка — две команды. Различаются по длительности удержания.
Матрица: рисунок и мигание
Картинка хранится восемью байтами — по байту на строку. Так её удобно и рисовать в коде, и отправлять.
Ночник
Темнее — ярче. Обратная пропорция и гистерезис, чтобы лампа не моргала на границе.
Причина перезагрузки
После неожиданного рестарта первое, что нужно знать: питание, сторож или паника.
Семисегментный: счётчик
Та же микросхема, другой индикатор. Цифры рисует она сама — если включить знакогенератор.
Ультразвук: измерение расстояния
Импульс 10 мкс на TRIG, длительность ответа на ECHO. Расстояние — это время полёта, делённое пополам.
LCD: меню на двух кнопках
Список пунктов, курсор и выбор. Минимальный интерфейс, из которого вырастает любой прибор.
NVS: сохранение рекордов
Запись только при изменении. Ресурс флеша конечен, и переписывать одно и то же в цикле не стоит.
Датчик Холла
Встроен в кристалл ESP32, внешних деталей не нужно. Реагирует на магнитное поле обоими знаками.
Дополняющий фильтр
Акселерометр шумит, гироскоп уплывает. Одна строка фильтра берёт от каждого лучшее — и объясняет, почему.
Какой стороной вверх
Шесть положений кубика из знаков трёх ускорений. Простая задача, на которой видно, зачем нужен порог уверенности.
Кнопка: чтение состояния
Подтяжка внутри контроллера и инверсия логики: нажатая кнопка даёт LOW. Первое, обо что спотыкаются все.
Метеостанция с журналом
Датчик, часы и карта вместе: раз в минуту строка в файл, имя файла — из даты.
Режим по требованию и экономия
Датчик умеет спать между измерениями. Разница режимов и то, чем за неё платят.
Реле по расписанию
Периодическое включение нагрузки. Реле — единственный способ управлять чем-то мощнее светодиода.
Слежение за утечкой памяти
Куча, которая только уменьшается, — признак утечки. Здесь она создаётся намеренно, чтобы увидеть, как это выглядит.
Случайные числа
esp_random() берёт энтропию из аппаратного генератора. random() без засева даёт одну и ту же последовательность.