#define ECHO_PIN 18
#define TRIG_PIN 5
#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6XiFCbUlj"
#define BLYNK_TEMPLATE_NAME "BIN Controller"
#define BLYNK_AUTH_TOKEN "PxX_NeXCUymaHGs4jK4GEgrmoXt_RoXY"
#include <WiFi.h>
#include <WiFiClient.h>
#include "ThingSpeak.h" // always include thingspeak header file after other header files and custom macros
#include <BlynkSimpleEsp32.h>
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
float distance;
unsigned long myChannelNumber = 2351651;
const char *myWriteAPIKey = "YZLUJ97SB1THB187";
WiFiClient client;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
ThingSpeak.begin(client); // Initialize ThingSpeak
}
void condition()
{
if (distance <= 20)
{
Blynk.virtualWrite(V0, 1);
Blynk.virtualWrite(V1, 0);
Blynk.virtualWrite(V2, 0);
}
else if (distance <= 69)
{
Blynk.virtualWrite(V0, 0);
Blynk.virtualWrite(V1, 1);
Blynk.virtualWrite(V2, 0);
}
else
{
Blynk.virtualWrite(V0, 0);
Blynk.virtualWrite(V1, 0);
Blynk.virtualWrite(V2, 1);
}
Blynk.virtualWrite(V3, distance);
}
float readDistanceCM() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN, HIGH);
return duration * 0.034 / 2;
}
void loop() {
Blynk.run();
distance = readDistanceCM();
Serial.print("Jarak : ");
Serial.println(distance);
condition();
int x;
while (x != 200) {
x = ThingSpeak.writeField(myChannelNumber, 1, distance, myWriteAPIKey);
delay(50);
}
Serial.println("Channel update successful.");
delay(100);
}