#include <LiquidCrystal_I2C.h>
#include <RTClib.h>
#include <Wire.h>
#include <Servo.h>
LiquidCrystal_I2C lcd(0x27,16,2);
RTC_DS1307 RTC;
DateTime baca_rtc;
int jam, menit;
int relay = 2;
Servo myservo;
void setup() {
pinMode (relay, OUTPUT);
digitalWrite (relay, OUTPUT);
myservo.attach(10);
delay (2000);
myservo.write(0);
Serial.begin(9600);
lcd.init();
lcd.backlight();
RTC.begin();
Serial.println("Jam Digital");
lcd.setCursor(4,0);
lcd.print("Project");
lcd.setCursor(2,1);
lcd.print("Jam Digital");
delay(1000);
lcd.clear();
}
void loop() {
int jam = 11;
int menit = 37;
Display_RTC();
if(baca_rtc.hour() == jam && baca_rtc.minute() == menit){
myservo.write(180);
digitalWrite(relay, LOW);
while(baca_rtc.hour() == jam && baca_rtc.minute() == menit) {
Display_RTC();
if(baca_rtc.second() >= 6){
myservo.write(0);
digitalWrite(relay, HIGH);
}
}
}
}
void Display_RTC(){
baca_rtc=RTC.now();
lcd.setCursor(0,0);
lcd.print("DATE: ");
lcd.print(baca_rtc.year());
lcd.print("-");
lcd.print(baca_rtc.month());
lcd.print("-");
lcd.print(baca_rtc.day());
lcd.setCursor(0,1);
lcd.print("TIME: ");
lcd.print(baca_rtc.hour());
lcd.print(":");
lcd.print(baca_rtc.minute());
lcd.print(":");
lcd.print(baca_rtc.second());
lcd.print(" ");
}