#define BLYNK_TEMPLATE_ID "TMPL6ydjcjPq9"
#define BLYNK_TEMPLATE_NAME "ESP32 with 2 LEDS"
#define BLYNK_AUTH_TOKEN "_thMaBRjzfHoWlY5EgSw6feLWx5dXZ3u"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <WiFiClient.h>
#include <ESP32Servo.h> // Ganti pustaka Servo
// Replace with your network credentials
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define redLedPin 13 // GPIO for Red LED
#define blueLedPin 12 // GPIO for Blue LED
#define servoPin 14 // GPIO for Servo
Servo myServo; // Buat objek Servo
void setup() {
// Start Serial for debugging
Serial.begin(115200);
// Initialize LED pins
pinMode(redLedPin, OUTPUT);
pinMode(blueLedPin, OUTPUT);
// Initialize Servo
myServo.attach(servoPin); // Sambungkan servo ke pin
// Connect to Blynk
Blynk.begin(auth, ssid, pass);
}
// Control Red LED with Button on Blynk
BLYNK_WRITE(V0) {
int redLedState = param.asInt(); // Get value from button
digitalWrite(redLedPin, redLedState);
}
// Control Blue LED with Button on Blynk
BLYNK_WRITE(V1) {
int blueLedState = param.asInt(); // Get value from button
digitalWrite(blueLedPin, blueLedState);
}
// Control Servo with Button on Blynk
BLYNK_WRITE(V2) {
if (param.asInt() == 1) { // Jika tombol servo ditekan
myServo.write(90); // Gerakkan servo ke posisi 90 derajat
blinkLeds(30); // Berkedip selama 30 detik
}
}
void blinkLeds(int duration) {
unsigned long startTime = millis();
while (millis() - startTime < duration * 1000) {
digitalWrite(redLedPin, HIGH);
digitalWrite(blueLedPin, HIGH);
delay(500);
digitalWrite(redLedPin, LOW);
digitalWrite(blueLedPin, LOW);
delay(500);
}
// Matikan LED setelah berkedip
digitalWrite(redLedPin, LOW);
digitalWrite(blueLedPin, LOW);
}
void loop() {
// Run Blynk
Blynk.run();
}