/*======================================================================
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
#define potPin A0 //deklarasi pin Ao atau 36 sebagai input Analog
int potValue; //Variabel menyimpan data analog
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
potValue = analogRead(potPin); //salin data analog ke variabel
Blynk.virtualWrite(V5, potValue); //kirim data analog ke Blynk
}
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
}
esp:0
esp:2
esp:4
esp:5
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:21
esp:22
esp:23
esp:25
esp:26
esp:27
esp:32
esp:33
esp:34
esp:35
esp:3V3
esp:EN
esp:VP
esp:VN
esp:GND.1
esp:D2
esp:D3
esp:CMD
esp:5V
esp:GND.2
esp:TX
esp:RX
esp:GND.3
esp:D1
esp:D0
esp:CLK
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
r1:1
r1:2
r2:1
r2:2
r3:1
r3:2
gnd1:GND
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
gnd2:GND
gnd3:GND
pot1:GND
pot1:SIG
pot1:VCC
vcc1:VCC
gnd4:GND