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

DTH11 Arduino ► датчик температуры и влажности воздуха. Рассмотрим, как подключить датчик к Ардуино с выводом показаний на монитор порта и LCD дисплей.

Расскажем, как подключить датчик температуры и влажности к Ардуино, как получить данные с датчика а мониторе порта. На этом занятии мы познакомимся с цифровым датчиком температуры и влажности DTH11 с трех пиновым разъемом стандарта 2.54 мм. Рассмотрим устройство и назначение датчиков влажности и температуры. Научимся добавлять библиотеки для датчиков и плат расширений Arduino Nano.

Устройство датчика температуры DTH11 Ардуино

На занятии мы будем использовать датчик DHT11, смонтированный на плате. DHT11 — это цифровой датчик, состоящий из термистора и емкостного датчика влажности. Наряду с невысокой стоимостью DHT11 имеет следующие характеристики: питание осуществляется от 3,5-5V, определение температуры от 0 до 50 градусов с точностью 2 град, определение влажности от 20% до 95% с 5% точностью.

Устройство датчика температуры и влажности (dht11)
Устройство датчика температуры и влажности (dht11) для Ардуино

Модуль DHT11 оборудован трех пиновым разъемом и подключается по схеме:

G — Подключается к выводу GND
V — Подключается к выводу +5V
S — Подключается к цифровому выводу ( Pin2 )

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

Емкостной датчик влажности — это конденсатор с переменной емкостью, который содержит токопроводящие обкладки из медной фольги на текстолите. Этот конденсатор заключен в герметичный чехол, поверх которого расположен влагопоглощающий слой. При попадании частиц воды на этот слой, меняется его диэлектрическая проницаемость, что приводит к изменению емкости конденсатора.

Как подключить DHT11 к Ардуино

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • модуль DHT11;
  • макетная плата;
  • 2 светодиода и 2 резистора на 220 Ом;
  • провода «папа-папа» и «папа-мама».

На этом занятии мы приведем для примера два скетча. Первый скетч будет отсылать данные с модуля DHT11 на последовательный монитор порта  компьютера. Во втором скетче мы будем использовать вывод данных на жк дисплей — LCD 1602 модуль. LCD модуль можно будет использовать в дальнейшем в любом автономном устройстве, например, при конструировании «Домашней метеостанции» или «Умной теплицы».

Ардуино. Датчик температуры и влажности dht11
Схема. Датчик DHT11 подключение к Ардуино

Необходимо установить библиотеку для работы с датчиком DHT11. Для этого необходимо скачать архив по ссылке, извлечь папку «DHT11» и переместить ее в раздел «C:\Program Files\Arduino\libraries» на своем компьютере. При использовании датчика DHT11, необходимо подключать библиотеку в скетче. Загрузите следующую программу после подключения датчика температуры воздуха DHT11 к Ардуино.

Скетч термодатчика DHT11 для Ардуино

#include <DHT.h>      // подключаем библиотеку для датчика
DHT dht(2, DHT11);  // сообщаем на каком порту будет датчик

void setup() {
   dht.begin();                // запускаем датчик DHT11
   Serial.begin(9600);   // подключаем монитор порта
}

void loop() {
   // считываем температуру (t) и влажность (h)
   float h = dht.readHumidity();
   float t = dht.readTemperature();

   // выводим температуру (t) и влажность (h) на монитор порта
   Serial.print("Humidity: ");
   Serial.println(h);
   Serial.print("Temperature: ");
   Serial.println(t);
}

Пояснения к коду:

  1. переменные «h» и «t» являются типом данных float, которая служит для хранения чисел с десятичным разделителем (dht11 подключение к ардуино);
  2. команда Serial.print()выводит информацию на порт без переноса строки, команда Serial.println()выводит информацию на порт с переносом строки.

Скетч DHT11 и дисплея LCD 1602 Arduino

#include <Wire.h>                       // библиотека для протокола I2C 
#include <LiquidCrystal_I2C.h> // подключаем библиотеку для LCD 1602
#include <DHT.h>                         // подключаем библиотеку для датчика

LiquidCrystal_I2C LCD(0x27,16,2);  // присваиваем имя LCD для дисплея
DHT dht(2, DHT11);                          // сообщаем на каком порту будет датчик

void setup() {
   LCD.init();            // инициализация LCD дисплея
   LCD.backlight();  // включение подсветки дисплея
   dht.begin();         // запускаем датчик DHT11
}

void loop() {
   // считываем температуру (t) и влажность (h)
   float h = dht.readHumidity();
   float t = dht.readTemperature();

   // выводим температуру (t) и влажность (h) на жк дисплей
   LCD.setCursor(0,0);
   LCD.print("Humidity: ");
   LCD.print(h);

   LCD.setCursor(0,1);
   LCD.print("Temperature: ");
   LCD.print(t);

   delay(1000);
   LCD.clear();
}

Пояснения к коду:

  1. команда LCD.clear() в программе очищает экран дисплея от надписей для вывода новых значений с сенсора температуры DHT11 Arduino.

Заключение. Мы рассмотрели в этом обзоре подключение датчика DHT11 к Arduino Uno. Представили несколько примеров программ для вывода информации с цифрового датчика на аппаратный монитор порта Arduino IDE и дисплей 1602. С датчиком DHT11 существует множество проектов метеостанций на Ардуино, которые вы сможете сделать самостоятельно, внимательно изучив информацию на этой странице.

1 Star2 Stars3 Stars4 Stars5 Stars (54 votes, average: 4,81 out of 5)
Загрузка...

Похожие записи по теме:

9 комментариев для “Пример: Датчик температуры и влажности Ардуино DHT11”

  1. Внимание! Обязательно соблюдайте полярность подключения. В случае неправильного подключения датчик почти неминуемо выйдет из строя. Кроме того, при неправильном подключении пластиковый корпус датчик очень сильно нагреется и может обжечь вам руки. Будьте внимательны, не торопитесь!

  2. Скажите пожалуйста, а как вы реализовали вот это:
    // считываем температуру (t) и влажность (h) каждые 250 мс
    Как реализовано считывание через 250 мс, а не через 500 например?

    1. Это время (приблизительно 250 мс) необходимо для выполнения всех операций в программе. Если необходимо выводит данные с датчика Ардуино DHT11 через 500 мс, то следует сделать в скетче задержку.

  3. Подскажите пожалуйста:
    А как можно сделать так, чтобы когда предположим, 30 градусов включался светодиод

    1. Поставить условие, когда температура на DHT11 станет больше 30, включить светодиод: if (t>=30) {digitalWrite(13,1);}

  4. Подскажите!!!! Что делать если пишет: Arduino: 1.8.7 (Windows 7), Плата:»Arduino/Genuino Uno»

    In file included from C:\Users\User\Documents\Arduino\libraries\DHT-sensor-library-master\DHT_U.cpp:22:0:

    C:\Users\User\Documents\Arduino\libraries\DHT-sensor-library-master\DHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory

  5. СПАСИБО ! С ребятками своими самостоятельно пытаемся освоить эту шайтан машину, с помощью аллаха и интернета. ВСЁ ЗАВЕРТЕЛОСЬ )) вообщем доступно и понятно все нам разжевали СПАСИБО ЕЩЁ РАЗ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *