#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <RTClib.h>
LiquidCrystal_I2C lcd(0x27,20,4);
RTC_DS1307 rtc;
char dayOfTheWeek[7][11] = {"SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY",
"THURSDAY", "FRIDAY", "SATURDAY"};
void setup() {
// put your setup code here, to run once:
lcd.init();
lcd.backlight();
if (!rtc.begin()) {
lcd.setCursor(0, 1);
lcd.print("RTC not found");
while (1); // Stop execution if RTC not found
}
lcd.setCursor(6,0);
lcd.print("Welcome!");
lcd.setCursor(6,1);
lcd.print("Welcome!");
lcd.setCursor(6,2);
lcd.print("Welcome!");
lcd.setCursor(6,3);
lcd.print("Welcome!");
delay(1000);
lcd.clear();
}
void loop() {
// put your main code here, to run repeatedly:
DateTime now = rtc.now();
lcd.setCursor(0,0);
if(now.day() < 10){
lcd.print("0");
}
lcd.print(now.day());
lcd.print("/");
if(now.month() < 10){
lcd.print("0");
}
lcd.print(now.month());
lcd.print("/");
lcd.print(now.year());
lcd.setCursor(11,0);
lcd.print(dayOfTheWeek[now.dayOfTheWeek()]);
lcd.setCursor(0,1);
lcd.print(now.hour());
lcd.print(":");
if(now.minute() < 10){
lcd.print("0");
}
lcd.print(now.minute());
lcd.print(":");
if(now.second() < 10){
lcd.print("0");
}
lcd.print(now.second());
const float BETA = 3950; // should match the Beta Coefficient of the thermistor
int analogValue = analogRead(A0);
float celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
if(celsius < 10){
lcd.setCursor(0,2);
lcd.print("Temperature: ");
lcd.setCursor(13,2);
lcd.print(celsius, 1);
lcd.write(byte(223));
lcd.setCursor(17,2);
lcd.print("C");
}else if(celsius >= -9.9 & celsius < 1){
lcd.setCursor(0,2);
lcd.print("Temperature: ");
lcd.setCursor(12,2);
lcd.print(celsius, 1);
lcd.write(byte(223));
lcd.setCursor(18,2);
lcd.print("C");
}else if(celsius <= -10){
lcd.setCursor(0,2);
lcd.print("Temperature: ");
lcd.setCursor(12,2);
lcd.print(celsius, 1);
lcd.write(byte(223));
lcd.setCursor(18,2);
lcd.print("C");
}else{
lcd.setCursor(0,2);
lcd.print("Temperature: ");
lcd.setCursor(13,2);
lcd.print(celsius, 1);
lcd.write(byte(223));
lcd.setCursor(18,2);
lcd.print("C");
}
delay(1000);
}