#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6gXpGMSXJ"
#define BLYNK_TEMPLATE_NAME "UltraSonic Sensor"
#define BLYNK_AUTH_TOKEN "VNG5IVt8uDseRjHs4-W4zCBLf_SwF5T5"
// Note : Inlude Library I2C LCD
#include <LiquidCrystal_I2C.h>
#include <BlynkSimpleEsp32.h>
#include <WiFiNINA.h>
//Sensor 1
const int trigPin1 = 13;
const int echoPin1 = 12;
//Sensor 2
const int trigPin2 = 26 ;
const int echoPin2 = 27;
//Durasi
long durasi1 ;
long durasi2 ;
//Jarak
float jarak1 ;
float jarak2 ;
//Simpan data jarak sebelum nya
float prevjarak1 = 0 ;
float prevjarak2 = 0 ;
// 0x27 atau 0x3f Alamat, kolom, baris
LiquidCrystal_I2C lcd (0x27, 16, 2 ) ;
//SSID, PASSWORD
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer ;
void setup()
{
Serial.begin(9600);
//Trigger as a output
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
//Setup LCD
lcd.init();
lcd.backlight();
lcd.setCursor (0,0); //Set Cursor Print
lcd.print("Samsul Huda");
// Baris, Kolom
lcd.setCursor (0,1); //Set Cursor Print
lcd.print("41422110059");
delay(3000);
lcd.clear();
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass) ;
timer.setInterval (1000L, sendData) ;
}
void loop()
{
Blynk.run() ;
timer.run() ;
}
void sendData()
{
String status ;
// Sensor 1
digitalWrite(trigPin1, LOW);
delayMicroseconds(2);
digitalWrite(trigPin1, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin1, LOW);
durasi1 = pulseIn(echoPin1, HIGH);
jarak1 = durasi1 * 0.034 / 2;
// Sensor 2
digitalWrite(trigPin2, LOW);
delayMicroseconds(2);
digitalWrite(trigPin2, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin2, LOW);
durasi2 = pulseIn(echoPin2, HIGH);
jarak2 = durasi2 * 0.034 / 2;
if (jarak1 > 10)
{
lcd.setCursor(0, 0);
lcd.print("TOOLS 1");
lcd.setCursor(0, 1);
lcd.print("BARANG TERAMBIL");
delay(2000);
lcd.clear();
Serial.println("------------------");
Serial.println("Sensor 1: Barang Terambil");
status = "Barang Terambil" ;
Blynk.virtualWrite(V0, status);
}
else if (jarak1 < 10)
{
lcd.setCursor(0, 0);
lcd.print("TOOLS 1");
lcd.setCursor(0, 1);
lcd.print("BARANG DITEMUKAN");
delay(2000);
lcd.clear();
Serial.println("------------------");
Serial.println("Sensor 1: Barang Ready");
status = "Barang Ready" ;
Blynk.virtualWrite(V0, status);
}
if (jarak2 > 10)
{
lcd.setCursor (0,0);
lcd.print("TOOLS 2 TERAMBIL");
delay(2000);
lcd.clear();
Serial.println("-------------------");
Serial.println("Sensor 2 : Barang Terambil");
status = "Barang Terambil" ;
Blynk.virtualWrite(V1, status);
}
else if (jarak2 < 10)
{
lcd.setCursor (0,0);
lcd.print("TOOLS 2 READY");
delay(2000);
lcd.clear();
Serial.println("-------------------");
Serial.println("Sensor 2 : Barang Ready");
status = "Barang Ready" ;
Blynk.virtualWrite(V1, status);
}
prevjarak1 = jarak1 ;
prevjarak2 = jarak2 ;
delay(2000);
}