#define BLYNK_TEMPLATE_ID "TMPL6qfD89g79"
#define BLYNK_TEMPLATE_NAME "lATIHAN 6 COUNTER UP AND DOWN"
#define BLYNK_AUTH_TOKEN "IS-GjrEoaDwitstFKoJ_S1-TRlscmwBl"
#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;
#include <TM1637TinyDisplay.h>
const int CLK = 25;
const int DIO = 26;
int out = 19;
int inn = 15;
TM1637TinyDisplay display(CLK, DIO);
int counter = 1;
int buzzer = 13;
int merah = 14;
int hijau = 12;
void setup() {
display.setScrolldelay(500);
display.begin();
Serial.begin(115200);
pinMode(buzzer, OUTPUT);
pinMode(merah, OUTPUT);
pinMode(hijau, OUTPUT);
pinMode(out, INPUT_PULLUP);
pinMode(inn, INPUT_PULLUP);
pinMode(CLK, OUTPUT);
pinMode(DIO, OUTPUT);
Blynk.begin(auth, ssid, pass);
display.showString("2215374029");
delay(500);
display. showString("LATIHAN 6");
Serial.println("================");
}
void loop() {
int valuemasuk = digitalRead(out);
int valuekeluar = digitalRead(inn);
display.showNumber(counter - 1);
if (valuemasuk == LOW) {
if (counter <= 10) {
Serial.println("Orang Masuk");
Serial.println("tone 100ms & 100Hz");
Serial.print("Jumlah orang di ruangan : ");
Serial.println(counter++);
digitalWrite(hijau, HIGH);
digitalWrite(merah, LOW);
tone(buzzer, 100, 100);
delay(500);
Blynk.virtualWrite(V0, 1);
delay(500);
Blynk.virtualWrite(V0, 0);
Blynk.virtualWrite(V1, 1);
Blynk.virtualWrite(V2, 0);
Blynk.virtualWrite(V3, counter - 1);
} else {
Serial.println("Ruangan Sudah Penuh!!!");
digitalWrite(hijau, LOW);
digitalWrite(merah, HIGH);
delay(500);
Blynk.virtualWrite(V0, 0);
Blynk.virtualWrite(V1, 0);
Blynk.virtualWrite(V2, 1);
Blynk.virtualWrite(V3, counter - 1);
}
} else if (valuekeluar == LOW) {
if (counter != 1) {
counter--;
if (counter == 1) {
Serial.println("Ruang Sudah Kosong");
delay(500);
} else {
if (counter <= 10) {
Serial.println("Orang Keluar");
Serial.println("tone 100ms & 1000Hz");
Serial.print("Jumlah Orang di Ruangan : ");
Serial.print(counter - 1);
Serial.println(" Orang");
digitalWrite(hijau, HIGH);
digitalWrite(merah, LOW);
tone(buzzer, 1000, 100);
delay(500);
Blynk.virtualWrite(V0, 1);
Blynk.virtualWrite(V1, 1);
Blynk.virtualWrite(V2, 0);
Blynk.virtualWrite(V3, counter - 1 );
}
}
}
}
}