#define BLYNK_TEMPLATE_ID "TMPL6IOFiX5ur"
#define BLYNK_TEMPLATE_NAME "Firmware IOT"
#define BLYNK_AUTH_TOKEN "cuUs3k8ffAEygXV-8cFhj5xp_3EUWxAA"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <ESP32Servo.h>
#include "RTClib.h"
#define AUTH BLYNK_AUTH_TOKEN
#define WIFI_AP "Wokwi-GUEST"
#define WIFI_PASS ""
Servo servo1;
RTC_DS1307 rtc;
BlynkTimer timer;
char daysOfTheWeek[7][12] = {"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jum'at", "Sabtu"};
String tahun, bulan, hari;
String jam, menit, detik;
String tanggal;
String waktu;
String hariIni;
void setup() {
Serial.begin(115200);
servo1.attach(19);
servo1.write(0);
rtc.begin();
Blynk.begin(AUTH, WIFI_AP, WIFI_PASS);
timer.setInterval(1000L, kasihMakan);
}
BLYNK_WRITE(V0){
int gerak = param.asInt();
servo1.write(gerak);
Blynk.virtualWrite(V0, gerak);
}
void kasihMakan() {
DateTime now = rtc.now();
int jamMakan = now.hour();
int menitMakan = now.minute();
int detikMakan = now.second();
// Cek apakah waktu saat ini sesuai dengan jadwal pemberian makan
if ((jamMakan == 8 || jamMakan == 14 || jamMakan == 18) && menitMakan == 5 && detikMakan == 0) {
Serial.println("Waktunya memberi makan!");
servo1.write(90); // Gerakkan servo ke 90 derajat
delay(500); // Tunggu sebentar
servo1.write(0); // Kembalikan servo ke 0 derajat
}
}
void loop() {
Blynk.run();
timer.run();
}