Arduino и датчик HTU21D
Описание
HTU21D – точный цифровой датчик температуры и влажности, в виде модуля существует версия 3.3V и 5V (со стабилизатором):
Набор GyverKIT (начиная с партии 003) комплектуется датчиком версии 5V. Характеристики:
- Температура:
- Диапазон: -40.. 125°С
- Точность: 0.3°С
- Разрешение: 11.. 14 bit
- Влажность:
- Диапазон: 0.. 100%
- Точность: 2%
- Разрешение: 8.. 12 bit
Подключение
Модуль подключается на шину I2C и питание, как и любой другой модуль такого типа:
- Arduino: SDA – A4, SCL – A5
- Wemos: SDA – D2, SCL – D1
Библиотеки
Для данного датчика существует несколько библиотек:
- HTU21D – библиотека от enjoyneering
- SparkFun_HTU21D_Breakout_Arduino_Library – библиотека от SparkFun
- Adafruit_HTU21DF_Library – библиотека от Adafruit
- GyverHTU21D – наша библиотека
В примерах на этом сайте мы будем использовать GyverHTU21D как наиболее лёгкую и удобную в использовании. Библиотека идёт в архиве к набору GyverKIT, а свежую версию всегда можно установить/обновить из встроенного менеджера библиотек Arduino по названию GyverHTU21D . Краткая документация находится по ссылке выше, базовые примеры есть в самой библиотеке.
Примеры
Данный датчик требует следующую последовательность опроса данных:
- Запросить измерение (температура или влажность)
- Подождать, пока измерения будут готовы (3-50 мс в зависимости от разрешения)
- Прочитать значение (температура или влажность)
В библиотеке GyverHTU21D реализован автоматический асинхронный опрос датчика. Получать показания можно следующим образом:
#include <GyverHTU21D.h> GyverHTU21D htu; void setup() { Serial.begin(9600); htu.begin(); // запустить датчик } void loop() { // функция опрашивает датчик по своему таймеру if (htu.readTick()) { // можно забирать значения здесь или в другом месте программы Serial.println(htu.getTemperature()); Serial.println(htu.getHumidity()); Serial.println(); } }
Домашнее задание
- Изучить примеры к библиотеке GyverHTU21D, попробовать другие способы работы с датчиком