#include <Keypad.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
/**********************declartion*************************/
#define ROWS_numbers 4
#define COLS_number 4
#define servo 10
#define buzzer 11
#define led_red 12
#define led_green 13
/***********************keypad configration**************/
byte rowPins[ROWS_numbers ] = {9,8,7,6};
byte colPins[COLS_number] = {5,4,3,2};
char keys[ROWS_numbers][COLS_number] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'n','0','=','D'}
};
/*********************************************************/
/*********************varialbles****************************/
String temp="";
String correct_password="AB125";
/**********************************************************/
/*********************objects******************************/
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS_numbers,COLS_number );
LiquidCrystal_I2C lcd(0x27,20,4);
Servo s;
/**********************************************************/
void setup() {
pinMode(led_red,OUTPUT);
pinMode(led_green,OUTPUT);
pinMode(buzzer,OUTPUT);
Serial.begin(9600);
s.attach(servo);
s.write(90);
lcd.init(); // initialize the lcd
lcd.backlight();
lcd.print("Hello world!");
lcd.setCursor(0,1);
lcd.print("lock door system");
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Enter password: ");
lcd.setCursor(0,1);
}
void loop() {
char key=keypad.getKey();
//print key if not equal 0 hexa
if(key && key!='D')
{ Serial.println(key);
temp+=key;
lcd.print('@');}
else if(key){
lcd.clear();
if(temp == correct_password ){
digitalWrite(led_green,HIGH);
s.write(0);
message("safe!" ,"correct password");
digitalWrite(led_green,LOW);
s.write(90);}
else{
digitalWrite(buzzer,HIGH);
digitalWrite(led_red,HIGH);
message("thief!","not correct password");
digitalWrite(buzzer,LOW);
digitalWrite(led_red,LOW);
}
}
}
void message(String m,String h ){
temp="";
lcd.setCursor(6,0);
lcd.print(m);
lcd.setCursor(0,1);
lcd.print(h);
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Enter password: ");
lcd.setCursor(0,1);
}