#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <LiquidCrystal_I2C.h>
const int speaker_pin = 5;
const int pirdata = 15;
int led = 12;
int pirstate = LOW;
int value = 0;
LiquidCrystal_I2C lcd(0x27, 16, 2);
char auth[] = "YourAuthToken"; // Replace with your Blynk auth token
char ssid[] = "YourNetworkName"; // Replace with your WiFi network name
char pass[] = "YourPassword"; // Replace with your WiFi password
BlynkTimer timer;
void setup() {
pinMode(led, OUTPUT);
pinMode(speaker_pin, OUTPUT);
pinMode(pirdata, INPUT);
Serial.begin(9600);
lcd.init();
lcd.backlight();
ledcSetup(0, 5000, 8);
ledcAttachPin(speaker_pin, 0);
WiFi.begin(ssid, pass);
while (WiFi.status()!= WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
Blynk.begin(auth, ssid, pass);
timer.setInterval(1000L, sendSensorData); // Send sensor data every 1 second
}
void sendSensorData() {
int pirValue = digitalRead(pirdata);
Blynk.virtualWrite(V1, pirValue); // Send sensor data to Blynk
}
void loop() {
Blynk.run();
timer.run();
value = digitalRead(pirdata);
if (value == HIGH) {
if (pirstate == LOW) {
digitalWrite(led, HIGH);
ledcWriteTone(0, 1000);
delay(500);
ledcWriteTone(0, 0);
Serial.println("Seseorang atau object terdeteksi!");
pirstate = HIGH;
lcd.setCursor(0,0);
lcd.print("seseorang mendekati area terlarang");
}
} else {
if (pirstate == HIGH) {
Serial.println("Tidak ada object terdeteksi!");
digitalWrite(led, LOW);
pirstate = LOW;
}
}
}