//Tiga parameter di bawah ini biasanya ada saat kita membuat template baru
#define BLYNK_TEMPLATE_ID "TMPL6lw50zfp7" //Tulis nama template ID Blynk
#define BLYNK_TEMPLATE_NAME "Monitor V I" //Tulis nama template Blynk
#define BLYNK_AUTH_TOKEN "5nhHVqfA8wBGoklZyzDxYnQwBajqDN6K" //Tulis token Blynk
#define BLYNK_PRINT Serial //Kita menggunakan Blynk serial
#include <WiFi.h> //Library WiFi
#include <WiFiClient.h> //Library WiFiClient
#include <BlynkSimpleEsp32.h> //Library BlynkESP32
char ssid[] = "Wokwi-GUEST"; //Nama WiFi yang digunakan
char pass[] = ""; //Password WiFi yang digunakan
BlynkTimer timer; //Untuk push data dibutuhkan blynk timer (untuk code push data dapat dilihat di blynk example)
const int potensiometerPin = 34; // Pin ADC untuk membaca potensiometer
const int led = 5; // Pin PWM untuk mengendalikan LED
void setup() {
pinMode(led, OUTPUT);
Serial.begin(115200); //Menginisiasi serial monitor
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass); //Menginisiasi Blynk
timer.setInterval(1000L, myTimerEvent); //Mengirim data tiap satu detik
}
void myTimerEvent()
{
// Membaca nilai tegangan dari potensiometer (0-4095)
int nilaiTegangan = analogRead(potensiometerPin);
// Menghitung duty cycle PWM berdasarkan nilai tegangan (0-255)
int dutyCycle = map(nilaiTegangan, 0, 4095, 0, 23.9);
// Mengatur kecerahan LED menggunakan PWM
//analogWrite(led, dutyCycle);
delay(10); // Delay kecil untuk menghindari fluktuasi yang cepat
Serial.print("Tegangan: ");
Serial.print(dutyCycle);
Serial.println(" V ");
Blynk.virtualWrite(V0,dutyCycle); //Mengirim data V0 di Blynk
}
BLYNK_WRITE(V2) //V2, sesuai dengan pin Blynk yang ingin dipakai
{
int pinValue = param.asInt();
Serial.print("V2 Switch value is: ");
Serial.println(pinValue);
digitalWrite(led, pinValue);
}
void loop()
{
Blynk.run(); //Menjalankan Bylnk
timer.run(); //Menjalankan timer
}