#include "RTClib.h"
RTC_DS3231 rtc;
char dataHari[7][12] = {"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"};
String hari;
int tanggal, bulan, tahun, jam, menit, detik;
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
int led5 = 5;
int lampu = 7;
int LDRSensor = 2;
int pinBuzzer = 10;
int motorDC = 4;
void setup() {
pinMode (led5 ,OUTPUT);
pinMode(lampu, OUTPUT);
pinMode(pinBuzzer, OUTPUT);
Serial.begin(9600);
lcd.init();
if (! rtc.begin()) {
Serial.println("RTC Tidak Ditemukan");
Serial.flush();
abort();
}
pinMode (LDRSensor, INPUT);
//Atur Waktu
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
//rtc.adjust(DateTime(2023, 1, 12, 5, 29, 55));
}
void loop() {
int Sensordata = digitalRead (LDRSensor);
Serial.print(Sensordata);
DateTime now = rtc.now();
hari = dataHari[now.dayOfTheWeek()];
tanggal = now.day(), DEC;
bulan = now.month(), DEC;
tahun = now.year(), DEC;
jam = now.hour(), DEC; //pas simulasi ganti jadi 7 atau 16
menit = now.minute(), DEC;//pas simulasi ganti jadi 0
detik = now.second(), DEC;//pas simulasi ganti jadi 0
Serial.println(String() + jam + ":" + menit + ":" + detik);
lcd.setCursor(0, 0);
lcd.print(String() + hari + ", " + tanggal + "-" + bulan + "-" + tahun);
lcd.setCursor(0,1);
lcd.print(String() + jam + ":" + menit);
if (Sensordata == 0){
digitalWrite(lampu, 0);
}else {digitalWrite(lampu, 1);}
if(jam == 5 && menit == 30 && detik == 0){
digitalWrite(motorDC, HIGH);
digitalWrite(pinBuzzer, HIGH);
digitalWrite(led5, 1);
for (int i=0; i<5; i++)
{
tone(pinBuzzer, 1000);
delay(500);
noTone(pinBuzzer);
delay(500);
}}
}