// робочі бібліотеки
#include "LiquidCrystal_I2C.h"
#include "DHT.h"
// визначення параметрів дисплею та сенсора
LiquidCrystal_I2C lcd(0x27, 16, 2);
DHT dht(5, DHT22);
int relay = 4;
int photo = 7;
int photo_flug;
void setup() {
Serial.begin(9600); // запуск компорта
lcd.init(); // вмикаємо дисплей
lcd.backlight(); // вмикаємо підсвітку
dht.begin(); // запуск сенсора
// призначення пінів
pinMode(relay, OUTPUT);
pinMode(photo, INPUT);
}
void loop() {
// дані про температуру будуть передані на змінні
float h = dht.readHumidity();
float t = dht.readTemperature();
// передаємо тримані дані на дисплей
lcd.setCursor(0, 0);
lcd.print(t);
lcd.setCursor(8, 0);
lcd.print(h);
// зчитаємо сигнал з фотосенсора та задаємо умову на день та ніч
photo_flug = digitalRead(photo);
if (photo_flug == 0) {
lcd.setCursor(0, 1);
lcd.print("Day time");
}
else {
lcd.setCursor(0, 1);
lcd.print("Night time");
}
// задаємо режим роботи вентилятора. Вдень запуститься при +20, вніч при +24. Вимкнеться коли температура впада на 2 градуса нижче, від порогового значення
if (t >= 20 && photo_flug == 0) {
digitalWrite(relay, HIGH);
}
else if (t < 18 && photo_flug == 0) {
digitalWrite(relay, LOW);
}
if (t >= 24 && photo_flug == 1) {
digitalWrite(relay, HIGH);
}
else if (t < 22 && photo_flug == 1) {
digitalWrite(relay, LOW);
}
}