#include "DHT.h"
#include <LiquidCrystal.h>
#define DHTPIN PA2
#define LED1 PA3
#define LED2 PA4
#define LED3 PA5
#define LED4 PA6
#define RS PA0 // Подключение к пину RS на дисплее
#define E PA1 // Подключение к пину E на дисплее
#define D4 PB0 // Подключение к пину D4 на дисплее
#define D5 PB1 // Подключение к пину D5 на дисплее
#define D6 PB2 // Подключение к пину D6 на дисплее
#define D7 PB3 // Подключение к пину D7 на дисплее
DHT dht(DHTPIN, DHT22);
LiquidCrystal lcd(RS, E, D4, D5, D6, D7);
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
// Инициализация LCD-дисплея
lcd.begin(16, 2);
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Error");
return;
}
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temp: ");
Serial.print(t);
Serial.println(" *C ");
// Вывод информации на LCD-дисплей
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Humidity: ");
lcd.print(h);
lcd.print(" %");
lcd.setCursor(0, 1);
lcd.print("Temp: ");
lcd.print(t);
lcd.print(" *C");
if (t < 20) {
digitalWrite(LED1, HIGH);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
} else if (t >= 20 && t < 25) {
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
} else if (t >= 25 && t < 30) {
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, LOW);
} else {
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
}
}