Вентилятор с помощью Ардуино, который зависит от температуры

Автоматический вентилятор Ардуино, который включается сам, когда температура в помещении достигнет определенной величины.

В этом уроке вы узнаете о вентиляторах с регулятором температуры на Ардуино, используя датчик и реле DHT22. Мы будем использовать датчик DHT22 для получения значения температуры и выведем это значение температуры на ЖК-дисплее. Затем мы проверим, будет ли значение температуры больше 35 или нет, если температура будет больше 35, тогда реле будет активировано и вентилятор начнет вращаться.

Комплектующие

Нам понадобятся следующие детали для нашего проекта:

1 Arduino Uno
1 16x2 LCD / ЖК Дисплей
1 DHT22 датчик температуры и влажности
1 DC motor / Двигатель постоянного тока
1 9В батарейка
1 10K потенциометр
1 220 Ом резистор
Набор проводов
1 Макетная плата

Принципиальная схема вентилятора Ардуино

Принципиальная схема нашего вентилятора выглядит так:

Давайте разберемся с соединением всех деталей. Прежде всего сделайте подключение ЖК-дисплея к Ардуино следующим образом:

  • Подсоедините вывод VSS на ЖК-дисплее к земле Arduino.
  • Подключите контакт VDD к 5V Arduino.
  • Подсоедините вывод V0 к центральному выводу потенциометра 10K. Подключите два других контакта потенциометра к 5V и к земле.
  • Подсоедините штырь RS к контакту 2 Arduino.
  • Подключите контакт R/W к земле Arduino. Это поместит ЖК-дисплей в режим чтения.
  • Подключите контакт E (Enable) к контакту 3 Arduino.
  • Подключите контакты D4-D7 к контакту 4, 5, 6, 7 Ардуино.
  • Подключите контакт 15, который является положительным выводом подсветки светодиода на 5-контактный штырь через резистор 220 Ом.
  • Подключите контакт 16, который является отрицательным выводом подсветки светодиода к земле Arduino.

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

  • Подключите вывод VCC модуля реле к выводу 5V Arduino.
  • Подключите вывод IN модуля реле к выходу 9 Arduino.
  • Подключите вывод GND модуля реле к GND Ардуино.

На выходной стороне модуля реле подключите минус 9В-батареи к общему (C) модулю реле и подключите NC модуля реле к минусу вентилятора. Затем подключите плюс батареи к плюсу вентилятора.

В конце сделайте соединения для датчика температуры и влажности DHT22.

  • Подключите контакт 1 DHT22, который является выводом VCC, к 5V Ардуино.
  • Подключите контакт 2 DHT22, который является выводом данных к выходу 8 Arduino.
  • Подключите контакт 4 от DHT22, который является заземляющим контактом, к земле Arduino.

Скетч для Ардуино

Ниже вы можете скопировать и загрузить код в свою Ардуино Уно.

#include "DHT.h" 
#include "LiquidCrystal.h"
LiquidCrystal lcd(7, 8, 9, 10, 11 ,12);
#define DHTPIN 6 
#define DHTTYPE DHT22  
DHT sensor(DHTPIN, DHTTYPE); 
int relay_pin = 9;

void setup() { 
lcd.begin(16,2); 
sensor.begin(); 
pinMode(relay_pin, OUTPUT);
digitalWrite(relay_pin, HIGH);
}
void loop() { 
lcd.clear();
float t = sensor.readTemperature(); //считывание температуры с датчика
// Проверка, посылает ли датчик значения или нет
if (isnan(t)) {
lcd.print("Failed");
delay(1000);
return;
}
lcd.setCursor(0,0); 
lcd.print("Temp: ");
lcd.print(t);
lcd.print(" C");
if (t > 35){
  digitalWrite(relay_pin, LOW);
  lcd.setCursor(0,1); 
  lcd.print("Fan is ON "); 
  delay(10);
}
else{
  digitalWrite(relay_pin, HIGH);
  lcd.setCursor(0,1); 
  lcd.print("Fan is OFF "); 
}
delay(2000);
}

Объяснение кода

Прежде всего, мы включили библиотеки для датчика DHT22 и для ЖК-дисплея. Библиотеки помогут сделать код более простым.

Скачать все необходимые библиотеки для своих проектов вы можете на нашем сайте в разделе - Библиотеки.

#include "DHT.h"
#include "LiquidCrystal.h"

Затем мы инициализировали контакты к которым мы подключили ЖК-дисплей и датчик DHT22. После этого мы определили тип датчика DHT, который используется. Существует множество других типов датчиков DHT, таких как DHT11, поэтому здесь важно определить тип.

LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

#define DHTPIN 8

#define DHTTYPE DHT22
DHT sensor(DHTPIN, DHTTYPE);

В функции настройки мы дали команду DHT22 и LCD, чтобы начать общение с Arduino. Затем мы объявили контакт реле как выходной вывод, потому что мы дадим напряжение от Ардуино к реле для активации реле. Реле работает обратно (High означает Low для реле).

lcd.begin(16,2);
sensor.begin();

pinMode(relay_pin, OUTPUT);
digitalWrite(relay_pin, HIGH);

В функции цикла мы очищаем ЖК-экран, а затем считываем значение температуры от датчика.

lcd.clear();
float t = sensor.readTemperature();

if (isnan(t)) {
lcd.print("Failed");
delay(1000);
return;
}

Затем мы печатаем значение температуры на ЖК-дисплее, и если значение температуры будет больше 35, тогда реле будет активировано, и вентилятор начнет вращаться.

lcd.setCursor(0,0);
lcd.print("Temp: ");
lcd.print(t);
lcd.print(" C");

if (t > 35){
digitalWrite(relay_pin, LOW);
lcd.setCursor(0,1);
lcd.print("Fan is ON ");
delay(10);
}

На этом всё. Хороших вам проектов!

Ардуино+