Мониторинг температуры и влажности DHT22 с LCD 16x2 I2C на Arduino
Компоненты
- Arduino UNO R3 — 1 шт.
- Датчик DHT22 (AM2302) — 1 шт.
- LCD 16×2 с I2C-модулем (адрес 0x3F) — 1 шт.
- Макетная плата — 1 шт.
- Крона 9 В + держатель с джеком 5.5/2.1 мм — 1 компл.
- Провода перемычки (m/m, m/f) — комплект
Необходимые библиотеки
Adafruit_SensorDHTNewliquidCrystal(илиLiquidCrystal_I2C)
Подключение
Питание
5V и GND с Arduino на шины питания макетной платы. Красный — +5V, синий/белый — GND.
DHT22
- VCC → +5V
- GND → GND
- DATA → цифровой пин 4 (D4)
LCD 16×2 I2C
- GND → GND
- VCC → +5V
- SDA → A4
- SCL → A5
Важно: адрес I2C по умолчанию 0x3F. Если дисплей не работает — проверьте адрес сканером I2C.
Код скетча
#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 4
#define DHTTYPE DHT22
#define I2C_ADDR 0x3F
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(I2C_ADDR, 16, 2);
void setup() {
Serial.begin(9600);
dht.begin();
lcd.init();
lcd.backlight();
}
void loop() {
delay(2000);
float hum = dht.readHumidity();
float temp = dht.readTemperature();
if (isnan(hum) || isnan(temp)) {
Serial.println("Ошибка чтения DHT22");
return;
}
// Serial Monitor
Serial.print("Humidity: ");
Serial.print(hum);
Serial.print(" %, Temp: ");
Serial.print(temp);
Serial.println(" °C");
// LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temp);
lcd.print(" ");
lcd.print((char)223); // символ градуса
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Hum: ");
lcd.print(hum);
lcd.print(" %");
}
Особенности реализации
- I2C-дисплей требует всего 4 провода вместо 6+ при параллельном подключении.
- DHT22 опрашивается не чаще раза в 2 секунды (ограничение датчика).
- Код выводит данные и в Serial Monitor, и на LCD одновременно.
- Проект является базой для автоматизации террариума, серверной, холодильника и т.д.
Схема (Fritzing)
Файл схемы: schema_UcHE1qRu2t.fzz
Производственный процесс
- Бесшовная I2C-интеграция Arduino и Raspberry Pi 2 для IoT-проектов с датчиками
- Панель управления полётным симулятором 2020 на Arduino Nano: LCD и CDI-дисплеи
- Высокоскоростная фотография капель воды на Arduino Nano — DIY-триггер для вспышки
- Логгер температуры и влажности на Arduino с DHT11 и Ethernet Shield
- Интерактивный HMI-проект на Nextion с Arduino Mega и датчиками
- Вывод изображений на 1.17-дюймовый TFT LCD с Arduino UNO
- Вывод данных BME280 (температура, влажность, давление) на сенсорный экран Nextion
- Самодельный осциллограф на Arduino Nano (10 Гц – 50 кГц) с ЖК-дисплеем 128×64
- Модуль GPS u-blox LEA-6H 02: Интеграция с Arduino и Python
- Надёжные будильник на DS1302 RTC и Arduino UNO — сборка и код