
Интернет-магазин «Неглупый Дом»
Цифровой датчик HTU21D измеряет температуру и влажность воздуха по шине I2C с более высокой заводской точностью, чем бюджетные комбо-датчики, а результат в реальном времени выводится на экран LCD1602.
HTU21D — ёмкостной датчик влажности с отдельным термоэлементом внутри одного корпуса: изменение влажности воздуха меняет электрическую ёмкость чувствительного слоя, а встроенный в датчик контроллер сам пересчитывает это в проценты относительной влажности и градусы, отдавая Arduino уже готовые значения по I2C без ручной калибровки. По паспортным данным HTU21D обычно заявляет точность порядка ±2% по влажности и ±0.3°C по температуре — заметно точнее, чем у более дешёвых комбо-датчиков типа AM2320/DHT, у которых погрешность обычно в полтора-два раза выше; на практике это означает более стабильные и повторяемые показания, особенно в середине диапазона влажности.
В отличие от аналоговых датчиков влажности (вроде резистивных почвенных), HTU21D не требует подбора порогов и калибровочных коэффициентов под конкретный экземпляр — один и тот же код даёт одинаково точные показания на разных платах одной партии, потому что калибровка уже выполнена производителем и записана в саму микросхему.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.
#include <Wire.h>
#include <Adafruit_HTU21DF.h> // библиотека Adafruit для датчика HTU21D
#include <LiquidCrystal_I2C.h> // библиотека для LCD-дисплея через I2C-переходник
Adafruit_HTU21DF htu;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
if (!htu.begin()) {
Serial.println("HTU21D не найден на шине I2C!");
lcd.print("HTU21D error");
while (1) delay(1000);
}
}
void loop() {
float temp = htu.readTemperature();
float hum = htu.readHumidity();
lcd.setCursor(0, 0);
lcd.print("T: ");
lcd.print(temp);
lcd.print(" C ");
lcd.setCursor(0, 1);
lcd.print("H: ");
lcd.print(hum);
lcd.print(" % ");
Serial.print("Температура: ");
Serial.print(temp);
Serial.print(" C, Влажность: ");
Serial.print(hum);
Serial.println(" %");
delay(1000);
}
Библиотека Adafruit_HTU21DF ставится через Менеджер библиотек Arduino IDE (поиск "Adafruit HTU21DF"). Если LCD не откликается — проверьте адрес на шине I2C через скетч-сканер I2C (обычно 0x27 или 0x3F), если не отвечает сам датчик — его стандартный адрес 0x40, конфликтов с LCD не будет.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу в корзину: 369 ₽ 332 ₽ (экономия 37 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.