#define BLYNK_PRINT Serial
/*
#define BLYNK_TEMPLATE_ID "TMPLPmOtjTT5"
#define BLYNK_DEVICE_NAME "#LAMPU"
#define BLYNK_AUTH_TOKEN "nARY0FEkmAHDMTrIS2YC7mW9kps4zVpP"
*/

#define BLYNK_TEMPLATE_ID "TMPLbh5UvDas"
#define BLYNK_DEVICE_NAME "WOKWI 3 LED"
#define BLYNK_AUTH_TOKEN "Ae6hH-TM_EPYKd33EUhLRpRv_RJFsY4Z"

#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>

char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";

BlynkTimer timer;

#define LED1 13  // Merah
#define LED2 12  // Kuning
#define LED3 14  // Hijau
int SW_State_M = 0;
int SW_State_K = 0;
int SW_State_H = 0;

BLYNK_WRITE (V0)
{
  SW_State_M = param.asInt();
  if (SW_State_M == 1)
  {
    digitalWrite(LED1, HIGH);
    Serial.println("RED ON");
    Blynk.virtualWrite(V1, HIGH);
  }
  else
  {
    digitalWrite(LED1, LOW);
    Serial.println("RED OFF");
    Blynk.virtualWrite(V1, LOW);
  }
}

BLYNK_WRITE (V2)
{
  SW_State_K = param.asInt();
  if (SW_State_K == 1)
  {
    digitalWrite(LED2, HIGH);
    Serial.println("YELLOW ON");
    Blynk.virtualWrite(V3, HIGH);
  }
  else
  {
    digitalWrite(LED2, LOW);
    Serial.println("YELLOW OFF");
    Blynk.virtualWrite(V3, LOW);
  }
}

BLYNK_WRITE (V4)
{
  SW_State_H = param.asInt();
  if (SW_State_H == 1)
  {
    digitalWrite(LED3, HIGH);
    Serial.println("GREEN ON");
    Blynk.virtualWrite(V5, HIGH);
  }
  else
  {
    digitalWrite(LED3, LOW);
    Serial.println("GREEN OFF");
    Blynk.virtualWrite(V5, LOW);
  }
}

void setup()
{
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
}

void loop()
{
  Blynk.run();
  timer.run();
}
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
led1:A
led1:C
r1:1
r1:2
led2:A
led2:C
led3:A
led3:C
r2:1
r2:2
r3:1
r3:2