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

ФОТО редактируется

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

В этой статье, рассматриваются датчики DHT.

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

Модули DHT11 и DHT22 построены на базе сенсоров 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 гр.

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

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

Питание:

Входное напряжение питания от 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
  • Значение: Полученные показания температуры окружающей среды

Применение:

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

Ссылки:

Обсуждение

Присоединяйся

На главную