Датчики температуры и влажности dht11 и dht22

Программная часть

Чтобы написать программу для отработки, нужно скачать с Github библиотеки DHT для датчика и LiquidCrystal_I2C для дисплея. Загрузите, разархивируйте, измените название библиотеки для сенсора на «DHT» и перенесите папки с файлами в директорию на диске \Arduino\libraries. Тоже самое, только без переименования, сделайте для библиотеки для LCD-дисплея, если вы подключили по схеме и его.

Теперь сам скетч. Написан он для вывода замеров на экран подключенного дисплея. Вносите соответствующие правки, если у вас в схеме применялись другие элементы или задействованы другие разъемы интерфейса входа/выхода. Посмотреть его можно здесь.

Обзор аппаратного обеспечения

Теперь давайте перейдем к более интересным вещам. Давайте разберем оба датчика DHT11 и DHT22/AM2302 и посмотрим, что внутри.

Корпус состоит из двух частей, поэтому для его вскрытия достаточно просто достать острый нож и разделить корпус на части. Внутри корпуса на стороне датчиков находятся датчик влажности и датчик температуры NTC (термистор).

Рисунок 2 – Внутренности датчиков температуры и влажности DHT11 DHT22/AM2302

Чувствительный к влажности компонент, который используется, разумеется, для измерения влажности, имеет два электрода с влагоудерживающей подложкой (обычно соль или проводящий пластиковый полимер), зажатой между ними. По мере поглощения водяного пара подложка высвобождает ионы, что, в свою очередь, увеличивает проводимость между электродами. Изменение сопротивления между двумя электродами пропорционально относительной влажности. Более высокая относительная влажность уменьшает сопротивление между электродами, в то время как более низкая относительная влажность увеличивает это сопротивление.

Рисунок 3 – Внутренняя структура датчика влажности в DHT11 и DHT22

Кроме того, в этих датчиках для измерения температуры имеется датчик температуры NTC (термистор). Термистор – это терморезистор – резистор, который меняет свое сопротивление в зависимости от температуры. Технически все резисторы являются термисторами – их сопротивление слегка изменяется в зависимости от температуры, но обычно это изменение очень мало и его трудно измерить.

Термисторы сделаны так, чтобы их сопротивление резко изменялось при изменении температуры, и изменение на один градус может составлять 100 Ом или более! Термин «NTC» означает «Negative Temperature Coefficient» (отрицательный температурный коэффициент), что означает, что с ростом температуры сопротивление уменьшается.

Рисунок 4 – График зависимости сопротивления NTC термистора от температуры

С другой стороны имеется небольшая печатная плата с 8-разрядной микросхемой в корпусе SOIC-14. Эта микросхема измеряет и обрабатывает аналоговый сигнал с сохраненными калибровочными коэффициентами, выполняет аналого-цифровое преобразование и выдает цифровой сигнал с данными о температуре и влажности.

3Считывание данных с сенсора DHT11 при помощи Arduino

Давайте пойдём таким путём: скачаем библиотеку для датчика DHT11 (также приложил её в конце статьи, т.к. у обновлённой библиотеки изменились вызываемые функции), установим её стандартным способом (распаковав в директорию \libraries\ среды разработки для Arduino).

Напишем вот такой простенький скетч. Он будет выводить в последовательный порт компьютера каждые 2 секунды сообщения об относительной влажности и температуре, считанные с датчика DHT11.

#include <dht11.h> // подключаем библиотеку
dht11 sensor; // инициализация экземпляра датчика
#define DHT11PIN 8 // вывод 8 будет шиной DATA

void setup() {
  Serial.begin(9600);
}

void loop() {
  int chk = sensor.read(DHT11PIN);

  Serial.print("h=");
  Serial.print(sensor.humidity);
  Serial.print("%\t");

  Serial.print("t=");
  Serial.print(sensor.temperature);
  Serial.println("C");
  
  delay(2000);
}

Загрузим этот скетч в Arduino. Подключимся к Arduino с помощью монитора COM-порта и увидим следующее:

Данные о температуре и влажности, полученные с датчика DHT11

Видно, что данные и о влажности, и о температуре считываются и выводятся в терминалку.

DHT22 vs DHT11 (difference) Specifications:

