#include <Wire.h>
#include <RTClib.h>
RTC_DS1307 rtc;
//Koding LCD ----------------------------
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
//Koding Servo
#include <ESP32Servo.h>
const int servoPin = 5;
Servo mekanik;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
//Koding Servo
mekanik.attach(servoPin);
mekanik.write(0);
//Koding LCD -------------------------
lcd.init();
lcd.backlight();
lcd.clear();
// Coding RTC
Wire.begin();
if(!rtc.begin()){
Serial.println("RTC tidak terhubung");
while(1);
}
lcd.clear();
}
void loop() {
//Coding RTC
DateTime now = rtc.now();
int tahun = now.year();
int bulan = now.month();
int tanggal = now.day();
int jam = now.hour();
int menit = now.minute();
int detik = now.second();
//Koding LCD---------------------------
lcd.setCursor(0,0);
lcd.print(String() + "Tang.: " + tanggal + "-" + bulan + "-" + tahun);
lcd.setCursor(0,1);
lcd.print(String() + "Waktu: " + jam + ":" + menit + ":" + detik + " ");
Serial.println(String() + "Tanggal: " + tanggal + "-" + bulan + "-" + tahun);
Serial.println(String() + "Waktu: " + jam + "-" + menit + "-" + detik);
Serial.println();
//Jadwal Kasih Pakan pagi
if((jam==8) && (menit==43) && (detik==1)){
kasihpakanpagi();
}
//Jadwal Kasih Pakan siang
if((jam==8) && (menit==43) && (detik==30)){
kasihpakansiang();
}
//Jadwal Kasih Pakan malam
if((jam==8) && (menit==43) && (detik==50)){
kasihpakanmalam();
}
delay(1000); // this speeds up the simulation
}
//Koding Servo--------------------------
void kasihpakanpagi(){
lcd.clear();
lcd.print("PAKAN PAGI...");
mekanik.write(180);
delay(3000);
mekanik.write(0);
lcd.clear();
}
void kasihpakansiang(){
lcd.clear();
lcd.print("PAKAN SIANG..");
mekanik.write(90);
delay(3000);
mekanik.write(0);
lcd.clear();
}
void kasihpakanmalam(){
lcd.clear();
lcd.print("PAKAN MALAM..");
mekanik.write(45);
delay(3000);
mekanik.write(0);
lcd.clear();
}