#include <LiquidCrystal_I2C.h>
const int buttonDash=18, buttonDoor=19, ReedSwitch=2;
int doorLockLED=10;
int relayPin=7;
bool doorClosed = true;
bool dashboardButton = false;
bool bellSwitch_Button = false;
LiquidCrystal_I2C lcd(0x27,20,4);
void setup() {
pinMode(18, INPUT_PULLUP);
pinMode(19, INPUT_PULLUP);
pinMode(2, INPUT_PULLUP);
pinMode(10, OUTPUT);
// pinMode(5, OUTPUT);
lcd.begin(20,4);
lcd.init();
lcd.backlight();
lcd.setCursor(5,0);
lcd.print("Welcome!");
delay(2000);
lcd.clear();
}
void loop() {
int switch_state = digitalRead(2);
if(switch_state==HIGH && doorClosed){
lcd.setCursor(5,3);
lcd.print("access contoll");
}
if (digitalRead(18)== LOW && !dashboardButton){
lcd.setCursor(0,0);//character 0 line 0
lcd.print("Dashboard Button");
lcd.setCursor(0,1);//character 0 line 1
lcd.print("Pressed");
}
else if(digitalRead(19)==LOW && !bellSwitch_Button){
if(!bellSwitch_Button){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Bell Switch");
lcd.setCursor(0,1);
lcd.print("Pressed");
delay(2500);
lcd.clear();
doorClosed = false;
if(!doorClosed){
lcd.setCursor(5,1);
lcd.print("Door Open");
digitalWrite(relayPin, HIGH); //turn relay on
digitalWrite(doorLockLED, HIGH);
delay(5000);
lcd.clear();
doorClosed = true;
lcd.setCursor(5,1);
lcd.print("Door Locked");
digitalWrite(relayPin, LOW); //turn relay off
digitalWrite(doorLockLED, LOW);
delay(5000);
lcd.clear();
lcd.setCursor(0,0);
doorClosed=true;; //reset the flag to false
}
}
}
}