В линейке trema-модулей есть три датчика температуры и влажности:
- Цифровой датчик температуры и влажности DHT11.
- Цифровой датчик температуры и влажности высокой точности DHT22.
- Цифровой датчик температуры и влажности AM2320 - I2C.
В этой статье, рассматриваются датчики 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(8000); // Приостанавливаем выполнение скетча на 8 секунд, между выводами показаний
}
Результат работы скетча, для модуля 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(8000); // Приостанавливаем выполнение скетча на 8 секунд, между выводами показаний
}
Результат работы скетча:

Описание основных функций библиотеки:
Подключение библиотеки:
#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
- Значение: Полученные показания температуры окружающей среды
Применение:
- Метеостанции
- Проекты климат-контроля

Обсуждение