🛒
0 товаров
0 руб.

Интернет-магазин «Неглупый Дом»


💧 Проект: прецизионный термогигрометр на HTU21D с выводом на LCD1602

Цифровой датчик HTU21D измеряет температуру и влажность воздуха по шине I2C с более высокой заводской точностью, чем бюджетные комбо-датчики, а результат в реальном времени выводится на экран LCD1602.

Как это работает

HTU21D — ёмкостной датчик влажности с отдельным термоэлементом внутри одного корпуса: изменение влажности воздуха меняет электрическую ёмкость чувствительного слоя, а встроенный в датчик контроллер сам пересчитывает это в проценты относительной влажности и градусы, отдавая Arduino уже готовые значения по I2C без ручной калибровки. По паспортным данным HTU21D обычно заявляет точность порядка ±2% по влажности и ±0.3°C по температуре — заметно точнее, чем у более дешёвых комбо-датчиков типа AM2320/DHT, у которых погрешность обычно в полтора-два раза выше; на практике это означает более стабильные и повторяемые показания, особенно в середине диапазона влажности.

В отличие от аналоговых датчиков влажности (вроде резистивных почвенных), HTU21D не требует подбора порогов и калибровочных коэффициентов под конкретный экземпляр — один и тот же код даёт одинаково точные показания на разных платах одной партии, потому что калибровка уже выполнена производителем и записана в саму микросхему.

Пошаговая сборка

Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.

  1. HTU21D: SDA → A4, SCL → A5, VCC → 3.3V или 5V (проверьте по маркировке на конкретной плате — большинство версий HTU21D работают от 3.3V, но многие готовые модули имеют встроенный стабилизатор и разведены под 5V), GND → GND.
  2. LCD1602 с I2C-переходником подключается на ту же шину: SDA → A4, SCL → A5, VCC → 5V, GND → GND (адреса у датчика и дисплея разные, конфликта на одной шине не будет).
  3. На плате переходника I2C для LCD1602 обычно есть подстроечный резистор синего цвета — им регулируется контрастность символов, если экран горит, но текста не видно.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.

#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: Электронные модули.

← 🔢 частотомер для генератора на NE555 с вывод…🧲 измеритель силы магнитного поля на аналого… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу в корзину: 369 ₽ 332 ₽ (экономия 37 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина


Поиск



Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA