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