//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
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
pot1:GND
pot1:SIG
pot1:VCC
led1:A
led1:C
r1:1
r1:2