/*======================================================================
PROGRAM MENYALAKAN 3 LED & MEMONITOR 2 SENSOR MELALUI BLYNK
berbasis kepada board ESP8266 Wemos D1_Mini
------------------------------------------------------------------------
Led merah dikoneksi ke pin 12, Led kuning ke pin 13, Led biru ke pin 14
Sw1 (Sensor_1) dikoneksi ke pin 4, Sw2 (Sensor_2) ke pin 5
Lihat datasheet untuk menentukan pin pada ESP8266 Wemos D1_Mini
======================================================================*/
#define BLYNK_TEMPLATE_ID "TMPL6jhX6Z2bY"
#define BLYNK_TEMPLATE_NAME "SmartHome"
#define BLYNK_AUTH_TOKEN "Szx7qNhAlzZtfE0XZZWzj3_BXXdGRNlU"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h> //dibuka jika menggunakan ESP32
//#include <BlynkSimpleEsp8266.h> //dibuka jika menggunakan ESP8266
char auth[] = BLYNK_AUTH_TOKEN;
//Nama dan Password WiFi
//char ssid[] = "WIFI-C545A5DC"; //nama hotspot yang digunakan
//char pass[] = "batukali"; //password hotspot yang digunakan
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
//deklarasi Pin yang digunakan
#define Led1 12 //merah
#define Led2 13 //kuning
#define Led3 14 //biru
#define Sw1 4 // Pin sensor
#define Sw2 5 // Pin sensor
int sensorValue1, sensorValue2 ;
BlynkTimer timer; //gunakan fungsi timer yang tersedia pad Blynk
void sendSensor() {
sensorValue1 = digitalRead(Sw1); sensorValue1 = !sensorValue1;
sensorValue2 = digitalRead(Sw2); sensorValue2 = !sensorValue2;
//-----------------------------------------------------------------
Blynk.virtualWrite(V3, sensorValue1); //kirim data ke VirtualPin V3
Blynk.virtualWrite(V4, sensorValue2); //kirim data ke VirtualPin V4
}
BLYNK_WRITE(V0) { //fungsi terima data dari VirtualPin V0
int pinValue0 = param.asInt(); //salin data yg masuk melalui V0
if (pinValue0 == 1) { digitalWrite(Led1, HIGH); } //nyalakan Led1
else { digitalWrite(Led1, LOW); } //matikan Led1
}
BLYNK_WRITE(V1) { //fungsi terima data dari VirtualPin V1
int pinValue1 = param.asInt(); //salin data yg masuk melalui V1
if (pinValue1 == 1) { digitalWrite(Led2, HIGH); } //nyalakan Led2
else { digitalWrite(Led2, LOW); } //matikan Led2
}
BLYNK_WRITE(V2) { //fungsi terima data dari VirtualPin V2
int pinValue2 = param.asInt(); //salin data yg masuk melalui V2
if (pinValue2 == 1) { digitalWrite(Led3, HIGH); } //nyalakan Led3
else { digitalWrite(Led3, LOW); } //matikan Led3
}
void setup()
{
Serial.begin(115200); //aktifkan UART dg kecepatan 115200 bps
pinMode(Led1, OUTPUT); //Setting pin 12 sebagai Output
pinMode(Led2, OUTPUT); //Setting pin 13 sebagai Output
pinMode(Led3, OUTPUT); //Setting pin 14 sebagai Output
pinMode(Sw1, INPUT_PULLUP); //Setting pin 4 sebagai Input_pullup
pinMode(Sw2, INPUT_PULLUP); //Setting pin 5 sebagai Input_pullup
Blynk.begin(auth,ssid,pass);//aktifkan library Blynk dg 3 parameter
timer.setInterval(1500L, sendSensor); //set timer 1500 detik
}
void loop() {
Blynk.run(); //jalankan fungsi Blynk
timer.run(); //jalankan fungsi timer
}