Thursday, August 31, 2017

Arduino password protected door lock system

It is a password protected door lock project using arduino

Press # for clear then press the password ( in my case it is 1234)
and press * (star) for confirm.
now servo motor on and door lock will open .after 5 sec it will automatically close.

Parts need-

arduino uno
4x4 Matrix  keyboard
servo motor
jumper wire
power bank or battery for power supply
bread board
normal door lock
resistor 220 ohms

Connection -

key pad pin            Arduino digital pin
      1             to              9  
      2             to              8
      3             to              7
      4             to              6
      5             to              5
      6             to              4
      7             to              3
       8            to              2

green led to arduino digital pin 11

red led to arduino digital pin 12

led ground via 220 ohom resistor

servo signal to arduino digital pin 13

                        Connection Diagram

Arduino code--

#include <Password.h> // //tells to use password library
#include <Keypad.h> //  //tells to use keypad library
#include <Servo.h> //tells to use servo library

Servo myservo; //declares servo
Password password = Password( "1234" ); //password to unlock, can be changed

const byte ROWS = 4; // Four rows
const byte COLS = 4; // columns
// Define the Keymap
char keys[ROWS][COLS] = {
// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
byte rowPins[ROWS] = { 9, 8, 7, 6 };// Connect keypad COL0, COL1 and COL2 to these Arduino pins.
byte colPins[COLS] = { 5, 4, 3 };

// Create the Keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){
  pinMode(11, OUTPUT);  //green light
  pinMode(12, OUTPUT);  //red light
  myservo.attach(13); //servo on digital pin 13//servo
  keypad.addEventListener(keypadEvent); //add an event listener for this keypad

void loop(){
  //take care of some special events
  void keypadEvent(KeypadEvent eKey){
  switch (keypad.getState()){
  case PRESSED:
  switch (eKey){
    case '*': checkPassword(); delay(1); break;
    case '#': password.reset(); delay(1); break;
     default: password.append(eKey); delay(1);
void checkPassword(){
if (password.evaluate()){  //if password is right open
    //Add code to run if it works
    myservo.write(150); //deg
        digitalWrite(11, HIGH);//turn on
    delay(5000); //wait 5 seconds
    digitalWrite(11, LOW);// turn off
    Serial.println("Denied"); //if passwords wrong keep locked
    //add code to run if it did not work
    digitalWrite(12, HIGH); //turn on
    delay(500); //wait 5 seconds
    digitalWrite(12, LOW);//turn off

No comments:

Post a Comment