Галерея проектов
Любой проект можно открыть, запустить и сделать своей копией. У каждого примера есть разбор: что на схеме, какие библиотеки нужны и что делает код.
Время по NTP
Часов реального времени у ESP32 нет — время берётся из сети и дальше идёт от системного счётчика.
Второй UART и мост
У ESP32 три аппаратных UART. Второй выводится на любые выводы и работает независимо от отладочного.
Высота по давлению
Барометрическая высота: считается от давления на уровне моря, и ошибка в этом одном числе смещает всю шкалу.
Глубокий сон по таймеру
Основной режим для приборов на батарее: проснуться, замерить, отправить, уснуть. После пробуждения setup() начинается заново.
Датчик Холла
Встроен в кристалл ESP32, внешних деталей не нужно. Реагирует на магнитное поле обоими знаками.
Датчик влажности почвы
Аналоговый вход и обратная шкала: чем влажнее, тем меньше сопротивление и ниже показание.
Датчик движения
PIR выдаёт готовый цифровой уровень. Вся сложность — в удержании света после последнего движения.
Два светодиода по очереди
Два вывода и противофаза. Показывает, что состояние выводов независимо.
Дополняющий фильтр
Акселерометр шумит, гироскоп уплывает. Одна строка фильтра берёт от каждого лучшее — и объясняет, почему.
Дыхание светодиода
Та же яркость, но по синусу. Линейное изменение скважности глаз воспринимает неравномерно.
Жизнь на матрице
Игра «Жизнь» на поле 8×8 с замыканием краёв. Считается в двух буферах — иначе клетки видят соседей уже нового поколения.
Журнал на карту с отметкой времени
Часы и карта вместе: каждая запись получает время, а не «столько-то миллисекунд с включения».
Замер времени выполнения
micros() и разница до/после. Первый шаг к оптимизации — узнать, что именно медленное.
Звук: мелодия по нотам
Массив частот и длительностей. Пауза между нотами нужна, иначе они сливаются.
Звук: одна нота
Пьезоизлучатель на ШИМ. Частота задаёт высоту, скважность — громкость.
Звук: сирена
Частота меняется непрерывно. Тот же приём, что у плавной яркости, но для звука.
ИК-пульт: приём кода
Приёмник ловит кадр пульта, а разбирает его блок RMT: импульсы по полмиллисекунды скетч поймать не успеет. Нажмите на кружок приём…
Игра на реакцию
Случайная задержка, вспышка, замер времени до нажатия. Всё вместе: вывод, ввод, время, случайность.
Измерение напряжения делителем
АЦП принимает максимум 3.3 В. Делитель расширяет диапазон, а коэффициент возвращается в коде.
Индикатор духоты
Три величины сводятся в одну оценку. Гистерезис в пороге — иначе индикатор мигает на границе.
Какой стороной вверх
Шесть положений кубика из знаков трёх ускорений. Простая задача, на которой видно, зачем нужен порог уверенности.
Калибровка нуля
У лежащего неподвижно датчика гироскоп показывает не ноль. Смещение снимают один раз при старте и вычитают дальше.
Калибровка: из отсчётов в граммы
Коэффициент подбирается известным грузом один раз и записывается в скетч. Без него на экране будут отсчёты, а не вес.
Карта SD: чтение и запись файлов
Карта на аппаратном SPI с готовой файловой системой. На ней уже лежит README.TXT — его и читает пример.