Датчик DHT22 предназначен для измерения температуры и относительной влажности воздуха. Датчик находит своё применение в различных системах мониторига и управления климатом, будь то умный дом, автоматизированная теплица или метеостанция.
Характеристики:
- Питание: 3,3 … 6 В постоянного тока
- Потребляемый ток: 1 … 1,5 мА во время измерений
40…50мкА в режиме ожидания - Диапазон влажности: 0 … 100 % разрешение 0,1% точность ±2%
- Диапазон температуры: -40 … 80 °C разрешение 0,1°C точность ±0,5°C
- Период измерений: 2 сек. между измерениями
- Выходной сигнал: Цифровой
Датчик DHT22 имеет 4 вывода:
1 – Питание
2 – Вывод данных
3 – Не используется
4 – "Земля"
Подключение к Arduino:
Для подключения датчика нам необходимы:
- Любая Arduino-совместимая плата
- Резистор 10 КОм
- Компьютер с установленной средой Arduino IDE.
- USB кабель для подключения Arduino к персональному компьютеру
В примере мы будем рассматривать подключение при помощи проводов типа папа-папа и макетной платы для соединения без пайки
Принципиальная схема подключения компонентов:
Скетч для Arduino:
Для считывания показаний с датчика необходимо использовать библиотеку*
DHT sensor library.
Скачать её можно здесь.
*Библиотека Arduino – программный код, хранящийся не в скетче, а во внешних файлах, которые можно подключить к вашему проекту. Библиотека содержит в себе различные методы и структуры данных, которые нужны для упрощения работы с датчиками, индикаторами, модулями и другими электронными компонентами.
Пример кода:
#include <DHT.h> // Подключение библиотеки #define DHTPIN 2 // Выбираем цифровой pin, к которому подключается информационный выход датчика #define DHTTYPE DHT22 // Указываем тип датчика DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); Serial.println(F("DHT test!")); dht.begin(); } void loop() { // Обеспечиваем интервал в 2 секунды между измерениями delay(2000); // Переменная для считывания значения влажности float h = dht.readHumidity(); // Переменная для считывания значения температуры (в градусах Цельсия) float t = dht.readTemperature(); // Переменная для считывания значения температуры (в Фаренгейтах) float f = dht.readTemperature(true); // Проверка подключения датчика. if (isnan(h) || isnan(t) || isnan(f)) { Serial.println(F("Failed to read from DHT sensor!")); return; } float hif = dht.computeHeatIndex(f, h); float hic = dht.computeHeatIndex(t, h, false); Serial.print(F("Humidity: ")); Serial.print(h); Serial.print(F("% Temperature: ")); Serial.print(t); Serial.print(F("°C ")); Serial.print(f); Serial.print(F("°F Heat index: ")); Serial.print(hic); Serial.print(F("°C ")); Serial.print(hif); Serial.println(F("°F")); }
Комментарии