#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6TTEZcUVs"
#define BLYNK_TEMPLATE_NAME "samsul tool"
#define BLYNK_AUTH_TOKEN "bixppdXfO3kWNqbUZ2AWxw9xluB945Ol"
// Note : Inlude Library I2C LCD
#include <LiquidCrystal_I2C.h>
#include <BlynkSimpleEsp32.h>
#include <WiFi.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 sebelumnya
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()
{
//trigger as a output
Serial.begin(115200);
pinMode(trigpin1, OUTPUT);
pinMode(trigpin2, OUTPUT);
//echo as a input
pinMode(echopin1, INPUT);
pinMode(echopin2, INPUT);
lcd.init() ;
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("samsul huda");
lcd.setCursor(0, 1);
lcd.print("13");
delay(3000);
lcd.clear();
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
timer.setInterval(1000, sendData);
}
void loop()
{
Blynk.run();
timer.run();
}
void sendData()
{
String status;
//sensor1
digitalWrite(trigpin1, LOW);
delayMicroseconds(2);
digitalWrite(trigpin1, HIGH);
delayMicroseconds(10);
digitalWrite(trigpin1, LOW);
durasi1 = pulseIn(echopin1, HIGH);
jarak1 = durasi1 * 0.034 / 2;
//sensor2
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("tool 1 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("tool 1 ready");
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("tool 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("tool 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);
// Mengirim data ke database
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
String serverPath = "http://http://127.0.0.1//insert_data1.php?status_sensor1=" + String(jarak1) + "&status_sensor2=" + String(jarak2);
http.begin(serverPath.c_str());
int httpResponseCode = http.GET();
if (httpResponseCode > 0) {
String response = http.getString();
Serial.println("Response: " + response);
} else {
Serial.println("Error on sending data: " + String(httpResponseCode));
}
http.end();
} else {
Serial.println("WiFi Disconnected");
}
}