Цифровой датчик температуры и влажности DHT11, DHT22 (Trema-модуль)

В линейке trema-модулей есть три датчика температуры и влажности:

В этой статье, рассматриваются датчики DHT. С информацией о датчике AM2320 можно ознакомиться в разделе Wiki - AM2320.

Общие сведения:

Модули построены на базе сенсоров DHT11 и DHT22, точность показаний последнего значительно выше первого.

Видео:

Спецификация:

Параметры DHT11 DHT22 Единицы
Питание 3,3 ... 5 3,3 ... 5 В
Потребляемый ток 100 50 мкА
Потребляемый ток 2,5 1,5 мА
Диапазон измеряемых температур 0 ... 50 -40 ... 80 °C
Максимальная погрешность ±2 ±1 °C
Разрешение 1,0 0,1 °C
Диапазон измеряемой влажности 20 ... 90 0 ... 99,9 %RH
Максимальная погрешность ±4 ±5 %RH
Разрешение 1,0 0,1 %RH
Минимальное время между опросами 2 2 сек.
Габариты 30x30 30x30 мм
Вес 4 4 гр.

Все модули линейки "Trema" выполнены в одном формате

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

К одной плате Arduino можно подключить несколько модулей, как к цифровым, так и к аналоговым выводам. На одном выводе может находиться только один модуль.

В комплекте имеется кабель для быстрого и удобного подключения к Trema Shield

Модуль удобно подключать 3 способами, в зависимости от ситуации:

Способ - 1 :  Используя проводной шлейф и Piranha UNO

Используя провода «Папа — Мама», подключаем  напрямую к контроллеру Piranha UNO

Способ - 2 :  Используя Trema Set Shield

Модуль можно подключить к любому из цифровых или аналоговых входов Trema Set Shield.

Способ - 3 :  Используя проводной шлейф и Shield

Используя 3-х проводной шлейф, к  Trema Shield, Trema-Power Shield, Motor Shield, Trema Shield NANO и тд.

Питание:

Входное напряжение питания от 3,3 до 5 В постоянного тока, подаётся на выводы Vcc (V) и GND (G).

Подробнее о модулях:

Для работы с модулями, предлагаем воспользоваться библиотекой iarduino_DHT.

Подробнее про установку библиотеки читайте в нашей инструкции..

Примеры:

Получение данных от одного модуля DHT, подключённого к цифровому выводу 4.

#include <iarduino_DHT.h> // Подключаем библиотеку для работы с датчиком DHT
iarduino_DHT sensor(4);   // Объявляем объект, указывая номер вывода, к которому подключён модуль
                          // СКЕТЧ РАБОТАЕТ, КАК С МОДУЛЕМ DHT-11, ТАК И С МОДУЛЕМ DHT-22.
void setup(){
  Serial.begin(9600);     // Инициируем передачу данных в монитор последовательного порта, на скорости 9600 бод
  delay(1000);            // Приостанавливаем выполнение скетча на 1 секунду, для перехода датчика в активное состояние
}
void loop(){                 Serial.print  ("CEHCOP B KOMHATE: ");
  switch(sensor.read()){  // Читаем показания датчика
    case DHT_OK:             Serial.println((String) sensor.hum + "% - " + sensor.tem + "*C"); break;
    case DHT_ERROR_CHECKSUM: Serial.println("HE PABEHCTBO KC");                                break;
    case DHT_ERROR_DATA:     Serial.println("OTBET HE COOTBETCTB. CEHCOPAM 'DHT'");            break;
    case DHT_ERROR_NO_REPLY: Serial.println("HET OTBETA");                                     break;
    default:                 Serial.println("ERROR");                                          break;
  } delay(2000);          // Приостанавливаем выполнение скетча на 2 секунды, между выводами показаний
}

Результат работы скетча, для модуля DHT11:

Результат работы скетча, для модуля DHT22:

Получение данных от двух модулей (подключённых к выводам 3 и 4):

#include <iarduino_DHT.h> // Подключаем библиотеку для работы с датчиком DHT
iarduino_DHT sensor1(3);  // Объявляем объект sensor1, указывая номер вывода, к которому подключён 1 модуль
iarduino_DHT sensor2(4);  // Объявляем объект sensor2, указывая номер вывода, к которому подключён 2 модуль
                          // МОЖНО ИСПОЛЬЗОВАТЬ КАК ОДИНАКОВЫЕ, ТАК И РАЗНЫЕ МОДУЛИ
void setup(){
  Serial.begin(9600);     // Инициируем передачу данных в монитор последовательного порта, на скорости 9600 бод
  delay(1000);            // Приостанавливаем выполнение скетча на 1 секунду, для перехода датчика в активное состояние
}
void loop(){                 Serial.print  ("CEHCOP B KOMHATE: ");
  switch(sensor1.read()){ // Читаем показания 1 датчика
    case DHT_OK:             Serial.println((String) sensor1.hum + "% - " + sensor1.tem + "*C"); break;
    case DHT_ERROR_CHECKSUM: Serial.println("HE PABEHCTBO KC");                                  break;
    case DHT_ERROR_DATA:     Serial.println("OTBET HE COOTBETCTB. CEHCOPAM 'DHT'");              break;
    case DHT_ERROR_NO_REPLY: Serial.println("HET OTBETA");                                       break;
    default:                 Serial.println("ERROR");                                            break;
  }                          Serial.print  ("CEHCOP HA KYXHE:  ");
  switch(sensor2.read()){ // Читаем показания 2 датчика
    case DHT_OK:             Serial.println((String) sensor2.hum + "% - " + sensor2.tem + "*C"); break;
    case DHT_ERROR_CHECKSUM: Serial.println("HE PABEHCTBO KC");                                  break;
    case DHT_ERROR_DATA:     Serial.println("OTBET HE COOTBETCTB. CEHCOPAM 'DHT'");              break;
    case DHT_ERROR_NO_REPLY: Serial.println("HET OTBETA");                                       break;
    default:                 Serial.println("ERROR");                                            break;
  } delay(2000);          // Приостанавливаем выполнение скетча на 2 секунды, между выводами показаний
}

Результат работы скетча:

Описание основных функций библиотеки:

Подключение библиотеки:

#include <iarduino_DHT.h>          // Подключаем библиотеку
iarduino_DHT sensor( №_ВЫВОДА );   // Объявляем объект sensor, для работы с модулем, указывая номер вывода, к которому подключён модуль

Функция read();

  • Назначение: Чтение показаний модуля
  • Синтаксис: read();
  • Параметры: Нет
  • Возвращаемые значения:
  • Примечание: Если функция вернула значение DHT_OK, то корректные значения можно прочитать из переменных hum и tem.
  • Пример:
if(sensor.read()==DHT_OK){ Serial.println(sensor.hum); Serial.println(sensor.tem); }

Переменная hum

  • Тип: float
  • Значение: Полученные показания влажности окружающей среды

Переменная tem

  • Тип: float
  • Значение: Полученные показания температуры окружающей среды

Применение:

  • Метеостанции
  • Проекты климат-контроля

Ссылки:

Обсуждение