#include <Servo.h>
#include <Wire.h>
#include <RTClib.h>

#define TRIG_PIN 6
#define ECHO_PIN 7
#define SERVO_PIN 9

Servo foodDispenser;
RTC_DS3231 rtc;

void setup() {
  foodDispenser.attach(SERVO_PIN);
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);

  Serial.begin(9600);
  if (!rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }

  if (rtc.lostPower()) {
    Serial.println("RTC lost power, set the time!");
    // rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // Uncomment this line and set the time
  }
}

void loop() {
  DateTime now = rtc.now();

  // Contoh pemberian makan pada jam 7 pagi dan 5 sore
  if ((now.hour() == 7 || now.hour() == 17) && now.minute() == 0) {
    dispenseFood();
    delay(60000); // Tunggu 1 menit untuk menghindari pemberian makanan berulang dalam satu menit
  }

  delay(1000); // Tunda 1 detik sebelum mengulangi loop
}

void dispenseFood() {
  foodDispenser.write(90); // Posisi untuk mengeluarkan makanan
  delay(5000); // Tunggu 5 detik untuk memastikan makanan keluar
  foodDispenser.write(0); // Kembali ke posisi awal
  Serial.println("Makanan diberikan!");
}
$abcdeabcde151015202530fghijfghij
GND5VSDASCLSQWRTCDS1307+