Галерея проектов
Любой проект можно открыть, запустить и сделать своей копией. У каждого примера есть разбор: что на схеме, какие библиотеки нужны и что делает код.
MPU6050: шесть чисел
Три ускорения, три угловые скорости и температура кристалла. И первое, о что все спотыкаются: датчик после включения спит.
NTPClient: время из сети
Библиотека поверх UDP: свой пакет, свой разбор, свой период обновления. Отличие от configTime — в том, кто владеет временем.
NVS: настройки прибора
Строки и числа под именами. Команды из Serial меняют настройки, и они остаются после перезапуска.
NVS: сохранение рекордов
Запись только при изменении. Ресурс флеша конечен, и переписывать одно и то же в цикле не стоит.
NeoPixel: шкала уровня
Лента как линейный индикатор: зелёный, жёлтый, красный по мере роста значения.
OLED SSD1306: первый вывод
128x64 точки. Всё рисуется в буфер, на экран попадает по display().
OLED: анимация
Шарик, отражающийся от краёв. Скорость и координаты как состояние между кадрами.
OLED: график значения
Кольцевой буфер и столбики. Показывает не только текущее значение, но и как оно менялось.
OLED: индикатор выполнения
Рамка, заливка и проценты. Примитивы GFX: прямоугольники и текст.
OLED: крупные цифры
Перерисовка кадра целиком: очистка, вывод, display(). Так делается любая динамика.
Preferences: настройки прибора
Несколько значений разных типов, значения по умолчанию и сброс к заводским. Плюс то, о чём молчат: запись изнашивает память.
Preferences: что переживает перезагрузку
Счётчик запусков в NVS. Три строки кода и одна мысль: сброс платы — это не выключение питания, а для NVS разницы нет вовсе.
RGB: перебор цветов
Три канала ШИМ на один светодиод. Показывает, что цвет — это три независимые яркости.
RGB: плавная радуга
Перевод HSV в RGB. Один параметр — оттенок — вместо трёх яркостей.
Serial: данные для графика
Числа через запятую в одной строке — формат, который читает построитель графиков.
Serial: журнал в CSV
Заголовок один раз, дальше строки с временем и значениями. Копируется в таблицу как есть.
Serial: меню одной клавишей
Один символ — одно действие. Быстрый способ дать прибору отладочный интерфейс.
Serial: разбор команд
Команда и аргумент, разделённые пробелом. Отсюда вырастает консоль прибора.
Serial: чтение по строкам
Байты копятся до перевода строки. Без этого команда приходит по кускам.
Serial: эхо
Самый короткий двусторонний обмен: всё, что пришло, уходит обратно.
TFT ST7735: цвет и фигуры
Цветной дисплей на аппаратном SPI. Провод DC отличает команду от данных — без него экран останется чёрным.
TM1637: четыре разряда
Индикатор на двух проводах: не I2C, хотя и похоже. Числа, ведущие нули и то, чем показ отличается от вычисления.
TimeLib и часы: кто кого сверяет
setSyncProvider: библиотека сама раз в пять минут спрашивает время у микросхемы. Одна строка вместо ручной сверки.
TimeLib: время без часов
Библиотека не знает, откуда время, — она его считает. Отсюда её сила и её главная ловушка.