Примеры проектов на ESP32
Примеры проектов на ESP32 — 50 готовых примеров со схемой и кодом. Откройте любой в браузере и запустите без платы и проводов.
Барометр: тенденция за три часа
Погоду предсказывает не давление, а его изменение. Кольцевой буфер и разность с отсчётом трёхчасовой давности.
Парктроник
Чем ближе препятствие, тем чаще писк. Расстояние превращается в период — приём, который работает и без дисплея.
Сканер шины I2C
Первое, что запускают, когда датчик на шине не отвечает: перебор всех адресов.
Точка росы и запотевание
Точку росы датчик не измеряет — её считают из температуры и влажности. Формула Магнуса и проверка «стекло запотеет».
Высота по давлению
Барометрическая высота: считается от давления на уровне моря, и ошибка в этом одном числе смещает всю шкалу.
Калибровка: из отсчётов в граммы
Коэффициент подбирается известным грузом один раз и записывается в скетч. Без него на экране будут отсчёты, а не вес.
Счётчик импульсов на прерывании
Основа для расходомера, тахометра, счётчика оборотов: считать в обработчике, считать частоту в loop().
Счётчик пересечений луча
Фоторезистор как датчик прохода. Считается фронт, а не уровень, иначе один проход даст сотню срабатываний.
Ультразвук: медианный фильтр
Одиночный ложный отсчёт у сонара — норма. Медиана из трёх его выбрасывает, среднее — нет.
Внутренний термодатчик
Показывает температуру кристалла, а не воздуха: под нагрузкой она заметно выше комнатной.
ИК-пульт: приём кода
Приёмник ловит кадр пульта, а разбирает его блок RMT: импульсы по полмиллисекунды скетч поймать не успеет. Нажмите на кружок приём…
Кухонные весы
Вес на индикаторе с округлением до грамма и подавлением дрожания последнего разряда.
Свободное падение
Падающий датчик не чувствует силы тяжести: длина вектора уходит к нулю. На этом и строится определение падения.
Сглаживание показаний
Скользящее среднее против дрожания последнего разряда. Заодно видно, чем оно платит за гладкость.
Тара и отрицательный вес
Ноль весов — это не ноль датчика. Что происходит, когда груз снимают после тары, и почему это нормально.
Шагомер
Шаг — это всплеск длины вектора. Считать всплески без гистерезиса и паузы бесполезно: один шаг насчитается пятью.
Пульт от телевизора включает лампу и вентилятор
Любой пульт с протоколом NEC: «1» — лампа, «2» — вентилятор, «0» — выключить всё. Нагрузки включают реле. Нажмите на кружок приёмн…
DHT11: температура и влажность целыми числами
Дешёвый однопроводный датчик: целые градусы и проценты, опрос не чаще раза в секунду. Скетч показывает, как отличить «датчик молчи…
DS18B20: цифровой термометр на шине 1-Wire
Один провод данных и подтяжка 4,7 кОм: библиотеки OneWire и DallasTemperature находят датчик по адресу и читают температуру с шаго…
HTU21D: температура и влажность по I2C без библиотеки
Датчик понимает несколько однобайтовых команд. Скетч сам посылает команду измерения, ждёт, читает три байта и проверяет контрольну…
Датчик влажности почвы: когда пора поливать
Напряжение на AO падает по мере того, как почва мокнет. Скетч переводит его в проценты по двум замерам — в воздухе и в воде — и за…
Датчик газа MQ-2: сигнализация с порогом
Чем больше газа, тем выше напряжение на AO. Скетч ждёт прогрева, затем включает сигнал при превышении порога и выключает его тольк…
Датчик движения HC-SR501: свет по движению
Датчик держит на выходе высокий уровень, пока видит движение. Скетч включает светодиод и гасит его через несколько секунд тишины…
Джойстик KY-023: две оси и кнопка
Две оси — это два потенциометра на АЦП, кнопка в оси замыкает SW на землю. Скетч определяет направление с мёртвой зоной вокруг цен…