#define BLYNK_PRINT Serial
//#define BLYNK_TEMPLATE_ID "TMPLl9po5c6J"
//#define BLYNK_DEVICE_NAME "Project Pakan Ikan"
#define BLYNK_TEMPLATE_ID "TMPLlwX6SPb6"
#define BLYNK_DEVICE_NAME "DHTWokwi"
#include <ESP32Servo.h>
#include <BlynkSimpleEsp32.h>
#define ECHO_PIN 13
#define TRIG_PIN 12
#define LEDB_PIN 14
#define LEDK_PIN 27
#define LEDM_PIN 26
int buzzerPin = 33;
Servo servo;
char auth[] = "DmXvzH8uSZh1rslvPD0ZuHMTiN2YrPmz";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
servo.attach(18); // NodeMCU D8 pin
servo.write(0);
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LEDM_PIN, OUTPUT);
pinMode(LEDK_PIN, OUTPUT);
pinMode(LEDB_PIN, OUTPUT);
}
float readDistanceCM() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN, HIGH);
return duration * 0.034 / 2;
}
void loop()
{
Blynk.run();
timer.run();
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 > 45){
digitalWrite(LEDM_PIN, HIGH);
digitalWrite(LEDB_PIN, LOW);
digitalWrite(LEDK_PIN, LOW);
tone(buzzerPin, 150);
delay(1000);
Serial.print("Jarak: ");
Serial.println(distance);
Blynk.virtualWrite(V2, distance);
}
else if (distance <= 45 && distance >= 20){
digitalWrite(LEDK_PIN, HIGH);
digitalWrite(LEDM_PIN, LOW);
digitalWrite(LEDB_PIN, LOW);
noTone(buzzerPin);
Serial.print("Jarak: ");
Serial.println(distance);
Blynk.virtualWrite(V2, distance);
}
else {
digitalWrite(LEDB_PIN, HIGH);
digitalWrite(LEDK_PIN, LOW);
digitalWrite(LEDM_PIN, LOW);
noTone(buzzerPin);
Serial.print("Jarak: ");
Serial.println(distance);
Blynk.virtualWrite(V2, distance);
}
}
/*BLYNK_WRITE(V0)
{
//Blynk.write(distance);
}
BLYNK_WRITE(V1)
{
servo.write(0);
}
BLYNK_WRITE(V2)
{
servo.write(90);
}
BLYNK_WRITE(V3)
{
servo.write(180);
}*/