#include <ESP32Servo.h>
#include "DS1307.h"
//led
#define led1 12 //hijau
#define led2 14 //merah
Servo myservo;
int pos = 0;
//RTC
DS1307 rtc(SDA, SCL);
Time t; //define a name for the time function
//The start and end times of the desired operation
//The start and end times of the desired operation
const int JamMakan1 = 7;
const int MenitMakan1 = 00;
const int DetikMakan1 = 00;
const int JamMakan2 = 12;
const int MenitMakan2 = 00;
const int DetikMakan2 = 00;
const int JamMakan3 = 17;
const int MenitMakan3 = 00;
const int DetikMakan3 = 00;
//Servo myservo; //create servo object to control a servo… a maximum of 8 servos can be created
//int pos = 0; //variable to store the servo position
#define ECHO_PIN 2
#define TRIG_PIN 15
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
//led
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
//Servo
myservo.attach(13);
//RTC
rtc.begin();
}
void loop() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN, HIGH);
float distance = duration * 0.034 / 2;
if (distance < 100)
{
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
}
if (distance > 100)
{
digitalWrite(led2, HIGH);
digitalWrite(led1, LOW);
}
Serial.print("Jarak: ");
Serial.println(distance);
delay(100);
//otomatis gate pakan
// put your main code here, to run repeatedly:
// t = rtc.getTime();
// Serial.print(t.hour);
//Serial.print (" hour(s),");
// Serial.print (t.min);
// Serial.print (" minute(s)");
// Serial.println(" ");
// delay (1000);
t = rtc.getTime();
Hour = t.hour;
Min = t.min;
Sec = t.sec;
Serial.print(Hour);
Serial.print(":");
Serial.print(Min);
Serial.print(":");
Serial.println(Sec);
//set the time for fish feeding
if ((Hour == JamMakan1 && Min == MenitMakan1 && Sec == DetikMakan1) || (Hour == JamMakan2 && Min == MenitMakan2 && Sec == DetikMakan2)||(Hour == JamMakan3 && Min == MenitMakan3 && Sec == DetikMakan3)) {
myservo.write(0);
delay (300);
myservo.write(45);
delay (300);
}
}