#include <WiFi.h>
#include <WiFiClient.h>
#include "ThingsBoard.h"
#include "DHTesp.h"
#define LED_Merah 13
#define LED_Kuning 12
#define LED_Hijau 14
#define Trig 4
#define Echo 15
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define token "TdWfGeFncGwLejUDFh1h"
#define thingsboard_server "thingsboard.cloud"
BlynkTimer timer;
float jarak = 0;
float tinggi_air = 0;
void baca_jarak()
{
digitalWrite(Trig, LOW);
delayMicroseconds(2);
digitalWrite(Trig, HIGH);
delayMicroseconds(10);
digitalWrite(Trig, LOW);
int duration = pulseIn(Echo, HIGH);
jarak = duration * 0.034 / 2;
Serial.print("Jarak: ");
Serial.print(jarak);
Serial.println(" CM");
}
void kirim_blynk()
{
Blynk.virtualWrite(V0, tinggi_air);
if (jarak < 100)
{
Blynk.virtualWrite(V1, 0);
Blynk.virtualWrite(V2, 0);
Blynk.virtualWrite(V3, 1);
}
else if (jarak >= 100 && jarak <= 150)
{
Blynk.virtualWrite(V1, 0);
Blynk.virtualWrite(V2, 1);
Blynk.virtualWrite(V3, 0);
}
else if (jarak > 150)
{
Blynk.virtualWrite(V1, 1);
Blynk.virtualWrite(V2, 0);
Blynk.virtualWrite(V3, 0);
}
}
void setup() {
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
pinMode(LED_Merah, OUTPUT);
pinMode(LED_Kuning, OUTPUT);
pinMode(LED_Hijau, OUTPUT);
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
timer.setInterval(1000L, kirim_blynk);
}
void loop() {
digitalWrite(LED_Merah, LOW);
digitalWrite(LED_Kuning, LOW);
digitalWrite(LED_Hijau, LOW);
baca_jarak();
tinggi_air = 350 - jarak;
Serial.print("Ketinggian Air: ");
Serial.print(tinggi_air);
Serial.println(" CM");
if (jarak < 100)
{
digitalWrite(LED_Merah, HIGH);
}
else if (jarak >= 100 && jarak <= 150)
{
digitalWrite(LED_Kuning, HIGH);
}
else if (jarak > 150)
{
digitalWrite(LED_Hijau, HIGH);
}
Blynk.run();
timer.run();
delay(500);
}