// Forum: https://forum.arduino.cc/t/lcd-led-and-buzzer-regularly-triggered-when-not-intended-to/1255974
// This Wokwi project: https://wokwi.com/projects/397035000778587137

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

int ledPin = 7;
int pirPin = 4;
int buzzerPin = 8;
int pirPinstatus;

void setup() 
{
  pinMode(ledPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);

  // Most PIR sensor output a 3.3V signal.
  // Sometimes INPUT_PULLUP helps for certain sensors.
  // Somtimes just INPUT is better.
  pinMode(pirPin, INPUT_PULLUP); 
  
  lcd.init();
  lcd.backlight();
}

void loop() {
  pirPinstatus = digitalRead(pirPin);

  if (pirPinstatus == HIGH) 
  {
    lcd.clear();
    digitalWrite(ledPin, HIGH);
    // digitalWrite(buzzerPin, HIGH);
    tone(buzzerPin, 200, 2000); //tone(pin, frequency, Duration
    lcd.setCursor(0, 1);
    lcd.print("ALERT! CRIME!");
    delay(6000);
    lcd.clear();
  } 
  else 
  {
    lcd.setCursor(0, 0);
    lcd.print("SECURE");
    digitalWrite(ledPin, LOW);
    digitalWrite(buzzerPin, LOW);
  }
  delay(1000);
}