#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL61_TYHEvg"
#define BLYNK_TEMPLATE_NAME "Quicstart Template"
#define BLYNK_AUTH_TOKEN "24wy6jl9GHVSLdg9Jv7GEhHsH_sIkU1_"
#include <BlynkSimpleEsp32.h>
//cOAkdRS3ryzI1zBRNsJvrPr-631zyG8h
//
#include <RTClib.h>
RTC_DS1307 rtc;
byte tanggal, bulan, jam, menit, detik;
int tahun;
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd (0x27, 16, 2);
#include <ESP32Servo.h>
Servo mekanik;
#define pin_servo 5
#include <EEPROM.h>
byte jam1, menit1, jam2, menit2;
void setup() {
Serial.begin(115200);
Blynk.begin(BLYNK_AUTH_TOKEN, "Wokwi-GUEST", "");
EEPROM.begin(512);
jam1 = EEPROM.read(1);
menit1 = EEPROM.read(2);
jam2 = EEPROM.read(3);
menit2 = EEPROM.read(4);
Serial.println(String() + "JADWAL1: " + jam1 + ":" + menit1);
Serial.println(String() + "JADWAL2: " + jam2 + ":" + menit2);
delay(3000);
mekanik.attach(pin_servo, 500, 2400);
mekanik.write(0);
lcd.init();
lcd.backlight();
if (!rtc.begin()) {
Serial.println("RTC Bermasalah, Silakan cek Koneksi");
Serial.flush();
abort();
}
// rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
void loop() {
Blynk.run();
DateTime now = rtc.now();
tanggal = now.day();
bulan = now.month();
tahun = now.year();
jam = now.hour();
menit = now.minute();
detik = now.second();
Serial.println(String() + tanggal + "-" + bulan + "-" + tahun );
Serial.println(String() + jam + ":" + menit + ":" + detik);
Serial.println();
lcd.setCursor(0, 0);
lcd.print(String() + tanggal + "-" + bulan + "-" + tahun + " ");
lcd.setCursor(0, 1);
lcd.print(String() + jam + ":" + menit + ":" + detik + " ");
//JADWAL 1
if ( (jam == jam1) && (menit == menit1) && (detik == 1) ) {
kasih_pakan();
}
//JADWAL 2
if ( (jam == jam2) && (menit == menit2) && (detik == 1) ) {
kasih_pakan();
}
delay(100);
}
void kasih_pakan() {
mekanik.write(90);
Blynk.logEvent("status_kasih_pakan");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("WAKTUNYA BERI");
lcd.setCursor(0, 1);
lcd.print("PAKAN !!!");
delay(3000);
mekanik.write(0);
lcd.clear();
}
BLYNK_WRITE(V0) {
byte pinValue = param.asInt();
jam1 = pinValue;
EEPROM.write(1, jam1);
EEPROM.commit();
Serial.print("Nilai Settingan Jam1: ");
Serial.println(jam1);
}
BLYNK_WRITE(V1) {
byte pinValue = param.asInt();
menit1 = pinValue;
EEPROM.write(2, menit1);
EEPROM.commit();
Serial.print("Nilai Settingan Menit1: ");
Serial.println(menit1);
}
BLYNK_WRITE(V2) {
byte pinValue = param.asInt();
jam2 = pinValue;
EEPROM.write(3, jam2);
EEPROM.commit();
Serial.print("Nilai Settingan Jam2: ");
Serial.println(jam2);
}
BLYNK_WRITE(V3) {
byte pinValue = param.asInt();
menit2 = pinValue;
EEPROM.write(4, menit2);
EEPROM.commit();
Serial.print("Nilai Settingan Menit2: ");
Serial.println(menit2);
}
BLYNK_WRITE(V4) {
byte pinValue = param.asInt();
Serial.print("Tombol: ");
Serial.println(pinValue);
if (pinValue == 1) {
kasih_pakan();
Blynk.virtualWrite(V4, 0);
}
}