Галерея проектов
Любой проект можно открыть, запустить и сделать своей копией. У каждого примера есть разбор: что на схеме, какие библиотеки нужны и что делает код.
Serial: журнал в CSV
Заголовок один раз, дальше строки с временем и значениями. Копируется в таблицу как есть.
Serial: меню одной клавишей
Один символ — одно действие. Быстрый способ дать прибору отладочный интерфейс.
Serial: разбор команд
Команда и аргумент, разделённые пробелом. Отсюда вырастает консоль прибора.
Serial: чтение по строкам
Байты копятся до перевода строки. Без этого команда приходит по кускам.
Serial: эхо
Самый короткий двусторонний обмен: всё, что пришло, уходит обратно.
TFT ST7735: цвет и фигуры
Цветной дисплей на аппаратном SPI. Провод DC отличает команду от данных — без него экран останется чёрным.
TM1637: четыре разряда
Индикатор на двух проводах: не I2C, хотя и похоже. Числа, ведущие нули и то, чем показ отличается от вычисления.
TimeLib и часы: кто кого сверяет
setSyncProvider: библиотека сама раз в пять минут спрашивает время у микросхемы. Одна строка вместо ручной сверки.
TimeLib: время без часов
Библиотека не знает, откуда время, — она его считает. Отсюда её сила и её главная ловушка.
WiFi: подключение с переподключением
Соединение может пропасть в любой момент. Проверка состояния в loop() — не роскошь.
WiFi: поиск сетей
Список точек доступа с уровнем сигнала и типом защиты. Проверка того, что радио работает.
Ёмкостное касание
У ESP32 десять сенсорных выводов. Прикосновение уменьшает показание — порог подбирается на месте.
Авиагоризонт на TFT
Наклон рисуется линией горизонта на цветном экране: земля снизу, небо сверху, и всё это поворачивается вместе с датчиком.
Автополив
Датчик, порог, насос через реле и обязательная пауза после полива: воде нужно время дойти до датчика.
Антидребезг кнопки
Механический контакт при нажатии дребезжит несколько миллисекунд. Без фильтра одно нажатие считается десятком.
Аппаратный счётчик импульсов (PCNT)
То же, что «Счётчик импульсов на прерывании», но считает не скетч, а блок PCNT: без обработчика, без volatile и без потерь, когда…
Аппаратный таймер
Прерывание строго по расписанию, независимо от того, чем занят loop(). Точнее любого millis().
Барометр: тенденция за три часа
Погоду предсказывает не давление, а его изменение. Кольцевой буфер и разность с отсчётом трёхчасовой давности.
Бегущая строка по цепочке
Четыре модуля — это 32 столбца одного полотна. Строка едет по буферу, а на модули раскладывается по восемь столбцов.
Будильник: раз в минуту
Будильник внутри микросхемы: она сама сравнивает время и поднимает признак. Плата может в это время спать.
Будни и выходные
День недели микросхема хранит отдельным регистром. Пример показывает, как на нём строить недельное расписание.
Веб-сервер: JSON с показаниями
Машиночитаемый ответ вместо страницы. Откройте «Веб-интерфейс» и наберите /data — отсюда данные забирает что угодно, от скрипта до…
Веб-сервер: лампа без перезагрузки
Страница сама спрашивает состояние и переключает лампу, не перезагружаясь. Разделение на страницу и JSON — то, с чего начинается л…
Веб-сервер: управление выводом
Страница с двумя кнопками и обработчики маршрутов. Кнопка «Веб-интерфейс» над схемой открывает её в отдельном окне — как если бы в…