SarpUsta
Published © MIT

Password-Protected Door System

This project is safety-related.

AdvancedShowcase (no instructions)918
Password-Protected Door System

Things used in this project

Story

Read more

Schematics

unknown_TQCfHQC3tY.jpeg

Code

Passworder

Arduino
#include <Servo.h>
Servo sg90;
#include <Password.h>
#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
Password password = Password("12AB"); 
int dlugosc = 4;
LiquidCrystal_I2C lcd(0x27 , 16 , 2);

int buzzer = 13;
char tus; // number of clicks
const byte satir = 4; 
const byte sutun = 4;
char tus_takimi [sutun] [satir] =
{
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte satir_pinleri[sutun] = {13,12,11,10};
byte sutun_pinleri[satir] = {9,8,7,6};
Keypad keypad = Keypad( makeKeymap(tus_takimi), satir_pinleri, sutun_pinleri, satir, sutun );
void setup()
{
Serial.begin(9600);
keypad.addEventListener(keypadEvent);
sg90.attach(9);
pinMode(buzzer, OUTPUT);


lcd.begin();
lcd.setCursor(1,0);
lcd.print("Please Enter");
lcd.setCursor(0,1);
lcd.print("Password to Open");
}
void loop()
{
keypad.getKey();
}
void keypadEvent(KeypadEvent eKey)
{
switch (keypad.getState())
{
case PRESSED:
int i;
for( i = 1; i <= 1; i++ )
{
digitalWrite(buzzer, HIGH);
delay(50);
digitalWrite(buzzer, LOW);
delay(50);
}
Serial.print("Pressed: ");
Serial.println(eKey);
switch (eKey)
{
/*
case '#':
break;
case '*':
break;
*/
default:
tus=tus+1;
password.append(eKey);
}
//Serial.println(tus);
if(tus == 1)
{
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Password:");
lcd.setCursor(0,1);
lcd.print("*_");
}
if(tus == 2)
{
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Password:");
lcd.setCursor(0,1);
lcd.print("**_");
}
if(tus == 3)
{
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Password:");
lcd.setCursor(0,1);
lcd.print("***_");
}
if(tus == 4)
{
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Password:");
lcd.setCursor(0,1);
lcd.print("****_");
}
if(tus == 5)
{
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Password:");
lcd.setCursor(0,1);
lcd.print("*****_");
}
if(tus == 6)
{
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Password:");
lcd.setCursor(0,1);
lcd.print("******_");
}
if(tus == 7)
{
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Password:");
lcd.setCursor(0,1);
lcd.print("*******_");
}
if(tus == 8)
{
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Password:");
lcd.setCursor(0,1);
lcd.print("********");
}
if(tus == dlugosc)
{
delay(250);
checkPassword();
tus = 0;
}
}
}
void checkPassword()
{
if (password.evaluate())
{
int i;
for( i = 1; i <= 2; i++ )
{
digitalWrite(buzzer, HIGH);
delay(70);
digitalWrite(buzzer, LOW);
delay(70);
}
tus = 0;
Serial.println("Password OK");
sg90.write(180);
digitalWrite(buzzer, HIGH);
delay(800);
digitalWrite(buzzer, LOW);
sg90.write(0);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Password OK");
delay(1000);
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Please Enter");
lcd.setCursor(0,1);
lcd.print("Password to Open");
}
else
{
int i;
for( i = 1; i <= 1; i++ )
{
digitalWrite(buzzer, HIGH);
delay(200);
digitalWrite(buzzer, LOW);
delay(200);
}
tus = 0;
password.reset();
Serial.println("Error!");


digitalWrite(buzzer, HIGH);
delay(800);

digitalWrite(buzzer, LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Error!");
delay(1000);
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Please Enter");
lcd.setCursor(0,1);
lcd.print("Password to Open");
}
}

Credits

SarpUsta
4 projects • 0 followers
Contact

Comments

Please log in or sign up to comment.