СРАВНИТЕЛЬНАЯ ХАРАКТЕРИСТИКА ДАТЧИКОВ DHT11 И DHT22
Параметр | DHT11 | DHT22 |
---|---|---|
Диапазон температуры | 0 — 50 | -40 — +125 |
Диапазон влажности | 20-80% | 0-100% |
Частота выборки | 1,0 Hz | 0,5 Hz |
Вольтаж | 3-5V | 3-5V |
Ток | 2,5 mA | 2,5 mA |
В продаже ещё можно найти датчики DHT21 (AM2301) , немного дороже чем DHT22 и имеют примерно те же параметры, но выполнен в корпусе для более жёских условий(улица). Потребление тока у этого датчика выше в 10 раз чем у DHT22 — примерно 1.36мА при 5в. Вес около 11 грамм.
Подключение датчика: Черный — GND, Красный — VCC, Желтый — DATA OUT.
ПОДКЛЮЧЕНИЕ DHT11 И DHT22 К ARDUINO
Датчик DHT имеет 4 вывода стандарта 2,54 мм:
1 — VDD (от 3В до 5 В);
2 — DATA (данные);
3 — NC;
4 — GND (общий).
Протокол обмена — однопроводный, по структуре очень похож на DS18B20, но очень упрощённый и неимеет возможности соединения датчиков в сеть (подключение на одну линию) — каждый датчик должен подключен к отдельному выводу.
СКЕТЧ ДЛЯ ЗАГРУЗКИ В ARDUINO — ПОДКЛЮЧЕНИЕ DHT11 К ARDUINO NANO
#include <FastIO.h>
#include <I2CIO.h>
#include <LCD.h>
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
#include <LiquidCrystal_SR.h>
#include <LiquidCrystal_SR2W.h>
#include <LiquidCrystal_SR3W.h>
#include <DHT.h>
#define DHTPIN 2 // к какому пину будет подключен сигнальный выход датчика
#define DHTTYPE DHT22 // DHT 22 (AM2302)
//инициализация датчика
DHT dht(DHTPIN, DHTTYPE);
byte temp[8] = //код иконки термометра
{
0b01110,
0b01010,
0b01010,
0b01010,
0b01110,
0b01110,
0b01110,
0b00000
};
byte hum[8] = //код иконки влажности
{
B00100,
B00100,
B01010,
B01010,
B10001,
B10001,
B10001,
B01110,
};
// Задаем адрес и размерность дисплея
LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7);
void setup()
{
// Активируем LCD модуль
lcd.begin (16,2); // for 16 x 2 LCD module
lcd.setBacklightPin(3,POSITIVE);
lcd.setBacklight(HIGH);
lcd.createChar(1,temp);
lcd.createChar(2,hum);
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
// Выводим показания влажности и температуры
lcd.setCursor(0, 0);
lcd.print("Temp ");
lcd.write(1);
lcd.setCursor(8, 0);
lcd.print(t);
lcd.print( (char)223);
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Hum ");
lcd.write(2);
lcd.setCursor(8, 1);
lcd.print(h);
lcd.print(" %");
delay(2000);
}
СКЕТЧ ДЛЯ ЗАГРУЗКИ В ARDUINO — ПОДКЛЮЧЕНИЕ DHT11 К ARDUINOUNO
#include "DHT.h" // подключаем библиотеку для датчика
DHT dht(2, DHT11); // сообщаем на каком порту будет датчик
void setup() // процедура setup
{
dht.begin(); // запускаем датчик влажности DHT11
Serial.begin(9600); // подключаем монитор порта
Serial.println("DHT TEST"); // пишем один раз
}
void loop() // процедура loop
{
// считываем температуру (t) и влажность (h) каждые 250 мс
float h = dht.readHumidity();
float t = dht.readTemperature();
// выводим температуру (t) и влажность (h) на монитор порта
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
}