#include <DHT.h>
DHT Dtemp(7, DHT22);
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C LCD(0x27,16,2);
#include <RTClib.h>
RTC_DS1307 rtc;
char day[7][12] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
byte customChar[] = {
B01000,
B10100,
B01000,
B00011,
B00100,
B00100,
B00100,
B00011
};
void setup() {
Serial.begin(9600);
if (!rtc.begin()) {
Serial.println("Coudn't find RTC");
Serial.flush();
abort();
}
//rtc.adjust(DateTime(2024,2,5,18,40,0));// вручная настройка времени
Dtemp.begin();
LCD.init();
LCD.createChar(0, customChar);
LCD.backlight();
LCD.home();
}
void loop() {
float h = Dtemp.readHumidity();
float t = Dtemp.readTemperature();
DateTime now = rtc.now();
Serial.print("Current time: ");
Serial.print(now.day(), DEC);
Serial.print("/");
Serial.print(now.month(), DEC);
Serial.print("/");
Serial.print(now.year(), DEC);
Serial.println("/");
Serial.print(now.hour(), DEC);
Serial.print(":");
Serial.print(now.minute(), DEC);
Serial.print(":");
Serial.print(now.second(), DEC);
Serial.print(" ");
Serial.println(day[now.dayOfTheWeek()]);
Serial.println(" ");
Serial.println(String("Температура: ")+t+String("℃"));
Serial.println(String("Влажность: ")+h+String("%"));
delay(1000);
LCD.print(t);
LCD.write(0);
LCD.setCursor(0, 1);
LCD.print(h);
LCD.print("%");
LCD.setCursor(11, 0);
LCD.print(now.hour(), DEC);
LCD.print(":");
LCD.print(now.minute(), DEC);
LCD.setCursor(13, 1);
LCD.print(day[now.dayOfTheWeek()]);
LCD.home();
}