● 4.1. Подключение датчика влажности и температуры DHT11 (DHT22)

Опубликовано: 23.01.2018

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

Датчики являются основой любого "умного" дома. Независимо от индивидуальных требований и перечня задач, которые должна решать система в целом, именно датчики обеспечивают необходимую степень автоматизации и передают другим устройствам сигнал о необходимости включения или выключения в определенный момент. Правильный выбор данных приборов становится основой работоспособности и функциональности "умного" дома. В набор " ИНТЕРНЕТ ВЕЩЕЙ ДЛЯ УМНОГО ДОМА" включены следующие датчики:

•    датчика температуры DS18B20;
•    датчик влажности DHT22;
•    датчик увлажненности почвы;
•    датчик воды;
•    датчик огня;
•    датчик пропана;
•    датчик движения.

В следующих главах мы рассмотрим подключение данных датчиков к контроллерам Arduino Mega и к модулю NodeMcu ESP8266, а также отправку данных с этих датчиков в сервис Blynk для возможности мониторинга данных датчиков на экране смартфона или телефона.

4.1. Подключение датчика влажности и температуры DHT11 (DHT22)

В повседневной жизни влажность выступает немаловажным параметром, от степени влажности воздуха немало зависит наше самочувствие. Особенно чувствительными к влажности являются метеозависимые люди, а также люди, страдающие гипертонической болезнью, бронхиальной астмой, заболеваниями сердечно-сосудистой системы. При высокой сухости воздуха даже здоровые люди ощущают дискомфорт, сонливость, зуд и раздражение кожных покровов. Часто сухой воздух может спровоцировать заболевания дыхательной системы, начиная с ОРЗ и ОРВИ, и заканчивая даже пневмонией.
Для измерения влажности воздуха умного дома в набор включен модуль датчика влажности и температуры DHT22 (рис. 4.1), который в отличие самого популярного датчика влажности DHT11 измеряет весь диапазон относительной влажности воздуха (0%...100%) и работает при отрицательных температурах(40~80℃).

dht22

 Рис. 4.1. Модуль датчика влажности и температуры DHT22

Плата модуля содержит основные компоненты: датчик температуры и относительной влажности DHT22 (рис. 4.2) в белом корпусе, светодиод индикации питания и вилка соединителя. Внутри DHT22 небольшая плата с компонентами: емкостным датчиком влажности, терморезистором, имеющим отрицательную характеристику и микроконтроллером.


 
Рис. 4.2. Датчик DH22

Изготовитель вносит в память МК таблицу корректировки измерений каждого экземпляра для повышения точности работы. Данные модуля передаются в цифровом виде по однопроводному интерфейсу.
Рассмотрим подключение модуля датчика влажности и температуры DHT22 к плате Arduino Mega и модулю NodeMcu ESP8266.

4.1.1. Подключение датчика DHT22 к плате Arduino Mega.

Для подключение модуля датчика влажности и температуры DHT22 к плате Arduino Mega используется однопроводной интерфейс. Питание для датчика берем также с платы Arduino. Для удобного подключения к плате Arduino Mega лучше всего использовать плату расширения MEGA Sensor Shield. Схема соединений представлена на рис. 4.3.
 
подключение dht22
Рис. 4.3. Схема подключений DHT22 к Arduino Mega

Для считывания данных датчика DTH22 с помощью Arduino, существует готовая библиотека DHT. Для её установки необходимо скопировать папку с файлами библиотеки  в директорию libraries своего Arduino IDE.
Загрузим на плату Arduino Mega скетч получения данных с датчика DHT11 и вывода в последовательный порт Arduino.  Получение данных влажности оформим в виде отдельной процедуры get_data_humidity(). Содержимое скетча представлено в листинге 4.1.
Листинг 4.1

// подключение библиотеки DTH
#include "DHT.h"
// константы
#define DHTPIN 22           // пин подключения контакта DATA
#define DHTTYPE DHT22      // датчик DHT 22 
#define INTERVAL_GET_DATA 2000  // интервала измерений, мс
// создание экземпляра объекта DHT
DHT dht(DHTPIN, DHTTYPE);
// переменная для интервала измерений 
unsigned long millis_int1=0;

void setup() {
   Serial.begin(9600);  // запуск последовательного порта
   dht.begin();         // запуск DHT       
}

void loop() {
   if(millis()-millis_int1 >= INTERVAL_GET_DATA) {
      // получение данных c DHT11
      int humidity = get_data_humidity();
      // вывод в монитор последовательного порта
      Serial.print("humidity=");
      Serial.println(humidity);
      // запуск отсчета интервала
      millis_int1=millis();
   }
}

int get_data_humidity() {
   int h = dht.readHumidity();
   return h;
}



Загрузим скетч на плату Arduino Mega, откроем монитор последовательного порта и видим вывод данных, получаемых с датчика влажности и температуры DHT22 (рис. 4.4).
 


Рис. 4.4. Вывод данных DHT22 в монитор последовательного порта

Скачать данный скетч можно на сайте www.arduino-kit.ru по ссылке.

4.1.2. Подключение датчика DHT22 к модулю NodeMcu ESP8266

Теперь рассмотрим подключение датчика DHT22 к модулю NodeMcu ESP8266. Схема соединений представлена на рис. 4.5.


 
Рис. 4.5. Схема подключений DHT22 к NodeMcu ESP8266

Для считывания данных датчика DTH22 с помощью ESP8266, существует готовая библиотека DHT. Заметим, что эта библиотека именно для ESP8266, библиотека для Arduino не подходит. Содержимое скетча представлено в листинге 4.2.
Листинг 4.2

// подключение библиотеки DTH
#include "DHT.h"
// константы
#define DHTPIN 4           // пин (D2) подключения контакта DATA
#define DHTTYPE DHT22      // датчик DHT 22 
#define INTERVAL_GET_DATA 2000  // интервала измерений, мс
// создание экземпляра объекта DHT
DHT dht(DHTPIN, DHTTYPE);
// переменная для интервала измерений 
unsigned long millis_int1=0;

void setup() {
   Serial.begin(9600);  // запуск последовательного порта
   dht.begin();         // запуск DHT       
}

void loop() {
   if(millis()-millis_int1 >= INTERVAL_GET_DATA) {
      // получение данных c DHT11
      int humidity = get_data_humidity();
      // вывод в монитор последовательного порта
      Serial.print("humidity=");
      Serial.println(humidity);
      // запуск отсчета интервала
      millis_int1=millis();
   }
}

int get_data_humidity() {
   int h = dht.readHumidity();
   return h;
}



Загрузим скетч на модуль NodeMcu ESP8266, откроем монитор последовательного порта и видим вывод данных, получаемых с датчика DHT22 (рис. 4.6)


 
Рис. 4.6. Вывод данных DHT22 в монитор последовательного порта

Скачать данный скетч можно на сайте www.arduino-kit.ru по ссылке .

Главное меню

Каталог

Полезные ссылки

Цена
от
до