Adafruit Unified Sensor: библиотека для ESP32 и Arduino
работает · версия 1.1.14
Общий интерфейс датчиков Adafruit. Сама по себе не нужна.
В симуляторе
Подключается не ради себя, а потому что её требуют другие библиотеки Adafruit. Если компилятор жалуется на Adafruit_Sensor.h — дело в ней.
Примеры с этой библиотекой
DHT22: температура и влажность — Однопроводный протокол с собственным таймингом. Библиотека читает датчик не чаще раза в две секунды — быстрее он не отвечает.
Сигнал о перегреве — Порог с гистерезисом поверх датчика: светодиод и зуммер срабатывают, когда температура выходит за границу.
Минимум и максимум за сеанс — Накопление статистики без массива: достаточно двух переменных и первого замера.
LCD: термометр — Датчик и дисплей вместе. Собственный символ градуса — потому что в наборе LCD его нет.
BME280: три величины сразу — Датчик отдаёт не градусы, а сырые числа и заводские поправки — считает библиотека. Пример показывает, что из этого получается.
Высота по давлению — Барометрическая высота: считается от давления на уровне моря, и ошибка в этом одном числе смещает всю шкалу.
Точка росы и запотевание — Точку росы датчик не измеряет — её считают из температуры и влажности. Формула Магнуса и проверка «стекло запотеет».
Барометр: тенденция за три часа — Погоду предсказывает не давление, а его изменение. Кольцевой буфер и разность с отсчётом трёхчасовой давности.
Индикатор духоты — Три величины сводятся в одну оценку. Гистерезис в пороге — иначе индикатор мигает на границе.
Метеостанция с журналом — Датчик, часы и карта вместе: раз в минуту строка в файл, имя файла — из даты.
Сглаживание показаний — Скользящее среднее против дрожания последнего разряда. Заодно видно, чем оно платит за гладкость.
MPU6050: шесть чисел — Три ускорения, три угловые скорости и температура кристалла. И первое, о что все спотыкаются: датчик после включения спит.
Уровень: крен и тангаж — Углы считаются из вектора силы тяжести — двумя арктангенсами. Покрутите наклон в свойствах датчика и смотрите на пузырёк.
Свободное падение — Падающий датчик не чувствует силы тяжести: длина вектора уходит к нулю. На этом и строится определение падения.
Какой стороной вверх — Шесть положений кубика из знаков трёх ускорений. Простая задача, на которой видно, зачем нужен порог уверенности.
Дополняющий фильтр — Акселерометр шумит, гироскоп уплывает. Одна строка фильтра берёт от каждого лучшее — и объясняет, почему.
Шагомер — Шаг — это всплеск длины вектора. Считать всплески без гистерезиса и паузы бесполезно: один шаг насчитается пятью.
Авиагоризонт на TFT — Наклон рисуется линией горизонта на цветном экране: земля снизу, небо сверху, и всё это поворачивается вместе с датчиком.
Калибровка нуля — У лежащего неподвижно датчика гироскоп показывает не ноль. Смещение снимают один раз при старте и вычитают дальше.
Термометр на индикаторе — Показать -3.7°C на семисегментном индикаторе: знак, десятые и буква. Буквы C знакогенератор не знает — значит рисуем сегментами сами.
Термометр с буквой — Показать -3.7C на четырёх разрядах: знак, десятые и буква. Сегменты приходится задавать руками.
MQTT: климат комнаты и обогрев — DHT22 публикует температуру и влажность в JSON; уставку и период опроса меняют сообщениями. Обогрев (светодиод вместо реле) включается с гис…
Электронный кубик: встряхни — и выпадет число — Акселерометр в покое показывает ровно 1 g — это притяжение Земли. Встряхнули — модуль ускорения скачет выше полутора g, грани на матрице мел…
Arduino Uno: давление, влажность и температура — Три величины с одного датчика по двум проводам. Показания уходят в монитор порта в формате плоттера — вкладка График строит по ним три ряда…
Arduino Uno: датчик DHT22 на одном проводе — Температура и влажность по единственной линии данных. Датчик медленный: чаще чем раз в две секунды его спрашивать бесполезно, и это свойство…
Метеостанция с тенденцией давления — Часы, температура, влажность и давление на одном экране — и стрелка, куда идёт давление за последний час. Три устройства на одной шине I2C…
Термостат с гистерезисом — DHT22 меряет, реле греет, ручка задаёт уставку. Гистерезис в полградуса и выдержка в десять секунд берегут реле. Температуру датчика меняют…