Parameter DHT11 (RHT01) DHT22 (RHT03)
Relative Humidity Range 20 ~ 90% 0 ~ 100%
Relative Humidity Accuracy: ±5%RH ±2%RH
Temperature Accuracy: ±2°C ±0.5°C
Resolution 1%RH,1°C 0.1%RH,0.1°C
Repeatability ±1% ±1%
Long Term Stability ±1% per year ±0.5% per year
Operating Temperature Range 0 ~ 50°C -40 ~ 80°C
Power Supply: 3,3V ~ 5.5V 3.3 ~5.5V
Supply Current: 0.5mA ~ 2.5mA 1 ~ 1.5mA
Idle Supply Current: 100uA ~ 150uA 40 ~ 50uA
Max sampling period(Max device update rate). 1 second 2s
Manufacturer MaxDetect Technology Co. Ltd.

The data sheet indicates it can cope with a cable length of more than 20m.
For less than 20m a 5k pull-up is recommended (most breakout boards have this
pull up resistor built-in). If you use more than a 20m cable run then the
resistor is not defined and you have to find it experimentally — for a longer
cable, resistance increases, therefore you need more current to pull up the
voltage successfully, so you you will need a smaller pull-up resistor .

Note : The AM2302 is similar to the RHT03 but has a lower max.cable
length and lower max. supply (5.5V). Check the device you have AM2302 is made
by Aosong.

Warning:The serial protocol used is strictly
Single-Master-Slave only, meaning that each DHT11 you use has
to have a dedicated processor pin and this pin must be bi-directional i.e. can
be changed from input to output on the fly.

Пример кода (скетч) для дисплея “LCD2004” (интерфейс “I2C”) и Arduino:

Пример скетча для 20 символьного 4 строкового дисплея

Arduino

#include <Wire.h>
// библиотека для LCD I2C:
// https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
#include <LiquidCrystal_I2C.h>
// LCD адрес — 0x27 для 20 символьного 4 строкового дисплея
// назначение контактов на I2C LCD:
// addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // bl — backlight, blpol — полярность подсветки

void setup()
{
Serial.begin(9600); //

lcd.begin(20,4); // инициализация lcd 20 символьного 4 строкового дисплея, подсветка включена
delay(2000);
lcd.noBacklight(); // выключить подсветку
delay(2000);
lcd.backlight(); // включить подсветку

// нумерация позиции курсора для строки и символа начинается с 0
lcd.setCursor(0,0); // начало с символа 1 строка 1
lcd.print(«Char 1, Row 1»);
delay(1000);
lcd.setCursor(1,1); // начало с символа 2 строка 2
lcd.print(«Char 2, Row 2»);
delay(1000);
lcd.setCursor(2,2); // начало с символа 3 строка 3
lcd.print(«Char 3, Row 3»);
lcd.setCursor(3,3); // начало с символа 4 строка 4
delay(1000);
lcd.print(«Char 4, Row 4»);
delay(5000);
lcd.clear(); // очистка дисплея
lcd.setCursor(0,0);
lcd.print(«www.umnyjdomik.ru»);
lcd.setCursor(0,1);
lcd.print(«Start Serial Monitor»);
lcd.setCursor(0,2);
lcd.print(«Type chars on keyboard»);
}

