#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPLDy0PsgeG"
#define BLYNK_DEVICE_NAME "Topik 9 IOT4 Challenge 1"
#define BLYNK_AUTH_TOKEN "O9M5Ztdw_prGyzE8Hvfy-5Q2pFckvxW2"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <ESP32Servo.h>
//BLYNK
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
//PIR
#define PIR 15
int State = LOW;
//RELAY
#define Relay 13
int SW_State=0;
//SERVO
Servo servoku;
int Posisi = 0;
BLYNK_WRITE (V0)
{
SW_State = param.asInt();
if (SW_State == 1)
{
digitalWrite(Relay, HIGH);
Serial.println("Pompa HIDUP");
Blynk.virtualWrite(V1, "HIDUP");
}
else
{
digitalWrite(Relay, LOW);
Serial.println("Pompa MATI");
Blynk.virtualWrite(V1, "MATI");
}
}
void setup()
{
pinMode(Relay, OUTPUT);
pinMode(PIR, INPUT);
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
servoku.attach(2);
}
void loop()
{
if(digitalRead(PIR) == HIGH)
{
for (Posisi = 0; Posisi <= 180; Posisi ++) {
// in steps of 1 degree
servoku.write(Posisi);
delay(3);
}
for (Posisi = 180; Posisi >= 0; Posisi --) {
servoku.write(Posisi);
delay(3);
}
if (State == LOW)
{
Serial.println("Ada Hama");
Blynk.virtualWrite(V2, "Ada Hama, Servo Bergerak");
State = HIGH;
}
}
else
{
if (State == HIGH)
{
Serial.println("Tidak Ada Hama");
Blynk.virtualWrite(V2, "Tidak Ada Hama");
State = LOW;
}
}
Blynk.run();
timer.run();
}