#include<dht.h> // подключаем библиотеку для использования dht функций
#include<LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); // номера контактов, к которым подключен ЖК дисплей
#define dht_dpin 12
#define LOW_HUM 8
#define HIGH_HUM 9
#define LOW_TEMP 10
#define HIGH_TEMP 11
dht DHT;
byte degree[8] =
{
0b00011,
0b00011,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000
};
void setup()
{
pinMode(LOW_HUM, OUTPUT);
pinMode(HIGH_HUM, OUTPUT);
pinMode(LOW_TEMP, OUTPUT);
pinMode(HIGH_TEMP, OUTPUT);
lcd.begin(16, 2);
lcd.createChar(1, degree);
lcd.clear();
lcd.print(" Alex Lazorkin ");
lcd.setCursor(0,1);
lcd.print(" Measurement ");
delay(2000);
lcd.clear();
lcd.print(" BKP - 2025");
delay(2000);
}
void loop()
{
DHT.read22(dht_dpin); //считываем данные с контакта, к которому подключен датчик DHT11
// Если влажность ниже 30%
if (DHT.humidity < 30)
{
// включаем сигнал пониженной влажности
digitalWrite(LOW_HUM, HIGH);
} else {
// иначе сигнал не нужен — выключаем его
digitalWrite(LOW_HUM, LOW);
}
// Если влажность выше 70%
if (DHT.humidity > 70)
{
// включаем сигнал повышенной влажности
digitalWrite(HIGH_HUM, HIGH);
} else {
// иначе сигнал не нужен — выключаем его
digitalWrite(HIGH_HUM, LOW);
}
// Если температура ниже 18
if (DHT.temperature < 18)
{
// включаем сигнал пониженной температуры
digitalWrite(LOW_TEMP, HIGH);
} else {
// иначе сигнал не нужен — выключаем его
digitalWrite(LOW_TEMP, LOW);
}
// Если температура выше 27
if (DHT.temperature > 27)
{
// включаем сигнал повышенной температуры
digitalWrite(HIGH_TEMP, HIGH);
} else {
// иначе сигнал не нужен — выключаем его
digitalWrite(HIGH_TEMP, LOW);
}
lcd.setCursor(0,0);
lcd.print("Humidity:");
lcd.print(DHT.humidity); // отображаем значение влажности на экране ЖК дисплея
lcd.print(" %");
lcd.setCursor(0,1);
lcd.print("Temperat:");
lcd.print(DHT.temperature); // отображаем значение температуры на экране ЖК дисплея
lcd.write(1);
lcd.print("C");
delay(500);
}
T > 27 C
T < 18 C
H > 70 %
H < 30%