/*=====================================================================
Template Program Latihan ESP32 dan Blynk Komunikasi Data
Dibuat Oleh : Irfan Mahrubi
=======================================================================*/
//FIRMWARE CONFIGURATION -> Copy Paste dari website Blynk ==============
#define BLYNK_TEMPLATE_ID "TMPL6v2RfRDoL"
#define BLYNK_TEMPLATE_NAME "Input XI TAV 1"
#define BLYNK_AUTH_TOKEN "s2IIwUrH4KuRsx7iaymbSzvckspyMELU"
//======================================================================
//Untuk menampilkan serial monitor Blynk ===============================
#define BLYNK_PRINT Serial
//======================================================================
//Library yang digunakan ===============================================
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
//======================================================================
//Token yang didapat dari bagian FIRMWARE CONFIGURATION ================
char auth[] = BLYNK_AUTH_TOKEN;
//======================================================================
//Akun wifi yang digunakan =============================================
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
//======================================================================
//Inisialisasi nilai konstan / fixed variables =========================
#define pin_LED3 2 //pin led3
#define pin_LED4 14 //pin led4
#define pin_LED5 5 //pin led5
#define pin_buzz1 4 //pin buzz1
//======================================================================
//Inisialisasai variabel yang digunakan ================================
int data = 0;
//======================================================================
//Menambahkan fungsi blynk timer =======================================
BlynkTimer timer;
//======================================================================
//Bagian menerima data dari blynk ke ESP ===============================
BLYNK_WRITE(V0){
int status_LED = param.asInt();
if(status_LED){
digitalWrite(pin_LED3,HIGH);
Serial.println("DITEKAN");
}
else{
digitalWrite(pin_LED3,LOW);
Serial.println("TIDAK DITEKAN");
}
}
BLYNK_WRITE(V2){
int status_LED = param.asInt();
if(status_LED){
digitalWrite(pin_LED4,HIGH);
Serial.println("DITEKAN");
}
else{
digitalWrite(pin_LED4,LOW);
Serial.println("TIDAK DITEKAN");
}
}
BLYNK_WRITE(V3){
int status_LED = param.asInt();
if(status_LED){
digitalWrite(pin_LED5,HIGH);
Serial.println("DITEKAN");
}
else{
digitalWrite(pin_LED5,LOW);
Serial.println("TIDAK DITEKAN");
}
}
BLYNK_WRITE(V4){
int status_buzz = param.asInt();
if(status_buzz){
digitalWrite(pin_buzz1,HIGH);
Serial.println("DITEKAN");
}
else{
digitalWrite(pin_buzz1,LOW);
Serial.println("TIDAK DITEKAN");
}
}
//=======================================================================
//Bagian mengirim data dari ESP ke Blynk ================================
void sendData(){
if(data < 100){
data++;
}
else{
data = 0;
}
Blynk.virtualWrite(V1, data);
Serial.println(data);
}
//=======================================================================
//void setup ============================================================
void setup()
{
//Mengatur mode pin sebagai input atau output =========================
pinMode(pin_LED3,OUTPUT);
pinMode(pin_LED4,OUTPUT);
pinMode(pin_LED5,OUTPUT);
pinMode(pin_buzz1,OUTPUT);
//=====================================================================
//Mengatur alamat serial monitor ======================================
Serial.begin(115200);
//=====================================================================
//Fungsi blynk mengatur firmware configuration dan akun wifi ==========
Blynk.begin(auth, ssid, pass);
//=====================================================================
//sinkronisasi pin virtual blynk dari aplikasi ========================
Blynk.syncVirtual(V0);
Blynk.syncVirtual(V2);
Blynk.syncVirtual(V3);
Blynk.syncVirtual(V4);
//=====================================================================
//Fungsi timer blynk mengatur waktu menjalankan fungsi didalamnya =====
//Satuan waktu adalah detik ===========================================
timer.setInterval(1000L, sendData);
//=====================================================================
}
//=======================================================================
//void loop =============================================================
void loop()
{
//Menjalankan fungsi blynk ============================================
Blynk.run();
//=====================================================================
//Menjalankan fungsi timer blynk ======================================
timer.run();
//=====================================================================
}
//=======================================================================