#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6nsDEfaka"
#define BLYNK_TEMPLATE_NAME "latihan 5"
#define BLYNK_AUTH_TOKEN "CDV5_NNIQw_I0g69aXr9umUSs7S4NReS"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <TM1637TinyDisplay.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST"; //nama hotspot yang digunakan
char pass[] = ""; //password hotspot yang digunakan
byte pushA = 2;
byte pushB = 4;
int counter = 0;
const int CLK = 19;
const int DIO = 18;
int space = 10;
TM1637TinyDisplay display(CLK, DIO);
BlynkTimer timer;
void sendSensor(){
display.showNumber(counter);
if(digitalRead(pushA)){
if(counter == 0 && space == 10){
delay(350);
Serial.print("\nJumlah Orang Mencapai Minimum : ");
Serial.println(counter);
Serial.print("Space Ruangan Masih Tersedia : ");
Serial.println(space);
Blynk.virtualWrite(V3, "Space Ruangan Tersedia");
}else{
counter--;
delay(350);
space += 1;
Serial.print("\nORANG KELUAR\n");
Serial.print("Jumlah Orang : ");
Serial.println(counter);
Blynk.virtualWrite(V4, counter);
Serial.print("Space : ");
Serial.println(space);
Blynk.virtualWrite(V5, space);
Blynk.virtualWrite(V3, "Space Ruangan Tersedia");
}
}else if (digitalRead(pushB)){
if(counter == 10 && space == 0 ){
delay(350);
Serial.print("\nJumlah Orang Mencapai Maksimum : ");
Serial.println(counter);
Serial.print("Space Ruangan habis : ");
Serial.println(space);
Blynk.virtualWrite(V3, "Space Ruangan habis");
}else{
counter++;
space -= 1;
Serial.print("\nORANG MASUK\n");
Serial.print("Jumlah Orang : ");
Serial.println(counter);
Blynk.virtualWrite(V4, counter);
Serial.print("Space : ");
Serial.println(space);
Blynk.virtualWrite(V5, space);
Blynk.virtualWrite(V3, "Space Ruangan Tersedia");
}
}
}
void setup() {
// put your setup code here, to run once:
display.setBrightness(0x0f);
display.setScrolldelay(100);
Serial.begin(115200);
pinMode(pushA, INPUT);
pinMode(pushB, INPUT);
Blynk.begin(auth, ssid, pass); //memulai Blynk
timer.setInterval(1000, sendSensor); //Mengaktifkan timer untuk pengiriman data 1000ms
}
void loop() {
Blynk.run(); //menjalankan blynk
timer.run(); //menjalankan timer
}
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
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
sevseg1:CLK
sevseg1:DIO
sevseg1:VCC
sevseg1:GND
r1:1
r1:2
r2:1
r2:2