#include <RTClib.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display = Adafruit_SSD1306(128,64, &Wire, -1);
RTC_DS1307 rtc;
char daysOfTheWeek[7][12] = {
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
};
const char* AMPM = 0;
int h=2,m=20;
int RL = 3;
void setup () {
Serial.begin(9600);
pinMode(RL,OUTPUT);
// SETUP RTC MODULE
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
while (1);
}
// automatically sets the RTC to the date & time on PC this sketch was compiled
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// manually sets the RTC with an explicit date & time, for example to set
// January 21, 2021 at 3am you would call:
// rtc.adjust(DateTime(2021, 1, 21, 3, 0, 0));
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.display();
delay(100);
display.clearDisplay();
display.display();
display.setTextSize(1.75);
display.setTextColor(WHITE);
}
void loop () {
DateTime now = rtc.now();
Serial.print("Date & Time: ");
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.println(now.second(), DEC);
//========================================
display.setCursor(0, 0);
display.clearDisplay();
display.setTextSize(1);
display.setCursor(0, 0);
display.print("Time: ");
if(now.hour()<10)
{
display.print("0");
display.print(now.hour(), DEC);
}
else{display.print(now.hour(), DEC);}
display.print(':');
if(now.minute()<10)
{
display.print("0");
display.print(now.minute(), DEC);
}
else{display.print(now.minute(), DEC);}
display.print(':');
if(now.second()<10)
{
display.print("0");
display.print(now.second(), DEC);
}
else{display.print(now.second(), DEC);}
if(now.hour()<12)
{
AMPM = "AM";
}
else{AMPM = "PM";}
display.print(" ");
display.print(AMPM);
//==========================================
display.setTextSize(1);
display.setCursor(0, 10);
display.print("Date: ");
display.print(now.day(), DEC);
display.print('/');
display.print(now.month(), DEC);
display.print('/');
display.print(now.year(), DEC);
display.setTextSize(1);
display.setCursor(0, 20);
display.print("Day : ");
display.print(daysOfTheWeek[now.dayOfTheWeek()]);
display.display();
delay(1000); // delay 1 seconds
if(h == now.hour() && m == now.minute())
{
digitalWrite(RL,1);
}
else{digitalWrite(RL,0);}
}