#include <ESP32Servo.h>
#define SensorPIR 32
#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPLfe9IC9Aq"
#define BLYNK_DEVICE_NAME "Tugas 9 Smart Irrigation"
#define BLYNK_AUTH_TOKEN "1hjoONVc3xdMJLloRrnykHQK1XlmK5I5"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
const int SoilSensor = 33;
Servo myservo;
int Posisi = 0;
Servo myservo2;
int Posisi2 = 0;
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
void setup()
{
Serial.begin(9600);
pinMode(SensorPIR, INPUT);
myservo.attach(23);
myservo2.attach(22);
Blynk.begin(auth, ssid, pass);
timer.setInterval(1000L, sendSensor);
}
void sendSensor()
{
//Sensor Kelembaban Tanah
float kelembabanTanah;
int hasilPembacaan = analogRead(SoilSensor);
kelembabanTanah = (100 - ((hasilPembacaan/4095.00)*100));
Serial.print("Persentase Kelembaban Tanah = ");
Serial.print(kelembabanTanah);
Serial.println("%");
Serial.println(" ");
delay(5000);
if (kelembabanTanah > 70){
Serial.println("Tanah Terlalu Basah");
Blynk.virtualWrite(V4, "Tidak Aktif");
Posisi2 = 0;
myservo2.write(Posisi2);
delay(15);
}
else {
Serial.println("Tanah Kering");
Blynk.virtualWrite(V4, "Aktif");
Posisi2 = 180;
myservo2.write(Posisi2);
delay(15);
}
//Sensor Hama
bool state_pir = digitalRead(SensorPIR);
if (state_pir == 0){
Serial.println("Tidak Terdeteksi Hama ");
Blynk.virtualWrite(V1, "Tidak Terdeteksi Hama !");
Blynk.virtualWrite(V2, "TIDAK AKTIF");
}
else {
Serial.println("Terdeteksi Hama !");
Blynk.virtualWrite(V1, "Terdeteksi Hama !");
Blynk.virtualWrite(V2, "AKTIF");
for(Posisi = 0; Posisi <=180; Posisi ++)
{
myservo.write(Posisi);
Blynk.virtualWrite(V3, Posisi);
delay(50);
}
for(Posisi = 180; Posisi >=0; Posisi --)
{
myservo.write(Posisi);
Blynk.virtualWrite(V3, Posisi);
delay(15);
}
}
Blynk.virtualWrite(V0, kelembabanTanah);
}
void loop()
{
Blynk.run();
timer.run();
}