#define BLYNK_TEMPLATE_ID "TMPLUcb24bPO"
#define BLYNK_DEVICE_NAME "Sensor Jarak"
#define BLYNK_AUTH_TOKEN "crtJfP8pP_10bThGKHgd_cK6F8a2tk79"
char auth[] = "crtJfP8pP_10bThGKHgd_cK6F8a2tk79";
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include "DHTesp.h"
const int DHT_PIN = 27;
DHTesp dhtSensor;
#define BLYNK_PRINT Serial
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
String note;
String noted;
long bacaJarakCM(){ //bisa di ganti dengan float / int
digitalWrite(2,0);
delayMicroseconds(2);
digitalWrite(2,1);
delayMicroseconds(10);
digitalWrite(2,0);
int durasi = pulseIn(15,1);
//return durasi * 0.034 / 2;
return (durasi / 2) / 29.1;
}
void deteksi() {
int jarak = bacaJarakCM();
Serial.print("Jarak Air: ");
Serial.print(bacaJarakCM());
Serial.print("cm | ");
Serial.println(note);
Blynk.virtualWrite(V0, bacaJarakCM());
Blynk.virtualWrite(V1, note);
if (jarak <= 100){
digitalWrite(13, HIGH); //LED Merah
digitalWrite(12, LOW);
digitalWrite(14, LOW);
Blynk.virtualWrite(V2, 1);
Blynk.virtualWrite(V3, 0);
Blynk.virtualWrite(V4, 0);
note ="Bahaya";
}
else if(jarak >= 100 && jarak <=150) {
digitalWrite(13, LOW);
digitalWrite(12, LOW); //LED Kuning
digitalWrite(14, LOW);
Blynk.virtualWrite(V2, 0);
Blynk.virtualWrite(V3, 1);
Blynk.virtualWrite(V4, 0);
note = "Siaga";
}
else if(jarak >= 150){
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(14, HIGH); // LED Hijau
Blynk.virtualWrite(V2, 0);
Blynk.virtualWrite(V3, 0);
Blynk.virtualWrite(V4, 1);
note = "Aman";
}
else {
digitalWrite(13, LOW); //LED Merah
digitalWrite(12, LOW); //LED Kuning
digitalWrite(14, LOW); // LED Hijau
Blynk.virtualWrite(V2, 0);
Blynk.virtualWrite(V3, 0);
Blynk.virtualWrite(V4, 0);
note = "";
}
delay(50);
}
void setup()
{
pinMode(13, OUTPUT); //LED Merah
pinMode(12, OUTPUT); //LED Kuning
pinMode(14, OUTPUT); //LED Hijau
pinMode(2, OUTPUT); // Trig
pinMode(15, INPUT); //Echo
Serial.begin(9600);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
Blynk.begin(auth, ssid, pass);
timer.setInterval(2000L, deteksi);
}
void bacaSuhu()
{
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
// Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("---");
Blynk.virtualWrite(V5, data.temperature); //mengirimkan data ke Virtual pin di Blynk Cloud
// Blynk.virtualWrite(V6, data.humidity);
delay(500);
Serial.print("Suhu Air Aquarium | ");
Serial.println(noted);
if(data.temperature <= 28){
digitalWrite(13, HIGH); //LED Merah
digitalWrite(12, LOW);
digitalWrite(14, LOW);
Blynk.virtualWrite(V2, 1);
Blynk.virtualWrite(V3, 0);
Blynk.virtualWrite(V4, 0);
noted ="Dingin";
}
else if(data.temperature >= 28 && data.temperature <= 34){
digitalWrite(13, LOW);
digitalWrite(12, LOW); //LED Kuning
digitalWrite(14, LOW);
Blynk.virtualWrite(V2, 0);
Blynk.virtualWrite(V3, 1);
Blynk.virtualWrite(V4, 0);
noted = "Normal";
}
else if(data.temperature >= 35){
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(14, HIGH); // LED Hijau
Blynk.virtualWrite(V2, 0);
Blynk.virtualWrite(V3, 0);
Blynk.virtualWrite(V4, 1);
noted = "Panas";
}
else {
digitalWrite(13, LOW); //LED Merah - Pompa PH
digitalWrite(12, LOW); //LED Kuning - Pompa Isi Air
digitalWrite(14, LOW); // LED Hijau
Blynk.virtualWrite(V2, 0);
Blynk.virtualWrite(V3, 0);
Blynk.virtualWrite(V4, 0);
noted = "";
}
delay(50);
}
void loop()
{
bacaSuhu();
deteksi();
Blynk.run();
timer.run();
}