Галерея проектов
Любой проект можно открыть, запустить и сделать своей копией. У каждого примера есть разбор: что на схеме, какие библиотеки нужны и что делает код.
Кнопка зажигает светодиод
Прямая связь входа и выхода. Кратчайший скетч, в котором есть и то и другое.
Конечный автомат
Состояния, переходы и таблица. Способ описать поведение прибора, который перестаёт помещаться в if-ы.
Реле от кнопки с фиксацией
Кнопка без фиксации управляет нагрузкой с фиксацией. Состояние держит программа.
WiFi: поиск сетей
Список точек доступа с уровнем сигнала и типом защиты. Проверка того, что радио работает.
Веб-сервер: щиток из двух реле
Два канала, состояние каждого и кнопка «всё выключить». Показывает, как одна страница управляет несколькими нагрузками и как перед…
Игра на реакцию
Случайная задержка, вспышка, замер времени до нажатия. Всё вместе: вывод, ввод, время, случайность.
FreeRTOS: мьютекс
Две задачи пишут в один Serial. Без мьютекса строки перемешиваются посреди слова.
HTTP-запрос
Клиент, код ответа и тело. Ответ читается целиком в строку — для больших страниц так делать не надо.
NeoPixel: эффект огня
Случайное мерцание в тёплой части палитры. Простейший генеративный эффект.
Антидребезг кнопки
Механический контакт при нажатии дребезжит несколько миллисекунд. Без фильтра одно нажатие считается десятком.
Веб-сервер: JSON с показаниями
Машиночитаемый ответ вместо страницы. Откройте «Веб-интерфейс» и наберите /data — отсюда данные забирает что угодно, от скрипта до…
Сравнение фильтров
Скользящее среднее, экспоненциальное и медиана на одних данных. Видно, чем они отличаются на выбросах.
NeoPixel: шкала уровня
Лента как линейный индикатор: зелёный, жёлтый, красный по мере роста значения.
OLED SSD1306: первый вывод
128x64 точки. Всё рисуется в буфер, на экран попадает по display().
Serial: разбор команд
Команда и аргумент, разделённые пробелом. Отсюда вырастает консоль прибора.
Время по NTP
Часов реального времени у ESP32 нет — время берётся из сети и дальше идёт от системного счётчика.
Датчик Холла
Встроен в кристалл ESP32, внешних деталей не нужно. Реагирует на магнитное поле обоими знаками.
Метроном
Темп задаётся потенциометром, щелчок — коротким импульсом. Пример совместной работы трёх устройств.
Потенциометр: чтение АЦП
analogRead и 12 бит разрешения. Значение 0…4095 на всю шкалу.
Сведения о чипе
Ревизия, число ядер, объём флеша, MAC-адрес, свободная память. Первое, что стоит вывести в незнакомом железе.
Случайные числа
esp_random() берёт энтропию из аппаратного генератора. random() без засева даёт одну и ту же последовательность.
FreeRTOS: сигнал из прерывания
Обработчик должен быть коротким. Он лишь отдаёт семафор, а работу делает задача.
NVS: сохранение рекордов
Запись только при изменении. Ресурс флеша конечен, и переписывать одно и то же в цикле не стоит.
OLED: анимация
Шарик, отражающийся от краёв. Скорость и координаты как состояние между кадрами.