//sebagai penghubung blynk
#define BLYNK_TEMPLATE_ID "TMPLm7e5rvdx"
#define BLYNK_DEVICE_NAME "gate parkir"
#define BLYNK_AUTH_TOKEN "4FNosyoMrhtl9sIey-k1U6fkmmwI-uLc"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[]= BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
#include <ESP32Servo.h>
#define Trigpin 19 //ultrasonic sensor trig pin
#define Echopin 5 // ultrasonic Sensor Echo
#define SERVO_PIN 21 // Servo Motor pin
#define LED_MERAH 26
#define LED_HIJAU 14
#define buzz 27
Servo servo; // membuat obj servo, mengontrol servo
float duration, distance;
long number = 0;
void setup() {
Serial.begin(9600); //menginisialisasi port serial
pinMode(Trigpin, OUTPUT); //set Trigger pin untuk output
pinMode(Echopin, INPUT); //set echo pin untuk output
servo.attach(SERVO_PIN); //menempelkan servo pada pin 21 ke objek servo
servo.write(0);
pinMode(LED_HIJAU, OUTPUT);
pinMode(LED_MERAH, OUTPUT);
pinMode(buzz, OUTPUT);
Blynk.begin(auth, ssid, pass);
}
void loop() {
//untuk menghasilkan 10-microsecond pulse ke TRIGGER pin
digitalWrite(Trigpin, HIGH);
delayMicroseconds(10);
digitalWrite(Trigpin, LOW);
//mengukur durasi pulse dari ECHO pin
duration = pulseIn(Echopin, HIGH);
//kalkulasi distance
distance = duration/58.2;
if (distance < 10){
servo.write(0); //putar servo hingga 90 derajat
digitalWrite(LED_HIJAU, HIGH);
digitalWrite(LED_MERAH, LOW);
tone(buzz,500,1000); //pin, frequensi, durasi
number++;
}
else{
servo.write(90); //putar servo hingga 0 derajat
digitalWrite(LED_HIJAU, LOW);
digitalWrite(LED_MERAH, HIGH);
}
//cetak nilainya ke serial Monitor
Serial.print("Jarak : ");
Serial.print(distance);
Serial.println(" cm");
Serial.print("Jumlah Kendaraan yang Lewat: ");
Serial.print(number);
Serial.println();
Blynk.virtualWrite(V1, number);
delay(3000);
Blynk.run();
timer.run();
}