#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL62IZcJmHf"
#define BLYNK_TEMPLATE_NAME "Project Smart Home"
#define BLYNK_AUTH_TOKEN "gOxKVDrTSMlJTXWbc_bMq5Vx9PQov_3x"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2);
char auth[] = "gOxKVDrTSMlJTXWbc_bMq5Vx9PQov_3x";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
int buzzerPin = 2; // Deklarasi variabel input pin buzzer
int inputPin = 14; // Deklarasi variabel input pin Sensor PIR
int pirState = LOW; // Pada saat memulai, Sensor PIR dimulai dari LOW
int val = 0; // Deklarasi variabel untuk membaca status pin
void playBuzzer() {
tone(buzzerPin, 2000, 1000); // Menyalakan buzzer dengan frekuensi 2000 Hz selama 1000 ms (1 detik)
}
void stopBuzzer() {
noTone(buzzerPin); // Mematikan buzzer
}
void setup() {
pinMode(buzzerPin, OUTPUT); // Deklarasi buzzer sebagai Output
pinMode(inputPin, INPUT); // Deklarasi Sensor PIR sebagai Input
// Program Awal LCD
LCD.init();
LCD.backlight();
LCD.setCursor(1, 0);
LCD.print(" KELOMPOK 2 ");
LCD.setCursor(1, 1);
LCD.print(" TUGAS WSN ");
delay(500);
LCD.clear();
LCD.setCursor(1, 0);
LCD.print("SISTEM PEMANTAU KEAMANAN");
LCD.setCursor(1, 1);
LCD.print("KEAMANAN RUMAH");
delay(500);
LCD.clear();
LCD.setCursor(1, 0);
LCD.print(" STARTING ");
delay(700);
LCD.clear();
}
void loop() {
val = digitalRead(inputPin); // Membaca nilai input
if (val == LOW) { // Jika Input LOW, maka :
stopBuzzer(); // Matikan buzzer
if (pirState == LOW) {
// Jika, input LOW maka akan LCD akan mengeluarkan output "TIDAK TERDETEKSI GERAKAN"
LCD.init();
LCD.backlight();
LCD.setCursor(0, 0);
LCD.print("TIDAK TERDETEKSI");
LCD.setCursor(0, 1);
LCD.print(" GERAKAN ");
// Output program akan terganti, jika input bernilai HIGH
pirState = HIGH;
}
} else {
playBuzzer(); // Menyalakan buzzer
if (pirState == HIGH) { // Jika Input HIGH, maka :
// Jika, input HIGH maka akan LCD akan mengeluarkan output "TERDETEKSI GERAKAN"
LCD.init();
LCD.init();
LCD.backlight();
LCD.setCursor(0, 0);
LCD.print(" TERDETEKSI ");
LCD.setCursor(0, 1);
LCD.print(" GERAKAN ");
// Output program akan terganti, jika input bernilai LOW
pirState = LOW;
}
}
delay(200); // Delay untuk memberikan jeda sebelum menyalakan atau memat
}
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
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL
pir1:VCC
pir1:OUT
pir1:GND
bz1:1
bz1:2