/*
Author 21.11.3971 Andri Pebriyanto
ESP32 Controling with Blynk
*/
//koneksi ke akun auth blink
#define BLYNK_TEMPLATE_ID "TMPLQjtHZXT-"
#define BLYNK_DEVICE_NAME "Lampu"
#define BLYNK_AUTH_TOKEN "RvmahcW73P205mOva4kpkroLHMMtTmlr"
#define BLYNK_PRINT Serial
//inisialisasi variabel untuk perulangan
int ulang,ulangkuning;
int pinValue;
int banding=pinValue;
//inisialisasi library yang digunakan
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN;
int lamp=13;
//koneksi ke jaringan wifi dengan fungfi sebagai tamu di wokwi
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
//fungsi untuk memanggil value atau nilai dari blynk
BLYNK_WRITE(V13) //inisialisasi dari wokwi ke blynk
{
pinValue = param.asInt(); //konvert data dari Virtual pin ke Variabel
//kondisi jika lampu hidup
if(pinValue==HIGH)
{
digitalWrite(13,HIGH);
ulang=1;
}
//jika kondisi lampu mati
else{
system("pause");
digitalWrite(13,LOW);
ulang=0;
Serial.println("Lampu Mati");
}
}
BLYNK_WRITE(V12) //inisialisasi dari wokwi ke blynk
{
pinValue = param.asInt(); //konvert data dari Virtual pin ke Variabel
//kondisi jika lampu hidup
if(pinValue==HIGH)
{
digitalWrite(12,HIGH);
ulangkuning=1;
}
//jika kondisi lampu mati
else{
system("pause");
digitalWrite(12,LOW);
ulangkuning=0;
Serial.println("Lampu Mati");
}
}
void setup()
{
// Debug console
Serial.begin(115200); //output di serial print
pinMode(13, OUTPUT); //set pin 13 sebagai output
pinMode(12, OUTPUT); //set pin 12 sebagai output
Blynk.begin(auth, ssid, pass); //memulai koneksi blynk dengan value dari auth,ssd,pass
}
void loop()
{
Blynk.run(); //menjalankan perintah dari blynk
BLYNK_WRITE(V13); // Memanggil fungsi inisialisasi dari blynk
BLYNK_WRITE(V12);
//looping dengan kondisi jika variabel ulang bernilai 1
while(ulang>=1){
//kondisi looping jika pinvalue atau pin 13 bernilai LOW
if(pinValue==LOW)
{
Serial.println("Lampu Mati");
digitalWrite(13,LOW);
ulang=0;
}
//kondisi looping jika pinvalue atau pin 13 bernilai HIGH
else{
Serial.println("Lampu Kedip");
delay(1000);
digitalWrite(13,LOW);
delay(1000);
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
return;
}
ulang++;
}
while(ulangkuning>=1){
//kondisi looping jika pinvalue atau pin 12 bernilai LOW
if(pinValue==LOW)
{
Serial.println("Lampu Mati");
digitalWrite(12,LOW);
ulangkuning=0;
}
//kondisi looping jika pinvalue atau pin 12 bernilai HIGH
else{
Serial.println("Lampu Kedip");
delay(1000);
digitalWrite(12,LOW);
delay(1000);
digitalWrite(12,HIGH);
delay(1000);
digitalWrite(12,LOW);
return;
}
ulangkuning++;
}
}