цифровая электроника
вычислительная техника
встраиваемые системы

 

Arduino + датчик температуры и влажности DHT22 + вентилятор

Автор: Mike(admin) от 19-02-2015, 07:39

В современных системах домашней автоматизации и контроля параметров окружающей среды можно найти большое количество разнообразных датчиков. Одними из основных,конечно же, являются датчики температуры и влажности, поскольку температура и влажность представляют собой важные параметры, характеризующие состояние окружающей среды в помещении. Сегодня электронная промышленность выпускает совмещенные датчики, позволяющие измерять как температуру, так и влажность.


Такие датчики температуры и влажности чрезвычайно полезны при построении систем контроля климата. Ярким примером подобных датчиков может послужить DHT22. Сенсор DHT22 является очень популярным в радиолюбительском сообществе, поскольку он прост в использовании и очень легко подключается к плате Arduino. Тем более для работы с ним имеется простая и понятная библиотека для Arduino IDE. Поэтому в этом примере для создания простой версии системы контроля климата мы воспользуемся платой Arduino UNO, датчиком DHT22 и вентилятором.


Arduino + датчик температуры и влажности DHT22 + вентилятор

Вместо DHT22 можно взять DHT11, но у используемого в данном случае датчика шире диапазон измерения температуры (от -40°C до +125°C) и влажности (от 0 до 100%). Также он имеет цифровой выход (Single-bus), что увеличивает точность считывания.


Расположение выводов (распиновка) датчика DHT22 можно видеть на приведенном ниже изображении.


Распиновка датчика DHT22

Далее приведена схема подключения датчика температуры и влажности DHT22 и вентилятора к плате Arduino UNO. Как мы видим, датчик DHT22 подключается к порту 2 платы Arduino. Сигнал на управление вентилятором поступает с порта 4 на биполярный транзистор NPN-типа BC547. Резистор 1 КОм нужен для ограничения тока на базе транзистора. Также не забудьте поставить сопротивление 10 КОм между первой и второй ножками датчика DHT22.


Arduino + датчик температуры и влажности DHT22 + вентилятор

Вентилятор начинает вращаться, когда уровень влажности поднимается выше 60% или температура становится больше 40°C. Но вы, конечно же, можете изменить эти значения в коде. Для работы с датчиком используется библиотека DHT library от Adafruit.


Ниже приведен скетч для Arduino, позволяющий управлять вентилятором в зависимости от температуры и влажности в помещении.



#include "DHT.h"
 
#define DHTPIN 2     // вывод, к которому подключается датчик
#define DHTTYPE DHT22   // DHT 22  (AM2302)
#define fan 4
 
int maxHum = 60;
int maxTemp = 40;
 
DHT dht(DHTPIN, DHTTYPE);
 
void setup() {
  pinMode(fan, OUTPUT);
  Serial.begin(9600); 
  dht.begin();
}
 
void loop() {
  // ждем пару секунд перед началом измерений
  delay(2000);
 
  // считывание температуры или влажности занимает примерно 250 мс!
  // считанные показания могут отличаться от актуальных примерно на 2 секунды (это очень медленный датчик)
  float h = dht.readHumidity();
  // Считывание температуры в цельсиях
  float t = dht.readTemperature();
  
  // проверяем, были ли ошибки при считывании и, если были, начинаем заново
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  
  if(h > maxHum || t > maxTemp) {
      digitalWrite(fan, HIGH);
  } else {
     digitalWrite(fan, LOW); 
  }
  
  Serial.print("Humidity: "); 
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: "); 
  Serial.print(t);
  Serial.println(" *C ");
 
}

Вы можете менять значения maxHum (для влажности) и maxTemp (для температуры), если хотите изменить пороги запуска вентилятора. Вместо вентилятора можно использовать реле, если нужно подключить нагрузку с питанием от большего напряжения. И не забудьте соединить резистор 10 КОм между выводом питания (Vcc) и выводом данных (Data) датчика DHT22.


дешевые Arduino



© digitrode.ru


<Via>


Теги: Arduino, датчик температуры



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

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

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