#define BLYNK_TEMPLATE_ID "TMPL3xe3tb0Z"
#define BLYNK_TEMPLATE_NAME "blynk2room"
#define BLYNK_AUTH_TOKEN "6KwWd2wbZhd_XWmcqPGgHbRiNZQ2XAY8"
#include <TM1637TinyDisplay.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = "6KwWd2wbZhd_XWmcqPGgHbRiNZQ2XAY8";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
// define pin
int pbH = 12;
int pbM = 13;
int ledM = 15;
int ledH = 2;
int buzz = 4;
const int CLK = 14;
const int DIO = 27;
TM1637TinyDisplay display(CLK, DIO);
// variable
int counter = 0;
int jumlahKeluar = 0;
int jumlahMasuk = 0;
void setup(){
Blynk.begin(auth,ssid,pass);
display.begin();
Serial.begin(115200);
pinMode(pbH, INPUT_PULLUP);
pinMode(pbM, INPUT_PULLUP);
pinMode(ledM, OUTPUT);
pinMode(ledH, OUTPUT);
pinMode(buzz, OUTPUT);
display.showString("2015344036");
}
void hijau(){
digitalWrite(ledM, LOW);
digitalWrite(ledH, HIGH);
}
void merah(){
digitalWrite(ledM, HIGH);
digitalWrite(ledH, LOW);
}
void pesan(){
Serial.println("Total orang yang pernah masuk : " + String(jumlahMasuk) + " Orang");
Blynk.virtualWrite(V0, jumlahMasuk);
Serial.println("Total orang keluar : " + String(jumlahKeluar) + " Orang");
Blynk.virtualWrite(V1, jumlahKeluar);
Serial.println("Total orang didalam : " + String(counter) + " Orang");
Blynk.virtualWrite(V2, counter);
Serial.println("=========================================================");
tone(buzz, 1000, 400);
}
void loop(){
if(digitalRead(pbH) == LOW){
if(counter < 10){
jumlahMasuk++;
counter++;
pesan();
hijau();
Blynk.virtualWrite(V6, LOW);
} else {
merah();
Blynk.virtualWrite(V6, HIGH);
Serial.println("Ruangan Sudah Penuh");
}
} else if(digitalRead(pbM) == LOW){
if(counter != 0){
jumlahKeluar++;
counter--;
pesan();
hijau();
Blynk.virtualWrite(V6,LOW);
} else {
Serial.println("Ruangan Sudah Kosong");
}
}
display.showNumber(counter);
delay(200);
Blynk.run();
timer.run();
}