#include <TM1637TinyDisplay.h>
#include <Blynk.h>
const int CLK = 26;
const int DIO = 27;
int out = 12;
int inn = 14;
TM1637TinyDisplay display(CLK,DIO);
int counter = 1;
int buzzer =13;
int ledhijau =2;
int ledmerah= 15;
#define BLYNK_TEMPLATE_ID "TMPL67ZsZKL35"
#define BLYNK_TEMPLATE_NAME "Latihan 6 Hanief"
#define BLYNK_AUTH_TOKEN "HRDopP3q81wDGMgLpQ4F4sQRxk_0mSZh"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN; //Auth Token
char ssid[] = "Wokwi-GUEST"; //nama Hospot yang digunakan
char pass[] = ""; //password Hospot
BlynkTimer timer;
void setup() {
display.setScrolldelay(500);
display.begin();
Serial.begin(115200);
pinMode(buzzer, OUTPUT);
pinMode(ledmerah, OUTPUT);
pinMode(ledhijau, OUTPUT);
pinMode(out, INPUT_PULLUP);
pinMode(inn, INPUT_PULLUP);
pinMode(CLK, OUTPUT);
pinMode(DIO, OUTPUT);
display.showString("HANIEFUDIYANTO 2215374008");
delay(500);
display.showString("LATIHAN 6");
Serial.println("================");
Blynk.begin(auth,ssid,pass);
}
void loop() {
int valuemasuk = digitalRead(inn);
int valuekeluar = digitalRead(out);
display.showNumber(counter - 1);
if(valuemasuk == LOW){
if(counter <= 10){
Serial.print("Jumlah orang dalam ruangan : ");
Serial.println(counter++);
Serial.println("Orang Masuk");
digitalWrite(ledhijau, HIGH);
digitalWrite(ledmerah, LOW);
tone(buzzer, 100, 100);
delay(500);
Blynk.virtualWrite(V1, 1);
delay(500);
Blynk.virtualWrite(V0, 1);
Blynk.virtualWrite(V1, 1);
Blynk.virtualWrite(V2, 0);
Blynk.virtualWrite(V0, counter - 1);
} else {
Serial.println("Ruangan Sudah Penuh!!!");
digitalWrite(ledhijau, LOW);
digitalWrite(ledmerah, HIGH);
delay(500);
Blynk.virtualWrite(V0, 1);
Blynk.virtualWrite(V1, 0);
Blynk.virtualWrite(V2, 1);
Blynk.virtualWrite(V0, counter - 1);
}
} else if(valuekeluar == LOW){
if(counter != 1){
counter--;
if(counter == 1){
Serial.println("Ruangan Sudah Kosong!!!");
delay(500);
} else {
if(counter <=10){
Serial.println("Orang Keluar");
Serial.print("Jumlah Orang dalam Ruangan : Sisa ");
Serial.print(counter - 1);
Serial.println(" Orang");
digitalWrite(ledhijau, HIGH);
digitalWrite(ledmerah, LOW);
tone(buzzer, 100, 1000);
delay(500);
Blynk.virtualWrite(V0, 1);
Blynk.virtualWrite(V1, 1);
Blynk.virtualWrite(V2, 0);
Blynk.virtualWrite(V0, counter -1 );
}
}
}
}
}