#define BLYNK_TEMPLATE_ID "TMPL6eV5Nm5d-"
#define BLYNK_TEMPLATE_NAME "SERVO"
#define BLYNK_AUTH_TOKEN "W2KLvtWlhovQoB4azfjgGw-0L9ECaonC"
#include <BlynkSimpleEsp32.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <ESP32Servo.h>
Servo servo;
int pos = 0; // Variabel untuk menyimpan posisi servo
int buttonPin1 = 21; // Pin untuk tombol 1 (D21)
int buttonPin2 = 19; // Pin untuk tombol 2 (D19)
int buttonState1 = 0; // Variabel untuk menyimpan status tombol 1
int buttonState2 = 0; // Variabel untuk menyimpan status tombol 2
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BLYNK_WRITE(V0)
{
int value=param.asInt();
int konversi= map(value, 0, 400, 0, 180);
servo.write(konversi);
}
BLYNK_WRITE(V1)
{
int value=param.asInt();
int konversi= map(value, 0, 400, 0, 180);
servo.write(180-konversi);
}
//*********BLYNK, syncron data terakhir saat koneksi tersambung*
BLYNK_CONNECTED() {
Blynk.syncAll();
}
void setup() {
servo.attach(23); // Hubungkan servo ke pin 23
Blynk.begin(auth, ssid, pass);
pinMode(buttonPin1, INPUT_PULLUP); // Set tombol 1 sebagai input dengan pull-up
pinMode(buttonPin2, INPUT_PULLUP); // Set tombol 2 sebagai input dengan pull-up
}
void loop() {
// Baca status tombol 1
buttonState1 = digitalRead(buttonPin1);
Blynk.run();
// Jika tombol 1 ditekan, gerakkan servo ke 360 derajat dan nyalakan LED 1
if (buttonState1 == LOW) {
servo.write(360);
}
// Jika tombol 1 tidak ditekan, baca status tombol 2
buttonState2 = digitalRead(buttonPin2);
// Jika tombol 2 ditekan, kembalikan servo ke posisi awal (0 derajat) dan nyalakan LED 2
if (buttonState2 == LOW) {
servo.write(0);
}
}