Инструкция по использованию датчика температуры DHT11 с Arduino

DHT11 — цифровой датчик температуры и влажности. Диапазон: 0–50°C (±2°C), 20–80% (±5%). 5 В, однопроводной протокол. Идеален для метеостанций, теплиц.

DHT11 датчик температуры влажности Arduino

Датчик температуры и влажности DHT11 — это удивительное устройство, которое позволяет измерять температуру и влажность в окружающей среде. Он прост в использовании, недорогой и идеально подходит для различных проектов, связанных с мониторингом окружающей среды. В этой подробной инструкции мы покажем вам, как подключить и использовать датчик DHT11 с платформой Arduino: от подготовки до готового кода, вывода на дисплей и идей для проектов. Готовы создать свою метеостанцию? Поехали!

Что такое DHT11?

DHT11 — цифровой датчик на базе терморезистора и ёмкостного гигрометра. Передаёт данные по однопроводному протоколу (1-Wire). Читает температуру и влажность каждые 1–2 секунды. Встроенный pull-up резистор (на модуле). Дешёвый, но точный для бытовых нужд.

Характеристики DHT11

  • Температура: 0–50°C, ±2°C
  • Влажность: 20–80%, ±5%
  • Питание: 3.3–5.5 В
  • Ток: 0.5–2.5 мА
  • Разрешение: 1°C, 1%
  • Частота опроса: не чаще 1 раза в секунду
  • Пины: VCC, DATA, GND (NC — не подключать)

Шаг 1: Подготовка материалов

Перед тем как начать, убедитесь, что у вас есть следующие материалы:

  • Плата Arduino (Uno, Nano, Mega и др.)
  • Датчик DHT11 (модуль с резистором)
  • Провода для подключения (Dupont)
  • Резистор 4.7–10 кОм (если без модуля)
  • Опционально: LCD 16×2, OLED, breadboard

Шаг 2: Подключение DHT11 к Arduino

Схема подключения DHT11 к Arduino

Подключите датчик DHT11 к плате Arduino следующим образом:

  • VCC → 5 В
  • GND → GND
  • DATA (OUT) → D4 (любой цифровой пин)
  • Если модуль без резистора: DATA → D4 через 10 кОм к VCC

Совет: используйте короткие провода (< 20 м), чтобы избежать помех.

Шаг 3: Установка библиотеки DHT

Для работы с датчиком DHT11 вам потребуется библиотека DHT от Adafruit.

  1. Откройте Arduino IDE
  2. Перейдите в меню «Скетч» → «Подключить библиотеку» → «Менеджер библиотек»
  3. В поисковой строке введите «DHT» и установите «DHT sensor library» от Adafruit
  4. Также установите «Adafruit Unified Sensor» (зависимость)

Шаг 4: Простой код — вывод в Serial Monitor

#include <DHT.h>
#define DHTPIN 4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  dht.begin();
  Serial.println("DHT11 готов!");
}

void loop() {
  delay(2000); // не чаще!
  float h = dht.readHumidity();
  float t = dht.readTemperature(); // °C
  // float f = dht.readTemperature(true); // °F

  if (isnan(h) || isnan(t)) {
    Serial.println("Ошибка чтения DHT11!");
    return;
  }

  Serial.print("Влажность: ");
  Serial.print(h);
  Serial.print("%\t");
  Serial.print("Температура: ");
  Serial.print(t);
  Serial.println("°C");
}
Инициализирует датчик DHT11 на пине 4.
Запускает последовательный порт на скорости 9600 бод.
Каждые 2 секунды считывает влажность и температуру в градусах Цельсия.
Проверяет корректность данных с помощью isnan().
Выводит значения температуры и влажности в Serial Monitor либо сообщение об ошибке чтения.

Шаг 5: Запуск и мониторинг

  1. Загрузите код на Arduino
  2. Откройте «Инструменты» → «Монитор порта» (9600 бод)
  3. Через 2 секунды увидите данные

