Найти в Дзене
Dima Lab51

Arduino: DHT11 (DHT22)- подключение датчика температуры и влажности

Вступление: /*Всем привет! Сегодня мы с вами рассмотрим подключение к Arduino датчика температуры и влажности DHT11 (DHT22)*/ /*Датчик DHT11 - цифровой датчик влажности и температуры, состоящий из термистора и емкостного датчика влажности. Данный датчик содержит в себе АЦП (Аналого-цифровой преобразователь) для преобразования аналоговых значений влажности и температуры */ /*Датчики бывают двух видов: как отдельный датчик в виде пластикового корпуса с металлическими контактами или как готовый модуль с датчиком и припаянными элементами обвязки (штырьками) (Второй вариант датчиков удобен в подключении и рекомендуется для начинающих)*/ /*Характеристики Датчиков*/ DHT11 *- Потребляемый ток – 2,5 мА (максимальное значение при преобразовании данных);
*- Измеряет влажность в диапазоне от 20% до 80%. Погрешность может составлять до 5%;
*- Применяется при измерении температуры в интервале от 0 до 50 градусов (точность – 2%);
*- Габаритные размеры: 15,5 мм длина; 12 мм широта; 5,5 мм высота;
*- П
Оглавление

Вступление:

/*Всем привет! Сегодня мы с вами рассмотрим подключение к Arduino датчика температуры и влажности DHT11 (DHT22)*/

DHT11 (1-ый вид датчиков)
DHT11 (1-ый вид датчиков)

/*Датчик DHT11 - цифровой датчик влажности и температуры, состоящий из термистора и емкостного датчика влажности. Данный датчик содержит в себе АЦП (Аналого-цифровой преобразователь) для преобразования аналоговых значений влажности и температуры */

/*Датчики бывают двух видов: как отдельный датчик в виде пластикового корпуса с металлическими контактами или как готовый модуль с датчиком и припаянными элементами обвязки (штырьками) (Второй вариант датчиков удобен в подключении и рекомендуется для начинающих)*/

/*Характеристики Датчиков*/

DHT11

*- Потребляемый ток – 2,5 мА (максимальное значение при преобразовании данных);
*- Измеряет влажность в диапазоне от 20% до 80%. Погрешность может составлять до 5%;
*- Применяется при измерении температуры в интервале от 0 до 50 градусов (точность – 2%);
*- Габаритные размеры: 15,5 мм длина; 12 мм широта; 5,5 мм высота;
*- Питание – от 3 до 5 Вольт;
*- Одно измерение в единицу времени (секунду). То есть, частота составляет 1 Гц;
*- 4 коннектора. Между соседними расстояние в 0,1;

DHT22

*- Питание – от 3 до 5 Вольт;
*- Максимальный ток при преобразовании – 2,5 мА;
*- Способен измерять влажность в интервале от 0% до 100%. Точность измерений колеблется от 2% до 5%;
*- Минимальная измеряемая температура – минус 40, максимальная – 125 градусов по Цельсию (точность измерений – 0,5);
*- Устройство способно совершать одно измерение за 2 секунд. Частота – до 0,5 ГЦ;
*- Габаритные размеры: 15,1 мм длина; 25 мм широта; 5,5 мм высота;
*- Присутствует 4 коннектора. Расстояние между соседними – 0,1;

Комплектующие:

  • Arduino UNO (Nano, Pro mini и т.д.);
  • DHT11 (DHT22);
  • Провода;
  • Компьютер/Ноутбук (с Arduino IDE);

Подключение к Arduino:

  • Arduino (5V) ==> DHT11 (VCC) (Красный провод/RED);
  • Arduino (2) ==> DHT11 (Data Pin) (Синий провод/BLUE);
  • Arduino (GND) ==> DHT11 (GND) (Чёрный провод/BLACK);
  • Arduino (5V) ==> DHT22 (VCC) (Красный провод/RED);
  • Arduino (8) ==> DHT22 (Data Pin) (Жёлтый провод/YELLOW);
  • Arduino (GND) ==> DHT22 (GND) (Чёрный провод/BLACK);

/*Для работы с DHT11 (DHT22) Вам понадобиться библиотека Arduino «DHT.h»*/

Программа (Скетч):

#include <DHT.h>
DHT dht(2, DHT11);
void setup() {
dht.begin();
Serial.begin(9600);
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
Serial.print("Влажность: ");
Serial.println(h);
Serial.print("Температура: ");
Serial.println(t);
delay(1000);
}
DHT11 Program
DHT11 Program

Разбор Программы (Скетча):

/*В данном фрагменте скетча подключается библиотека (с помощью #include) и инициализируется пин подключения DHT к Arduino*/

/*!!!Обратите внимание на подключение провода Data Pin на схеме и в скетче!!! Они должны совпадать! Т.е. к 2 выходы на Arduino UNO указываем 2 выход в скетче! Иначе, Arduino не узнает с какого пина читать данные!*/

#include <DHT.h>
DHT dht(2, DHT11);

/*Здесь описана функция void setup(), т.е. которая выполняется всего один раз в начале работы программы. Включается DHT с помощью dht.begin(); И задаётся скорость работы последовательного порта Serial.begin(9600); (обычно 9600)*/

void setup() {
dht.begin();
Serial.begin(9600);
}

/*void loop() я разделил не две части для приятной визуализации скетча. Это разделение не влияет на работу программы.
В самом начале задаются переменный h и t (влажности и температуры) вещественного типа float. А далее идёт уже всем знакомы и лёгкий способ вывода данных в com-порт Arduino IDE с помощью Serial.print() и Serial.println(). Для доп. информации: print и println отличаются тем, что println делает переход на новую строку*/

void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
Serial.print("Влажность: ");
Serial.println(h);
Serial.print("Температура: ");
Serial.println(t);
delay(1000);
}

Результат выполнения программы:

com-порт Arduino1
com-порт Arduino1

(А теперь подуем на DHT):

com-порт Arduino2
com-порт Arduino2