#include <ESP32Servo.h>
#define BLYNK_TEMPLATE_ID "TMPL66fTNQZEG"
#define BLYNK_TEMPLATE_NAME "TGS AKHIR PLE 010 RAMOS"
#define BLYNK_AUTH_TOKEN "YxrobIzqJeEb1xW1HyM8Xxl0qzckgKA7"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
int ultrasonicTrigPin1 = 26; // GPIO pin for ultrasonic sensor 1 trigger
int ultrasonicEchoPin1 = 27; // GPIO pin for ultrasonic sensor 1 echo
int ultrasonicTrigPin2 = 14; // GPIO pin for ultrasonic sensor 2 trigger
int ultrasonicEchoPin2 = 12; // GPIO pin for ultrasonic sensor 2 echo
Servo garageDoor;
bool doorStatus = false;
BLYNK_WRITE(V0)
{
int pinValue = param.asInt();
if (pinValue == 1)
{
doorStatus = true;
}
else
{
doorStatus = false;
}
}
void setup()
{
Serial.begin(115200);
garageDoor.attach(25);
Blynk.begin(auth, ssid, pass);
pinMode(ultrasonicTrigPin1, OUTPUT);
pinMode(ultrasonicEchoPin1, INPUT);
pinMode(ultrasonicTrigPin2, OUTPUT);
pinMode(ultrasonicEchoPin2, INPUT);
}
void loop()
{
Blynk.run();
if (doorStatus == true)
{
garageDoor.write(0);
Serial.println("Buka garasi");
}
else
{
// Ultrasonic sensor 1 logic
long duration1;
int distance1;
digitalWrite(ultrasonicTrigPin1, LOW);
delayMicroseconds(2);
digitalWrite(ultrasonicTrigPin1, HIGH);
delayMicroseconds(10);
digitalWrite(ultrasonicTrigPin1, LOW);
duration1 = pulseIn(ultrasonicEchoPin1, HIGH);
distance1 = duration1 * 0.034 / 2;
Serial.print("Distance 1: ");
Serial.println(distance1);
if (distance1 < 100)
{
garageDoor.write(0);
Serial.println("Buka garasi");
}
else
{
garageDoor.write(180);
Serial.println("Tutup garasi");
}
// Ultrasonic sensor 2 logic
long duration2;
int distance2;
digitalWrite(ultrasonicTrigPin2, LOW);
delayMicroseconds(2);
digitalWrite(ultrasonicTrigPin2, HIGH);
delayMicroseconds(10);
digitalWrite(ultrasonicTrigPin2, LOW);
duration2 = pulseIn(ultrasonicEchoPin2, HIGH);
distance2 = duration2 * 0.034 / 2;
Serial.print("Distance 2: ");
Serial.println(distance2);
// Display the result on Blynk
if (distance2 < 50)
{
Blynk.virtualWrite(V2, "Ada kendaraan dalam garasi");
}
else
{
Blynk.virtualWrite(V2, "Tidak ada kendaraan dalam garasi");
}
}
}