Расширенный код: Вывод на LCD 16×2 (I2C)

Библиотека: LiquidCrystal_I2C

#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2); // адрес I2C

void setup() {
  lcd.init();
  lcd.backlight();
  dht.begin();
}

void loop() {
  delay(2000);
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("T: "); lcd.print(t); lcd.print((char)223); lcd.print("C");
  lcd.setCursor(0,1);
  lcd.print("H: "); lcd.print(h); lcd.print("%");
}
Инициализирует датчик DHT11 на пине 4 и LCD-дисплей 16×2 по I2C-адресу 0x27.
Каждые 2 секунды считывает температуру и влажность с датчика DHT11.
Очищает экран и выводит:
в первой строке температуру в градусах Цельсия,
во второй строке влажность в процентах.

Применение DHT11 в проектах

  • Метеостанция: DHT11 + BMP180 + OLED
  • Теплица: полив при влажности < 40%
  • Умный вентилятор: включение при T > 28°C
  • Логгер данных: запись на SD-карту
  • IoT: отправка в Blynk/ThingSpeak

Советы и частые ошибки

  • Не опрашивайте чаще 1 раза в секунду
  • Ошибка «NaN» — проверьте питание, pull-up, пины
  • Для точности: калибровка, DHT22 (лучше)
  • Длинные провода: используйте экранирование
  • Питание: стабильные 5 В, конденсатор 100 нФ

Заключение

Датчик DHT11 — отличный старт для мониторинга окружающей среды. Простое подключение, надёжная библиотека, множество применений. Начните с Serial, добавьте дисплей, реле, интернет. Ваша метеостанция или умная теплица ждёт!

Надеемся, что данная подробная инструкция была полезной для вас и вдохновит на создание собственных проектов с DHT11 и Arduino. Экспериментируйте, делитесь результатами! Удачи в творчестве!

FAQ — датчик температуры и влажности DHT11 для Arduino

Что такое DHT11 и как он работает?

DHT11 — цифровой датчик температуры и влажности. Он использует терморезистор и ёмкостный гигрометр, передаёт данные по однопроводному протоколу (1-Wire). Датчик считывает температуру и влажность каждые 1–2 секунды и выводит их в цифровом виде на пин DATA.

Какие характеристики имеет DHT11?

Температурный диапазон 0–50°C (±2°C), влажность 20–80% (±5%), питание 3.3–5.5 В, ток 0.5–2.5 мА, разрешение 1°C и 1%, частота опроса не чаще 1 раза в секунду.

Как подключить DHT11 к Arduino?

Подключение простое: VCC → 5 В, GND → GND, DATA → цифровой пин Arduino (например, D4). Если модуль без встроенного резистора, добавьте 10 кОм pull-up между DATA и VCC. Рекомендуется использовать короткие провода (<20 см) для минимизации помех.

Какие библиотеки нужны для работы с DHT11?

Для Arduino используйте библиотеку DHT sensor library от Adafruit и зависимость Adafruit Unified Sensor. Для вывода на дисплей 16×2 I2C пригодится библиотека LiquidCrystal_I2C.

Как правильно считывать данные с DHT11?

Не опрашивайте датчик чаще 1 раза в секунду. Используйте функции dht.readTemperature() и dht.readHumidity() из библиотеки DHT. Проверяйте на NaN, чтобы убедиться, что чтение прошло успешно.

Где можно применить DHT11 в проектах?

Метеостанции, теплицы, умные вентиляторы, логгеры данных на SD-карту, IoT-проекты с отправкой данных в Blynk или ThingSpeak, домашние системы мониторинга климата.

Какие советы помогут при использовании DHT11?

Используйте стабильное питание 5 В, при необходимости добавьте конденсатор 100 нФ. Длинные провода экранируйте. При ошибках NaN проверяйте питание, подключение пина DATA и pull-up резистор. Для большей точности можно использовать DHT22.