#include "RTClib.h"
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display(128, 64);
RTC_DS1307 rtc;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
unsigned int day;
unsigned int hour;
unsigned int minute;
unsigned int second;
unsigned int timeBuzzer = 2000;
unsigned int timeClock = 500;
bool buzzer;
bool alarmTrigger;
bool alarmDeath;
void setup () {
pinMode(2,OUTPUT);
pinMode(3,INPUT_PULLUP);
Serial.begin(57600);
#ifndef ESP8266
while (!Serial);
#endif
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
while (1) delay(10);
}
if (! rtc.isrunning()) {
Serial.println("RTC is NOT running, let's set the time!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
display.begin( SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextColor(1);
display.setTextSize(1);
display.display();
delay(1000);
}
void loop () {
uint64_t now2 = millis();
static uint64_t next;
static uint64_t next2;
if(now2>=next2){
next2=now2+timeClock;
DateTime now = rtc.now();
Serial.print('(');
Serial.print(now.day(), DEC);
Serial.print("/");
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.year(), 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.print(now.second(), DEC);
Serial.println();
Serial.println();
day=daysOfTheWeek[now.dayOfTheWeek()];
hour=now.hour();
minute=now.minute();
second=now.second();
if(now.hour()==6 && now.minute()==30 && now.second()==0 && alarmTrigger == 0){
alarmTrigger=1;
}
}
if(alarmTrigger){
buzzer = 1;
}
if(digitalRead(3) == 0){
buzzer = 0;
alarmTrigger = 0;
}
digitalWrite(2,buzzer);
display.clearDisplay();
display.setCursor(16, 13);
display.setTextSize(2);
display.print(hour, DEC);
display.print(':');
display.print(minute, DEC);
display.print(':');
display.print(second, DEC);
display.println();
display.println();
display.print(day);
display.display();
}