#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6ceGUp0cA"
#define BLYNK_TEMPLATE_NAME "LED dan SERVO"
#define BLYNK_AUTH_TOKEN "UYQglbd-UdEBGli0o3cZefnSth3PP90z"
// Baris 2-4 diperoleh dari Blynk sebagai penghubung
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <ESP32Servo.h> // Ganti dengan ESP32Servo
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
#define LED 13
#define SERVO_PIN 12 // Pin untuk servo
Servo myServo; // Deklarasi objek servo
int lampState = 0; // Status lampu
int servoPosition = 0; // Posisi servo (0-180 derajat)
// Kontrol lampu menggunakan Virtual Pin V0
BLYNK_WRITE(V0)
{
lampState = param.asInt();
if (lampState == 1)
{
digitalWrite(LED, HIGH);
Serial.println("LAMPU HIDUP");
Blynk.virtualWrite(V1, HIGH);
}
else
{
digitalWrite(LED, LOW);
Serial.println("LAMPU MATI");
Blynk.virtualWrite(V1, LOW);
}
}
// Kontrol servo menggunakan Virtual Pin V2
BLYNK_WRITE(V2)
{
servoPosition = param.asInt(); // Membaca nilai posisi servo (0-180)
if (servoPosition < 0) servoPosition = 0; // Validasi rentang posisi
if (servoPosition > 180) servoPosition = 180;
myServo.write(servoPosition); // Menggerakkan servo ke posisi yang diminta
Serial.print("Posisi Servo: ");
Serial.println(servoPosition);
}
void setup()
{
pinMode(LED, OUTPUT);
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
myServo.attach(SERVO_PIN); // Sambungkan servo ke pin 18
myServo.write(0); // Mengatur posisi awal servo ke 0 derajat
}
void loop()
{
Blynk.run();
timer.run();
}