#define BLYNK_TEMPLATE_ID "TMPL6vNGhLlv4" // definisi konstanta praprosesor untuk menyimpan ID template Blynk
#define BLYNK_TEMPLATE_NAME "Control LED" // definisi konstanta praprosesor untuk menyimpan nama template
#define BLYNK_AUTH_TOKEN "tM4VkoghcfRq9ESHHw_ejwG1Nm1F4gOX" // definisi konstanta praprosesor untuk menyimpan token otentikasi
#include <BlynkSimpleEsp32.h> // pustaka yang diperlukan untuk menggunakan Blynk pada ESP32
#include <WiFi.h> // pustaka yang diperlukan untuk mengaktifkan koneksi Wi-Fi
#include <WiFiClient.h> // pustaka yang diperlukan untuk mengaktifkan koneksi Wi-Fi
#include <ESP32Servo.h> // pustaka yang diperlukan untuk menggunakan servo
Servo servo; // deklarasi objek servo
int pos=0; // Variabel pos digunakan untuk menyimpan posisi servo
char auth[] = BLYNK_AUTH_TOKEN; // Deklarasi variabel auth untuk otentikasi Wi-Fi Blynk
char ssid[] = "Wokwi-GUEST"; // Deklarasi variabel ssid untuk koneksi ke jaringan Wi-Fi yang sesuai
char pass[] = ""; // Deklarasi variabel pass untuk koneksi ke jaringan Wi-Fi yang sesuai
BLYNK_WRITE(V2) // Ini adalah fungsi callback yang dipanggil setiap kali nilai pada pin virtual V2 di Blynk berubah
{
int value=param.asInt(); // Nilai dari pin virtual tersebut diambil
int konversi= map(value, 0, 400, 0, 180); // Nilai tersebut dikonversi menggunakan fungsi map() untuk mengubah rentang nilai dari 0-400 menjadi 0-180 (rentang sudut servo)
servo.write(konversi); // nilai tersebut diteruskan ke servo untuk menggerakkan servo ke posisi yang sesuai
}
BLYNK_CONNECTED() { // Ini adalah fungsi callback yang dipanggil ketika koneksi Blynk berhasil
Blynk.syncAll(); // Fungsi ini bertujuan untuk menginisialisasi sinkronisasi semua nilai antara perangkat dan aplikasi Blynk
}
void setup() { // Ini adalah fungsi setup() yang berisi inisialisasi awal
servo.attach(15); // servo dihubungkan ke pin 15
Blynk.begin(auth, ssid, pass); // koneksi ke server Blynk diinisialisasi menggunakan token otentikasi, SSID, dan kata sandi Wi-Fi yang ditentukan
}
void loop() { // Ini adalah fungsi loop() yang digunakan untuk menjalankan loop utama Blynk
Blynk.run(); // Dalam loop ini, fungsi Blynk.run() dipanggil untuk memproses semua peristiwa Blynk yang terjadi
}