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

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

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

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

На занятии мы будем использовать датчик 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 модуль). 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);               // подключаем монитор порта
   Serial.println("DHT TEST"); // пишем один раз
}

void loop() {

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

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

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

  1. Процедура void setup() выполняется один раз, поэтому при открытии монитора порта вы увидите надпись «DHT TEST» только один раз;
  2. В скетче мы не задавали переменные «h» и «t» с помощью операторов int, как раньше — все это уже предусмотрено в библиотеке датчика DHT.h.
  3. Команда Serial.print()выводит информацию на порт без переноса строки, команда Serial.println()выводит информацию на порт с переносом строки.
1 Star2 Stars3 Stars4 Stars5 Stars (54 votes, average: 4,81 out of 5)
Загрузка...

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

  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

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

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