#include "RTClib.h"
#include <Servo.h>
#include "HX711.h"
HX711 scale;
RTC_DS1307 rtc;
#define servoPin 9 // Pin untuk mengontrol servo
#define feedDuration 5000 // Durasi pemberian pakan dalam milidetik
#define waktuMakan1 DateTime(0, 1, 1, 19,20 , 0) // Waktu pakan pertama
#define waktuMakan2 DateTime(0, 1, 1, 22, 25, 0) // Waktu pakan kedua
Servo myservo;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
void setup () {
Serial.begin(115200);
Wire.begin();
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
abort();
}
myservo.write(0);
myservo.attach(servoPin);
Serial.begin(9600);
Serial.println("Initializing the scale");
scale.begin(A1, A0);
}
void loop () {
DateTime now = rtc.now();
Serial.print("Current time: ");
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
Serial.println(scale.get_units(), 1);
if (now.hour() == waktuMakan1.hour() && now.minute() == waktuMakan1.minute() && now.second() == waktuMakan1.second()) {
// Waktu pakan pertama
Serial.print("Waktu makan pertama!");
myservo.write(90); // Buka tutupan wadah pakan
}
if (now.hour() == waktuMakan2.hour() && now.minute() == waktuMakan2.minute() && now.second() == waktuMakan2.second()) {
// Waktu pakan kedua
Serial.print("Waktu makan kedua!");
myservo.write(90); // Buka tutupan wadah pakan
}
delay(1000);
}