Урок 29: Датчик температуры и влажности DHT11

1. Введение

Датчики DHT11 и DHT22 — популярные решения для измерения температуры и влажности в проектах Arduino (метеостанции, умный дом). DHT11 прост в использовании, недорогой, имеет цифровой выход и подходит для первых проектов.

Внешний вид датчика DHT11

2. Необходимое оборудование

Кол-во

Деталь

1

Плата Arduino UNO

1

Датчик DHT11

1

Перемычки

1

USB-кабель

3. Спецификация

Параметр

Значение

Напряжение питания

+5 В

Диапазон температур

0–50 °C, ±2 °C

Диапазон влажности

20–90 % RH, ±5 % RH

Интерфейс

Цифровой (однопроводный)

Длина передачи

до 20 м

4. Подключение

Схема подключения DHT11 к Arduino
  • VCC — 5V Arduino

  • GND — GND Arduino

  • DATA — цифровой пин 4 Arduino

5. Пример кода

Перед компиляцией кода установите библиотеку DHT11Lib (или DHT sensor library от Adafruit).

dht11_temp_humidity_sensor.ino
//////////////////////////////////////////////////////////
//DHT11

#include <dht11.h>
dht11 DHT;
#define DHT11_PIN 4

void setup() {
  Serial.begin(9600);
  Serial.println("DHT TEST PROGRAM ");
  Serial.print("LIBRARY VERSION: ");
  Serial.println(DHT11LIB_VERSION);
  Serial.println();
  Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
}

void loop() {
   int chk;
   Serial.print("DHT11, \t");
   chk = DHT.read(DHT11_PIN);  // ЧТЕНИЕ ДАННЫХ
   switch (chk) {
    case DHTLIB_OK:
      Serial.print("OK,\t");
      break;
    case DHTLIB_ERROR_CHECKSUM:
      Serial.print("Checksum error,\t");
      break;
    case DHTLIB_ERROR_TIMEOUT:
      Serial.print("Time out error,\t");
      break;
    default:
      Serial.print("Unknown error,\t");
      break;
  }
   // ВЫВОД ДАННЫХ
   Serial.print(DHT.humidity, 1);
   Serial.print(",\t");
   Serial.println(DHT.temperature, 1);
   delay(1000);
}
//////////////////////////////////////////////////////////

6. Результат теста

После подключения и загрузки кода на плату откройте серийный монитор (9600 бод). Вы увидите текущие показания температуры и влажности.

7. Частые ошибки

  • Нет данных — проверьте подключение DATA к правильному пину.

  • Ошибка контрольной суммы — используйте короткие провода, избегайте помех.

  • Значения не меняются — датчик неисправен или некачественный контакт.

8. Практические задачи

  • Метеостанция с выводом на LCD или OLED.

  • Автоматизация вентиляции по влажности.

  • Логирование температуры и влажности.

9. Идеи для расширения

  • Использование DHT22 для большей точности.

  • Передача данных по Wi-Fi/Bluetooth.

  • Построение графиков в Processing или на ПК.


Подробнее о DHT11: https://randomnerdtutorials.com/arduino-dht11-dht22-temperature-humidity-sensor/