#define BLYNK_TEMPLATE_ID "TMPL67OIGFVE_"
#define BLYNK_TEMPLATE_NAME "Tong Sampah"
#define BLYNK_AUTH_TOKEN "IDyG_L23oLEo8czdEFAk-UwKDOs9P2tq"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#define ultrasonic
#define LiquidCrystal_I2C
char auth [] = "IDyG_L23oLEo8czdEFAk-UwKDOs9P2tq:";
char ssid [] = "Wokwi-GUEST";
char pass [] = "";
LiquidCrystal_I2C lcd (0x27, 16, 2);
BlynkTimer timer;
int MaxLevel = 400;
int Level1 = 350;
int Level2 = 250;
int Level3 = 100;
int Level4 = 2;
const int trigPin = 12;
const int echoPin = 13;
void setup() {
Serial.begin(115200);
Serial.println("Bin Level");
Blynk.begin(auth, ssid, pass);
lcd.init();
lcd.backlight();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void ultrasonic () {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long t = pulseIn(echoPin, HIGH);
int distance = t / 29 / 2;
long duration = pulseIn(echoPin, HIGH);
float distance_cm = duration * 0.034 / 2;
Serial.println(distance);
if (distance <= MaxLevel+10) {}
lcd.setCursor(0, 0);
lcd.print("Level :");
if (Level1 <= distance) {
lcd.setCursor(8, 0);
lcd.print("Very Low");
lcd.setCursor(0, 1);}
else if (Level2 <= distance && Level1 > distance) {
lcd.setCursor(8, 0);
lcd.print("Low");
lcd.print(" ");
lcd.setCursor(0, 1);}
else if (Level3 <= distance && Level2 > distance) {
lcd.setCursor(8, 0);
lcd.print("Medium");
lcd.print(" ");
lcd.setCursor(0, 1);}
else if (Level4 <= distance && Level3 > distance) {
lcd.setCursor(8, 0);
lcd.print("Full");
lcd.print(" ");}
else if (distance < Level4) {
lcd.setCursor(8, 0);
lcd.print("Full !");
lcd.print(" ");}
}
Blynk.virtualWrite(V0);
void loop() {
Blynk.run();
timer.run();
}