#define BLYNK_TEMPLATE_ID "TMPL6-llikyfw"
#define BLYNK_TEMPLATE_NAME "Soil Moisture Sensor"
#define BLYNK_AUTH_TOKEN "L6OrmJorRsB5PjT49Ek3uy4wS2RqPaTM"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
// Mendefinisikan pin
const int sensorPin = A0;
const int relayPin = 17;
const int ledPin = 2; // Opsional
// Batas kelembaban tanah (nilai potensiometer)
const int threshold = 2000;
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = ""; //password hotspot yang digunakan
void setup() {
// Memulai Serial Monitor
Serial.begin(115200);
// Mengatur pin sebagai output
pinMode(relayPin, OUTPUT);
pinMode(ledPin, OUTPUT); // Opsional
// Menghubungkan ke WiFi
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
// Menghubungkan ke Blynk
Blynk.begin(auth, ssid, pass);
}
void loop() {
// Menjalankan fungsi Blynk
Blynk.run();
// Membaca nilai potensiometer
int sensorValue = analogRead(sensorPin);
Serial.print("Soil Moisture Value: ");
Serial.println(sensorValue);
// Mengirim nilai sensor kelembaban tanah ke Blynk
Blynk.virtualWrite(V0, sensorValue);
// Mengontrol pompa air berdasarkan nilai potensiometer
if (sensorValue < threshold) {
digitalWrite(relayPin, LOW); // Mengaktifkan pompa
digitalWrite(ledPin, HIGH); // Menyalakan LED (opsional)
Blynk.virtualWrite(V1, 1); // Mengirimkan status aktif ke Blynk
} else {
digitalWrite(relayPin, HIGH); // Mematikan pompa
digitalWrite(ledPin, LOW); // Mematikan LED (opsional)
Blynk.virtualWrite(V1, 0); // Mengirimkan status mati ke Blynk
}
delay(1000); // Penundaan 1 detik
}