void loop()
{
{
if (Serial.available()) {
delay(100); // задержка для получения всего сообщения
lcd.clear();
// чтение всех возможных символов
while (Serial.available() > 0) {
lcd.write(Serial.read()); // отображение каждого символа на дисплее LCD
}
}
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

#include <Wire.h>  
// библиотека для LCD I2C:
// https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
#include <LiquidCrystal_I2C.h>
//  LCD адрес — 0x27 для 20 символьного 4 строкового дисплея
// назначение контактов на I2C LCD:
//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol

LiquidCrystal_I2Clcd(0x27,2,1,,4,5,6,7,3,POSITIVE);// bl — backlight, blpol — полярность подсветки

voidsetup()

{

Serial.begin(9600);//

lcd.begin(20,4);// инициализация lcd 20 символьного 4 строкового дисплея, подсветка включена

delay(2000);

lcd.noBacklight();// выключить подсветку

delay(2000);

lcd.backlight();// включить подсветку

// нумерация позиции курсора для строки и символа начинается с 0  

lcd.setCursor(,);// начало с символа 1 строка 1

lcd.print(«Char 1, Row 1»);

delay(1000);

lcd.setCursor(1,1);// начало с символа 2 строка 2

lcd.print(«Char 2, Row 2»);

delay(1000);

lcd.setCursor(2,2);// начало с символа 3 строка 3

lcd.print(«Char 3, Row 3»);

lcd.setCursor(3,3);// начало с символа 4 строка 4

delay(1000);

lcd.print(«Char 4, Row 4»);

delay(5000);

lcd.clear();// очистка дисплея

lcd.setCursor(,);

lcd.print(«www.umnyjdomik.ru»);

lcd.setCursor(,1);

lcd.print(«Start Serial Monitor»);

lcd.setCursor(,2);

lcd.print(«Type chars on keyboard»);

}
 

voidloop()

{

{

if(Serial.available()){

delay(100);// задержка для получения всего сообщения

lcd.clear();

// чтение всех возможных символов

while(Serial.available()>){

lcd.write(Serial.read());// отображение каждого символа на дисплее LCD

}

}

}

}

Скетч для работы с датчиками DHT11 и DHT22 в Arduino

#include "DHT.h"
#define DHTPIN 2 // Тот самый номер пина, о котором упоминалось выше
// Одна из следующих строк закоментирована. Снимите комментарий, если подключаете датчик DHT11 к arduino
DHT dht(DHTPIN, DHT22); //Инициация датчика
//DHT dht(DHTPIN, DHT11);
void setup() {
  Serial.begin(9600);
  dht.begin();
}
void loop() {
  delay(2000); // 2 секунды задержки
  float h = dht.readHumidity(); //Измеряем влажность
  float t = dht.readTemperature(); //Измеряем температуру
  if (isnan(h) || isnan(t)) {  // Проверка. Если не удается считать показания, выводится «Ошибка считывания», и программа завершает работу
    Serial.println("Ошибка считывания");
    return;
  }
  Serial.print("Влажность: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Температура: ");
  Serial.print(t);
  Serial.println(" *C "); //Вывод показателей на экран
}

После загрузки скетча и подключения датчика, результат измерений можно посмотреть в окне монитора порта. Там будут выводиться значения температуры и влажности. Если что-то пошло не так, проверьте правильность подключения датчика, соответствие номера порта на плате Arduino и в скетче, надежность контактов.
Если все работает и датчик дает показания, можете провести эксперименты. Например, поместить датчик в более холодное место или подышать на него, отслеживая при этом изменения . Если при запотевании уровень влажности увеличивается, значит датчик работает исправно. Подуйте на него тонкой струйкой – влажность уменьшится и температура вернется в норму.

На этом этапе вы сможете заметить разницу между реальным значением температуры и показаниями датчика с ардуино. Точность DHT11 гораздо хуже точности DHT22, о чем мы уже говорили в этой статье. Если у вас есть оба датчика, подключите их к плате Arduino и сравните результаты. По моему опыту, в среднем расхождение составляет больше градуса. Учитывайте это, используя эти датчики в своих проектах.

Примеры работы для Arduino

Один датчик

Рассмотрим простой пример — подключения одного датчика.

Сенсор подключается к управляющей плате через один сигнальный пин.
При подключении к Arduino в компактном формфакторе, например Arduino Micro или Iskra Nano Pro, воспользуйтесь макетной платой и парочкой нажимных клеммников.

Между сигнальным проводом и питанием установите сопротивление 4,7 кОм.

При коммуникации сенсора со стандартными платами Arduino формата Rev3, Arduino Uno или Iskra Neo, используйте Troyka Slot Shield совместно с модулем подтяжки.

Код программы

Выведем температуру сенсора в Serial-порт.

simple.ino
// библиотека для работы с протоколом 1-Wire
#include <OneWire.h>
// библиотека для работы с датчиком DS18B20
#include <DallasTemperature.h>
 
// сигнальный провод датчика
#define ONE_WIRE_BUS 5
 
// создаём объект для работы с библиотекой OneWire
OneWire oneWire(ONE_WIRE_BUS);
 
// создадим объект для работы с библиотекой DallasTemperature
DallasTemperature sensor(&oneWire);
 
void setup(){
  // инициализируем работу Serial-порта
  Serial.begin(9600);
  // начинаем работу с датчиком
  sensor.begin();
  // устанавливаем разрешение датчика от 9 до 12 бит
  sensor.setResolution(12);
}
 
void loop(){
  // переменная для хранения температуры
  float temperature;
  // отправляем запрос на измерение температуры
  sensor.requestTemperatures();
  // считываем данные из регистра датчика
  temperature = sensor.getTempCByIndex();
  // выводим температуру в Serial-порт
  Serial.print("Temp C: ");
  Serial.println(temperature);
  // ждём одну секунду
  delay(1000);
}

Серия датчиков

Каждый сенсор DS18B20 хранит в своей памяти уникальный номер, такое решение позволяет подключить несколько датчиков к одному пину.

Добавим к предыдущем схемам подключения ещё по паре датчиков в параллель.

Код программы

Просканируем все устройства на шине и выведем температуру каждого сенсора отдельно в Serial-порт.

multipleSensors.ino
// библиотека для работы с протоколом 1-Wire
#include <OneWire.h>
// библиотека для работы с датчиком DS18B20
#include <DallasTemperature.h>
 
// сигнальный провод датчика
#define ONE_WIRE_BUS 5
 
// создаём объект для работы с библиотекой OneWire
OneWire oneWire(ONE_WIRE_BUS);
// создадим объект для работы с библиотекой DallasTemperature
DallasTemperature sensors(&oneWire);
// создаём указатель массив для хранения адресов датчиков
DeviceAddress *sensorsUnique;
// количество датчиков на шине
int countSensors;
 
// функция вывода адреса датчика
void printAddress(DeviceAddress deviceAddress){
  for (uint8_t i = ; i < 8; i++){
    if (deviceAddressi < 16) Serial.print("0");
    Serial.print(deviceAddressi, HEX);
  }
}
 
void setup(){
  // инициализируем работу Serial-порта
  Serial.begin(9600);
  // ожидаем открытия Serial-порта
  while(!Serial);
  // начинаем работу с датчиком
  sensors.begin();
  // выполняем поиск устройств на шине
  countSensors = sensors.getDeviceCount();
  Serial.print("Found sensors: ");
  Serial.println(countSensors);
  // выделяем память в динамическом массиве под количество обнаруженных сенсоров
  sensorsUnique = new DeviceAddresscountSensors;
 
  // определяем в каком режиме питания подключены сенсоры
  if (sensors.isParasitePowerMode()) {
    Serial.println("Mode power is Parasite");
  } else {
    Serial.println("Mode power is Normal");
  }
 
  // делаем запрос на получение адресов датчиков
  for (int i = ; i < countSensors; i++) {
    sensors.getAddress(sensorsUniquei, i);
  }
  // выводим полученные адреса
  for (int i = ; i < countSensors; i++) {
    Serial.print("Device ");
    Serial.print(i);
    Serial.print(" Address: ");
    printAddress(sensorsUniquei);
    Serial.println();
  }
  Serial.println();
  // устанавливаем разрешение всех датчиков в 12 бит
  for (int i = ; i < countSensors; i++) {
    sensors.setResolution(sensorsUniquei, 12);
  }
}
 
void loop(){
  // переменная для хранения температуры
  float temperature10;
  // отправляем запрос на измерение температуры всех сенсоров
  sensors.requestTemperatures();
  // считываем данные из регистра каждого датчика по очереди
  for (int i = ; i < countSensors; i++) {
    temperaturei = sensors.getTempCByIndex(i);
  }
  // выводим температуру в Serial-порт по каждому датчику
  for (int i = ; i < countSensors; i++) {
    Serial.print("Device ");
    Serial.print(i);
    Serial.print(" Temp C: ");
    Serial.print(temperaturei);
    Serial.println();
  }
  Serial.println();
  // ждём одну секунду
  delay(1000);
}

DHT11 против DHT22/AM2302

У нас есть две версии серии датчиков DHTxx. Они выглядят немного похоже и имеют одинаковую распиновку, но имеют разные характеристики. Вот подробности.

DHT22 является более дорогой версией, которая, очевидно, имеет лучшие характеристики. Диапазон измерения температуры составляет от -40°C до +80°C с точностью ±0,5 градуса, а диапазон температур DHT11 составляет от 0°C до 50°C с точностью ±2 градуса. Также датчик DHT22 имеет более широкий диапазон измерения влажности, от 0 до 100% с точностью 2-5%, в то время как диапазон измерения влажности DHT11 составляет от 20 до 80% с точностью 5%.

Сравнение спецификаций DHT11 и DHT22/AM2302
 
  DHT11 DHT22
Рабочее напряжение от 3 до 5 В от 3 до 5 В
Максимальный рабочий ток 2,5 мА макс 2,5 мА макс
Диапазон измерения влажности 20-80% / 5% 0-100% / 2-5%
Диапазон измерения температуры 0-50°C / ± 2°C от -40 до 80°C / ± 0,5°C
Частота выборки 1 Гц (чтение каждую секунду) 0,5 Гц (чтение каждые 2 секунды)
Размер корпуса 15,5 мм х 12 мм х 5,5 мм 15,1 мм х 25 мм х 7,7 мм
Преимущество Ультра низкая стоимость Более точный

Хотя DHT22/AM2302 более точен и работает в большем диапазоне температур и влажности; есть три вещи, в которых DHT11 сильно превосходит DHT22. Он более дешевый, меньше по размеру и имеет более высокую частоту выборки. Частота выборки DHT11 составляет 1 Гц, то есть одно чтение каждую секунду, в то время как частота выборки DHT22 составляет 0,5 Гц, то есть одно чтение каждые две секунды.

Рабочее напряжение обоих датчиков составляет от 3 до 5 вольт, в то время как максимальный ток, используемый во время преобразования (при запросе данных), составляет 2,5 мА. И самое приятное, что датчики DHT11 и DHT22/AM2302 являются «взаимозаменяемыми», то есть, если вы создаете свой проект с одним датчиком, вы можете просто отключить его и использовать другой датчик. Ваш код, возможно, придется немного изменить, но, по крайней мере, схема не изменится!

Для получения более подробной информации обратитесь к техническим описаниям датчиков DHT11 и DHT22/AM2302.

Элементы платы

Датчик DHT11

Цифровой датчик DHT11 является составным датчиком, который выдаёт калиброванный цифровой сигнал с показаниями температуры и влажности.

Сенсор включает в себя резистивный компонент измерения влажности и компонент измерения температуры с отрицательным температурным коэффициентом (NTC), которые подключены к высокопроизводительному 8-битному микроконтроллеру.

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

Контакты подключения 3-проводного шлейфа

Модуль подключается к управляющей электронике по трём проводам.
Назначение контактов 3-проводного шлейфа:

  • Питание () — красный провод. На него должно подаваться напряжение питания от 3,3 до 5 В;
  • Земля () — чёрный провод. Должен быть соединён с землёй микроконтроллера;
  • Сигнальный () — жёлтый провод. Подключается к цифровому выходу микроконтроллера. Через него сенсор общается с микроконтроллером по собственному протоколу.

Станция с датчиком давления

Следующая модель будет уметь определять:

  • влажность и температуру;
  • уровень высоты;
  • атмосферное давление.

Компоненты

Для сборки потребуются:

  • сенсор DHT22;
  • датчик давления BMP180;
  • плата Ардуино Нано;
  • lcd-экран с блоком I2C;
  • резистор 10 кОм;
  • плата макетная;
  • припой;
  • 40-контактный однорядный разъем;
  • соединительные провода.

Придется паять и работать с контактами, поэтому также необходим паяльник и плоскогубцы.

Сенсор давления

Таковым послужит барометрический датчик с интерфейсом I2C BMP180. Он станет контролировать абсолютное значение параметра вокруг себя.  Падение обычно сигнализирует о приближении грозы и наступлении дождя (поскольку им сопутствует область низкого давления), а увеличение, наоборот, говорит о прохождении области низкого давления и наступлении ясной сухой погоды.

Давление всегда зависит от высоты над уровнем моря и погодных условий в зоне измерения. Но в нашем случае измеряется относительное — как если бы метеостанция находилась на уровне моря.

Кроме того, монитор погоды должен быть защищен и от нагрева — воздействие источников тепла исказит показания температуры. Попадание воды также внесет помехи, в конструкции это нужно учесть и предусмотреть защиту.

Еще один важный момент — светочувствительность. Благодаря силикону в конструктиве BMP180 он способен улавливать попадающий через отверстие в корпусе микрочипа свет и нагреваться. Максимально точные измерения потребуют изоляции от окружающего света.

BMP180 соединяется через шину I2C по следующей схеме:

A4 — SDA;

A5 — SCL;

3.3V — VCC;

GND — GND.

Сборка

Процесс сборки начинается с монтажа однорядных разъемов для DHT22 и Arduino:

От вывода DATA к GND припаян резистор на 10 кОм.

Далее монтируется разъем для BMP180 (питаться датчик будет от линии 3.3 В). Компоненты соединяются шиной I2C.

На последнем этапе та же шина соединяется с дисплеем.

Так выглядит домашняя метеостанция в сборе:

Пример вывода информации об атмосферном давлении:

Программный код

Для работы понадобятся скетч Ардуино и библиотеки датчиков. Все они доступны в приложениях к статье.

Текст скетча можно скачать здесь: https://cloud.mail.ru/public/piwT/gew8pPv7M

2Схема подключения датчика температуры и влажности DHT11

Рассмотрим схему подключения датчика температуры и влажности DHT11 к микроконтроллеру, в частности, к Arduino.

Схема подключения датчика температуры и влажности DHT11

Давайте посмотрим, что показано на рисунке.

Обозначение на рисунке Описание Примечание
MCU Микроконтроллер или одноплатный компьютер Arduino / Raspberry Pi и др.
DHT11 Датчик температуры и влажности Выводы 1Pin, 2Pin и 4Pin задействованы в схеме, один из выводов датчика – 3-ий пин 3Pin – ни к чему не подключается.
DATA Шина данных Если длина соединительного кабеля от датчика к микроконтроллеру не превышает 20 метров, то эту шину рекомендуется подтянуть к питанию резистором 5,1 кОм; если больше 20 метров – то другой подходящий номинал (меньший).
VDD Питание датчика Допустимы напряжения от ~3,0 до ~5,5 вольт постоянного тока; если используется питание ~3,3 В, то желательно использовать питающий провод не длиннее 20 см.

Соберём рассмотренную схему. Я также по традиции включу в цепь логический анализатор, чтобы можно было изучить временную диаграмму информационного обмена с датчиком.

Сенсор температуры и влажности DHT11 подключён к Arduino UNO

Сенсор DHT11 часто продаётся в виде готовой сборки с необходимой обвязкой – подтягивающими резистором и фильтрующим конденсатором (как на предыдущей фотографии). Для экспериментов с Arduino я рекомендую покупать именно такой.

Подключение к Orange Pi

Для подключения будем использовать контакты GPIO. Orange Pi имеет 40 контактов GPIO. Можно использовать контакты GPIO для связи и передачи питания на светодиоды, датчики, двигатели и даже другие микроконтроллеры, такие как Arduino. Расположение выводов для Orange Pi, более подробно описано здесь .

Прежде всего, отключим питание Orange Pi при подключении датчиков. С помощью соединительных проводов соединим следующие контакты (датчик с пи):

  • DOUT к PIN 7 (GPCLK)
  • GND к PIN 6 (GND)
  • VCC к PIN 1 (VCC-3.3V)

Схема подключения DHT к Orange Pi

Настроив аппаратное обеспечение, нам нужно настроить программную часть.

DHT11 vs DHT22

Before we jump right into their differences, let’s look at an introduction about each temperature sensor first:

DHT11

The DHT11 is a basic, ultra low-cost digital temperature and humidity sensor. It is able to detect temperature and also relative humidity which is the amount of water vapour in the air vs the saturation point of water vapour in the air.

DHT11 is the most common temperature and humidity module for Arduino and Raspberry Pi. Thus, widely favoured by hardware enthusiasts for its many advantages. Our DHT11 temperature humidity sensor is based on the new DHT11 module as well!

Features:

  • Low power consumption and excellent long-term stability.
  • Relatively high measurement accuracy can be obtained at a very low cost.
  • Single-bus digital signal output through the built-in ADC, which saves the I/O resources of the control board.
  • Humidity range of 5 to 95% RH with a ±5% and also a temperature range of -20 to 60℃ with a ±2%.

For comparison, here’s the difference between the new module and the old module:

As you can tell, the new module has a wider humidity range, temperature range and also a lower temperature resolution.

DHT22

The DHT22 is also known as AM2302 or RHT03, it includes a capacitive humidity sensor and a high precision temperature sensor. It uses dedicated digital module acquisition technology and temperature and humidity sensing technology to ensure high reliability and excellent long-term stability.

The DHT22 also has a capacitive sensing element and a high precision temperature measuring element connected to a high-performance 8-bit microcontroller. Thus, it has the advantages of excellent quality, ultra-fast response, strong anti-interference ability, and high-cost performance

Features:

  • Ultra-small size
  • Extremely low power consumption, and with a signal transmission distance of more than 20 meters thus it’s able to withstand the most demanding applications.
  • Humidity sensor of 0 to 99.9 %RH with ±2% accuracy while the temperature sensor ranges from -40 to 80℃ with ±0.5℃ accuracy.

Do note that we also sell the sensor module individually, it is also easy to connect with 3 leads (single bus interface). If you want to connect your sensor with a longer wire, you can easily just add a pull-up resistor.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector