#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <RTClib.h>
LiquidCrystal_I2C lcd (0x27, 16, 2); // Alamat I2C LCD 16x2
RTC_DS1307 rtc;
int buzzer = 3;
int relay = 4;
int sensorPin = A0;
int sensorValue = 0;
char nama2hari [7] [12] = {"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"};
void setup() {
// put your setup code here, to run once;
lcd.init();
lcd.backlight();
pinMode(sensorPin, INPUT);
pinMode(relay, OUTPUT);
pinMode(buzzer, OUTPUT);
if (! rtc.begin())
{
lcd.print("RTC Tidak Tersedia");
while (1);
}
if (! rtc.isrunning())
{
lcd.print("RTC Tidak Berfungsi");
}
//rtc.adjust(DateTime (F(DATE), F(TIME_)));
}
void loop() {
// put your main code here, to run repeatedly;
DateTime now = rtc.now();
lcd.setCursor(0, 0);
lcd.print(nama2hari[now.dayOfTheWeek()]);
lcd.print(" ");
lcd.print(now.day());
lcd.print("/");
lcd.print(now.month());
lcd.print("/");
lcd.print(now.year());
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(now.hour());
lcd.print(" : ");
lcd.print(now.minute());
lcd.print(" : ");
lcd.print(now.second());
lcd.print(" ");
if(now.hour()==12)
{
digitalWrite(relay, HIGH);
lcd.setCursor(13, 1);
lcd.print("ON ");
}else{
digitalWrite(relay, LOW);
lcd.setCursor(13, 1);
lcd.print("OFF");
}
sensorValue = analogRead(sensorPin);
if(sensorValue <100)
{
tone (buzzer, 300, 250);
delay(500);
tone (buzzer, 160, 250);
delay(500);
}else{
noTone (buzzer);
}
}