воскресенье, 25 декабря 2016 г.

DHT11 (датчик температуры и влажности) + Arduino UNO

(Стук в дверь) Не желаете поговорить об Ардуино?

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

Его datasheet можно почитать тут, там много информации об этом датчике, но по сути можно выделить несколько пунктов которые нас интересует:
  • Диапазон работы датчика влажности 20-90%RH (погрешность ±5%RH)
  • Диапазон температуры 0-50 ℃ (погрешность ±2℃)
  • Время отклика от 3 сек
Как видно для улицы его использовать уже будет мало, а в жилых комнатах вполне себе не дорогой вариант, из дополнительных деталей нам нужен только резистор на 4,7 кОм

Схема подключения датчика к Arduino UNO:
 

Установим библиотеки:
Как видно ничего сложного нету, теперь займемся самым интересным, напишем код:

#include "DHT.h" //Подключаем библиотеку для работы с датчиками серии DHT
#define DHTPIN 2 //Указываем к какому пину мы подключаем сигнальный провод с датчика
#define DHTTYPE DHT11 // Указываем что у нас датчик DHT11 (данная бибилиотека может работать с датчиками DHT11, DHT21, DHT22AM2301)
DHT dht(DHTPIN, DHTTYPE); //создаем обьект
void setup()
{
  Serial.begin(9600); // Начинаем работать с сериал портом
  dht.begin(); // Начинаем работать с датчиком
}
void loop()
{
  float h = dht.readHumidity(); //считываем влажность воздуха
  float t = dht.readTemperature(); //считываем температуру  
  if (isnan(h) || isnan(t)) { //проверяем считались ли данные 
    Serial.println("Error"); //выводим текст сообщения в случае неудачи
  }else{     
    Serial.print("Temperature: "+ String(t) +" %  "); //выводим температуру
    Serial.println("Humidity: "+ String(h) +" C"); //выводим влажность, println мы пишем чтобы следующее показание было с новой строки
  }
  delay(3000); //делаем задержку 3 секунды
}
Результат должен быть примерно таким:
 

Комментариев нет:

Отправить комментарий