#include "Arduino.h"
#include "uRTCLib.h"
#include <Wire.h>
#include <LCD_I2C.h>
constexpr uint8_t BuzzerPin = A0;
//LiquidCrystal_I2C lcd(0x3F, 16, 2);
LCD_I2C lcd(0x27, 16, 2);
uRTCLib rtc(0x68);
int abc;
int stop_buton = 2;
char daysOfTheWeek[7][12] = {"Paz", "Pzt", "Sal", "Car",
"Per", "Cum", "Cumartesi"};
void setup() {
lcd.begin();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Hos Geldiniz..");
pinMode(BuzzerPin, OUTPUT);
pinMode(stop_buton, INPUT);
delay(3000); // wait for console opening
URTCLIB_WIRE.begin();
lcd.backlight();
rtc.set(50, 6, 0, 22, 11, 10, 23);
tone(BuzzerPin, 1000);
delay(600);
noTone(BuzzerPin);
}
void loop() {
lcd.clear();
lcd.setCursor(0,0);
lcd.print(daysOfTheWeek[abc]);
delay(1000);
rtc.refresh();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Saat : ");
lcd.print(rtc.hour());
lcd.print(":");
lcd.print(rtc.minute());
lcd.print(":");
lcd.print(rtc.second());
///////////////////////////////////////////
lcd.setCursor(0,1);
lcd.print("Tarih: ");
lcd.print(rtc.year());
lcd.print("/");
lcd.print(rtc.month());
lcd.print("/");
lcd.print(rtc.day());
Saat_Uyarisi();
Alarm();
delay(1000);
}
void Saat_Uyarisi(){
if(rtc.minute() == 0 && rtc.second() == 0){
tone(BuzzerPin, 1000);
delay(800);
noTone(BuzzerPin);
tone(BuzzerPin, 1000);
delay(800);
noTone(BuzzerPin);
tone(BuzzerPin, 1000);
delay(800);
noTone(BuzzerPin);
tone(BuzzerPin, 1000);
delay(800);
noTone(BuzzerPin);
}
}
void Alarm(){
abc = rtc.dayOfWeek();
if (daysOfTheWeek[abc] == daysOfTheWeek[0] && rtc.hour() == 8 && rtc.minute() == 5 && rtc.second() == 0){
Serial.println(daysOfTheWeek[0]);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Alarm Calıyor");
lcd.setCursor(0,1);
lcd.print("Bugun Pazartesi");
melodi();
}
if (daysOfTheWeek[abc] == daysOfTheWeek[1] && rtc.hour() == 8 && rtc.minute() == 5 && rtc.second() == 0){
Serial.println(daysOfTheWeek[6]);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Alarm Caliyor");
lcd.setCursor(0,1);
lcd.print("Bugun Sali");
melodi();
}
if (daysOfTheWeek[abc] == daysOfTheWeek[2] && rtc.hour() == 0 && rtc.minute() == 9 && rtc.second() == 0){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Alarm Calıyor");
lcd.setCursor(0,1);
lcd.print("Bugun Çarşamba");
melodi();
}
if (daysOfTheWeek[abc] == daysOfTheWeek[3] && rtc.hour() == 8 && rtc.minute() == 5 && rtc.second() == 0){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Alarm Calıyor");
lcd.setCursor(0,1);
lcd.print("Bugun Perşembe");
melodi();
}
if (daysOfTheWeek[abc] == daysOfTheWeek[4] && rtc.hour() == 8 && rtc.minute() == 5 && rtc.second() == 0){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Alarm Calıyor");
lcd.setCursor(0,1);
lcd.print("Bugun Cuma");
melodi();
}
}
void melodi(){
while(true){
if (digitalRead(stop_buton) == HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Alarm Stop ");
lcd.setCursor(0,1);
lcd.print(" Atila - Kuloglu");
delay(3000);
break;
}
tone(BuzzerPin, 1000);
delay(800);
noTone(BuzzerPin);
tone(BuzzerPin, 1000);
delay(800);
noTone(BuzzerPin);
tone(BuzzerPin, 1000);
delay(800);
noTone(BuzzerPin);
tone(BuzzerPin, 1000);
delay(800);
noTone(BuzzerPin);
}
}