//======== Deklarasi library Blynk ==========
#define BLYNK_TEMPLATE_ID "TMPLB09MLU8U"
#define BLYNK_TEMPLATE_NAME "PARKIR"
#define BLYNK_AUTH_TOKEN "7vEwAe9tnVtuIgJpIJ0VXfv52asVdkff"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN; //Token Blynk
//===========================================
//=============== Koneksi WiFi ==============
char ssid[] = "Wokwi-GUEST"; //Nama WiFi yang digunakan
char pass[] = ""; //Password WiFi
//============Deklarasi Sensor===============
#define trigPin 13
#define echoPin 12
#define LEDsystem 18
#define LEDalarm 19
#define BUZZ 32
BlynkTimer timer;
//===========================================
//============= Widget Blynk ================
WidgetLED led1(V3);
WidgetLCD lcd(V1);
//===========================================
//=========== Deklarasi variabel ============
long duration;
long distance;
//===========================================
void setup() {
//===Debug console
Serial.begin(115200);
// Blynk.begin(auth, ssid, pass);
// You can also specify server:
Blynk.begin(auth, ssid, pass);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8442);
// code blynk akan jalan setiap 1 detik
//timer.setInterval(10L, sendSensor);
//===attempt to connect to Wifi network:
configTime(0, 0, "pool.ntp.org"); // get UTC time via NTP
Serial.print("Connecting to Wifi SSID ");
Serial.print(ssid);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(500);
}
Serial.print("\nWiFi connected. IP address: ");
Serial.println(WiFi.localIP());
// PIN sebagai...
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(BUZZ, OUTPUT);
pinMode(LEDsystem, OUTPUT);
pinMode(LEDalarm, OUTPUT);
Startup();
}
void loop() {
Blynk.run();
if (digitalRead(LEDsystem) == HIGH) {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
//Set the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
//Read the echoPin, return to sound wave travel time to microseconds
duration = pulseIn(echoPin, HIGH);
//Calculating the distance
distance = duration*0.034/2; //s=t*v
//kirim data ke blynk
Blynk.virtualWrite(V2, distance);
//LCD Di Blynk
lcd.print (0, 0, "Monitoring Jarak");
lcd.print (0, 1, "Jarak : " + String(distance) + " cm");
timer.run();
logic();
Serial.print("Durasi: ");
Serial.println(duration);
Serial.print("Jarak: ");
Serial.print(distance);
Serial.print (" cm");
Serial.println (" ");
delay(100);
}
else {
digitalWrite(LEDsystem, LOW);
Serial.println("Sistem OFF");
delay(1000);
}
}
//====================== Logika Jarak ==============================
void logic() {
if ( distance <= 5) {
Blynk.setProperty(V3, "color", "#FF0000"); //warna merah
led1.on();
digitalWrite(BUZZ, HIGH);
digitalWrite(LEDalarm, HIGH);
delay(60);
digitalWrite(BUZZ, LOW);
digitalWrite(LEDalarm, LOW);
delay(30);
//}
Serial.println(" MEPET");
}
else if (( distance > 5 ) && ( distance < 15)) {
Blynk.setProperty(V3, "color", "#FFE600"); // warna kuning
led1.on();
digitalWrite(BUZZ, HIGH);
digitalWrite(LEDalarm, HIGH);
delay(400);
digitalWrite(BUZZ, LOW);
digitalWrite(LEDalarm, LOW);
delay(400);
//}
Serial.println ( " DEKAT");
}
else if ( distance >= 15) {
Blynk.setProperty(V3, "color", "#2EFF26"); //warna hijau
led1.on();
delay(200);
Serial.println ( " JAUH");
}
}
//====================================================================
//======================= Kirim Data Sensor ==========================
void sendSensor() {
//clear the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
//Set the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
//Read the echoPin, return to sound wave travel time to microseconds
duration = pulseIn(echoPin, HIGH);
//Calculating the distance
distance = duration*0.034/2; //s=t*v
//kirim data ke blynk
Blynk.virtualWrite(V2, distance);
//LCD Di Blynk
lcd.print (0, 0, "Monitoring Jarak");
lcd.print (0, 1, "Jarak : " + String(distance) + " cm");
}
//====================================================================
//================== Bunyi Awal Saat Tersambung ======================
void Startup() {
// bunyi awal buzzer
digitalWrite(BUZZ, HIGH);
delay(500);
digitalWrite(BUZZ, LOW);
delay(500);
digitalWrite(BUZZ, HIGH);
delay(100);
digitalWrite(BUZZ, LOW);
delay(100);
digitalWrite(BUZZ, HIGH);
delay(300);
digitalWrite(BUZZ, LOW);
delay(200);
digitalWrite(BUZZ, HIGH);
delay(100);
digitalWrite(BUZZ, LOW);
}
//====================================================================