Датчики DHT11/DHT22 (рис. S1.1) предназначены для измерения температуры и влажности воздуха.
Внешний вид, назначение контактов
Рис. S1.1. Датчик DHT11
Основные характеристики
Наименование | Значение | |
DHT11 | DHT22 | |
Диапазон измерения температуры/точность измерения | 0 ÷ 50°С /±2°C | –40 ÷ 125°С /±0,5°C |
Диапазон измерения относительной влажности | 20 ÷ 80% /±5°C | 0 ÷ 100% /±2 ÷ 5°C |
Частота опроса датчиков, Гц | 1 (один раз в секунду) | 0,5 (1 раз в две секунды) |
Размеры, мм | 15,5×12,0×5,5 | 15,1×25,0×7,7 |
Напряжение питания, В | 3 ÷ 5 | 3 ÷ 5 |
Максимальный ток, мА | 2,5 | 2,5 |
Схема подключения
Рис. S1.2. Подключение датчика DHT11
Внимание!
Если расстояние от датчика до Arduino небольшое, рекомендуемый номинал резистора R1 10 кОм (рис. S1.2), а для расстояния больше 20 метров, рекомендуется резистор номиналом 5,1 кОм. Если же датчик имеет только три контакта (5V, OUT и GND), то резистор R1 вообще не нужен.
Программный код
- Загрузите библиотеку DHT-sensor-library для работы Arduino с датчиками DHT11 и DHT22. Для этого откройте Менеджер библиотек, выполнив команду Инструменты | Управлять библиотеками. Справа вверху в строке поиска введите DHT. В открывшемся списке выберите DHT sensor library by Adafruit версии 1.2.3 (в версиях 1.3.0 и новее возможна ошибка при компиляции). Нажмите кнопку Установка.
- Загрузите скетч из листинга S1.1.
Электронный архив скетчей и библиотек
Электронный архив скетчей и библиотек расположен по адресу https://bhv.ru/product/umnyj-dom-na-baze-arduino-bolshoj-nabor/. Скетчи в этом архиве вы найдете в папке Скетчи, а библиотеки — в папке Библиотеки.
Листинг S1.1. Измерение температуры и влажности с помощью датчика DHT11
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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | #include "DHT.h" #define DHTPIN 7 //пин для получения сигнала от датчика DHT11 // Раскомментируйте тип датчика, который вы используете #define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 //#define DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); } void loop() { // Задержка перед измерениями delay(2000); float h = dht.readHumidity(); //чтение температуры в градусах Цельсия °С (по умолчанию) float t = dht.readTemperature(); //чтение температуры в градусах Фаренгейта °F (isFahrenheit = true) float f = dht.readTemperature(true); // Проверка чтения данных if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("Failed to read from DHT sensor!"); return; } // Вычисление теплового индекса в °F (по умолчанию) float hif = dht.computeHeatIndex(f, h); // Вычисление теплового индекса в °С (isFahreheit = false) float hic = dht.computeHeatIndex(t, h, false); Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.print(" *C "); Serial.print(f); Serial.print(" *F\t"); Serial.print("Heat index: "); Serial.print(hic); Serial.print(" *C "); Serial.print(hif); Serial.println(" *F"); } |
Результат
Рис. S1.3. Результаты измерений датчика DHT11
Вам могут понадобиться
-
37 в 1 v.2.0. Комплект датчиков для Arduino
2200₽1760₽ -
Высокоточный датчик температуры LM35 LM35DZ TO92
80₽64₽ -
Умный дом на базе Arduino. Большой набор + КНИГА
15568 ₽
12454 ₽ -
Датчик температуры и влажности воздуха DHT11
120₽96₽