#include <RTClib.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
RTC_DS3231 rtc;
LiquidCrystal_I2C lcd(0x27,20,4);
#define dhtPin 7
#define dhtType DHT22
DHT dht(dhtPin,dhtType);
float hum;
float C;
float F;
void readDHT(){
hum = dht.readHumidity();
C = dht.readTemperature();
F = dht.readTemperature(true);
}
void serialPrint(){
Serial.print("HUMIDITY:/t");
Serial.print(hum);
Serial.print("/tTemperature/t");
Serial.print(C);
Serial.print("C°/t");
Serial.print(F);
Serial.println("F°/t");
}
void serialPrinter(DateTime now){
Serial.print(now.day(),DEC);
Serial.print(".");
Serial.print(now.month(),DEC);
Serial.print(".");
Serial.print(now.year(),DEC);
Serial.print("\t");
Serial.print(now.hour(),DEC);
Serial.print(":");
Serial.print(now.minute(),DEC);
Serial.print(":");
Serial.print(now.second(),DEC);
Serial.println("\n");
}
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
if(!rtc.begin()){
Serial.println("Coudn't find RTC");
Serial.flush();
while(1);
abort();
}
dht.begin();
}
void lcdPrinter(DateTime now){
String data = String(now.year(),DEC);
data +=".";
data += String(now.month(),DEC);
data +=".";
data += String(now.day(),DEC);
data +=".";
String time = String(now.hour(),DEC);
time +=".";
time += String(now.minute(),DEC);
time +=".";
if(now.second() < 10){
time += '0';
}
time += String(now.second(),DEC);
DateTime;
lcd.clear();
lcd.home();
lcd.print(data);
lcd.setCursor(0,1);
lcd.print(time);
}
void loop() {
readDHT();
DateTime now = rtc.now();
serialPrinter(now);
lcdPrinter(now);
delay(1000);
}