#define BLYNK_TEMPLATE_ID "TMPL6opduA9Le"
#define BLYNK_TEMPLATE_NAME "Toilet Paper detection system"
#define BLYNK_AUTH_TOKEN "fc6i8GZauJzea_6fTz85U_Gg1F2cNj5K"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN ; //Auth Token
char ssid[] = "Wokwi-GUEST"; //nama hotspot yang digunakan
char pass[] = ""; //password hotspot yang digunakan
int duration;
int distance;
#define trig 4
#define echo 2
WidgetLED led1(V1);
BlynkTimer timer;
void sonardata()
{
digitalWrite(trig, LOW); // Makes trigPin low
delayMicroseconds(2); // 2 micro second delay
digitalWrite(trig, HIGH); // tigPin high
delayMicroseconds(10); // trigPin high for 10 micro seconds
digitalWrite(trig, LOW); // trigPin low
duration = pulseIn(echo, HIGH); //Read echo pin, time in microseconds
distance = duration * 0.034 / 2; //Calculating actual/real distance
Serial.print("Distance = "); //Output distance on arduino serial monitor
Serial.println(distance);
if(distance>80 && distance<120)
{
Serial.println("full toilet paper");
Blynk.logEvent("paper_out","full paper");
}
else if(distance>120 && distance<160)
{
Serial.println("half toilet roll");
led1.on();
delay(500);
led1.off();
}
else if(distance>160 && distance<180)
{
Serial.println("out of toilet paper");
}
Blynk.virtualWrite(V3,distance);
}
void setup()
{
Serial.begin(115200); //serial monitor menggunakan bautrate 9600
pinMode(trig, OUTPUT); // Sets the trigPin as an Output
pinMode(echo, INPUT); // Sets the echoPin as an Inpu
Blynk.begin(auth, ssid, pass); //memulai Blynk
timer.setInterval(1000, sonardata);
}
void loop()
{
Blynk.run(); //menjalankan blynk
timer.run(); //menjalankan tim
}