#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6Tl1TJRHA"
#define BLYNK_TEMPLATE_NAME "Kolam Ikan"
#define BLYNK_AUTH_TOKEN "kKO8AnNVrk1Iol-LJtoyLMqjkOSvKQtf"
#define ECHO_PIN 15
#define TRIG_PIN 4
#define vibrator 5
#define buzzer 18
int a = 0;
#include <ESP32Servo.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
Servo myservo;
BLYNK_WRITE(V2){
myservo.write(param.asInt());
int pinValue = param.asInt();
if (pinValue > 5) {
digitalWrite(vibrator, HIGH);
}else{
digitalWrite(vibrator, LOW);
}
if (a == 1){
Blynk.virtualWrite(V2, 0);
}
}
BLYNK_WRITE(V3){
int reset = (param.asInt());
if (reset == 0) {
a = 0;
}
if (reset == 1){
a = 1;
}
}
BlynkTimer timer;
void sendSensor()
{
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;
Serial.print("Jarak: ");
Serial.println(distance);
Blynk.virtualWrite(V0, "Jarak Pakan: "+String(distance)+ " Cm");
// Kondisi Pakan Penuh
if (a == 0){
if (distance >= 20 && distance <= 350){
Blynk.virtualWrite(V1, "Pakan Masih Ada");
Serial.println("Pakan Masih Ada");
}
if (distance > 350 && distance <= 380){
Blynk.virtualWrite(V1, "Pakan Mau Habis");
Serial.println("Pakan Mau Habis");
}
if (distance >380){
Blynk.virtualWrite(V1, "Pakan Habis");
Serial.println("Pakan Habis");
digitalWrite(vibrator, LOW);
myservo.write(0);
delay(15);
tone (buzzer, 120);
delay(500);
noTone(buzzer);
}
delay(100);
}
if (a == 1){
Blynk.virtualWrite(V1, "Segera Isi Pakan");
Serial.println("Segera Isi Pakan");
noTone(buzzer);
}
}
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(vibrator, OUTPUT);
pinMode(vibrator, OUTPUT);
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
timer.setInterval(1000L, sendSensor);
myservo.attach(2);
}
void loop() {
sendSensor();
Blynk.run();
timer.run();
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
ultrasonic1:VCC
ultrasonic1:TRIG
ultrasonic1:ECHO
ultrasonic1:GND
servo1:GND
servo1:V+
servo1:PWM
relay1:NO2
relay1:NC2
relay1:P2
relay1:COIL2
relay1:NO1
relay1:NC1
relay1:P1
relay1:COIL1
led1:A
led1:C
bz1:1
bz1:2