Arduino Door Locking System




Introduction: Arduino Door Locking System

In this project I made an door lock (or box lock) that opens when you enter your password and press "*".

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Material Needed....

1. Arduino uno

2. Standard Servo

3. Red And Green LED

4. Male And Female Pin Headers

5. Door Lock

6. 4X4 Keypad


Step 2: Make PCB ....

Solder all the connection as shown above in the pics.

Or use frtizing file attached below

Step 3: Make Door Opening System....

Using Double tape Stick servo And Using A thick metal wire make a system that can open the lock when servo moves my pics above will help you..

Step 4: Put Every Thing Together

Put everything in order as shown in pics above

Step 5: Upload the Code on Arduino ..

Code Link :-

Code :-

#include // //tells to use password library
#include // //tells to use keypad library #include //tells to use servo library

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

const byte ROWS = 4; // Four rows const byte COLS = 4; // columns // Define the Keymap char keys[ROWS][COLS] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; // 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(){ Serial.begin(9600); Serial.write(254); Serial.write(0x01); delay(200); pinMode(11, OUTPUT); //green light pinMode(12, OUTPUT); //red light myservo.attach(13); //servo on digital pin 9 //servo keypad.addEventListener(keypadEvent); //add an event listener for this keypad }

void loop(){ keypad.getKey(); myservo.write(180); } //take care of some special events void keypadEvent(KeypadEvent eKey) { switch (keypad.getState()){ case PRESSED: Serial.print("Enter:"); Serial.println(eKey); delay(10); Serial.write(254); 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 Serial.println("Accepted"); Serial.write(254);delay(10); //Add code to run if it works myservo.write(0); //deg digitalWrite(11, HIGH);//turn on delay(10000); //wait 5 seconds digitalWrite(11, LOW);// turn off } else { Serial.println("Denied"); //if passwords wrong keep locked Serial.write(254);delay(10); //add code to run if it did not work myservo.write(180); digitalWrite(12, HIGH); //turn on delay(5000.); //wait 5 seconds digitalWrite(12, LOW);//turn off } }

Step 6: Run the Device ..

Power The Arduino And test everything...

Default password is 0000

Step 7: How to Change Password

As Shown in Pic Above Change the Highlighted Number ...

and upload the code.....

Frtizing file :-


Be the First to Share


    • Finish It Already Speed Challenge

      Finish It Already Speed Challenge
    • Arduino Contest 2020

      Arduino Contest 2020
    • First Time Author Contest

      First Time Author Contest

    5 Discussions


    2 years ago


    Good job, i used the code for another project.

    Just a tips :
    If you don't reset the password when it's accepted, it still in memory.
    So, if you just press the validate key, it's OK and that opens the door.
    Better to use password.reset() after each time it's validate


    3 years ago

    When i execute program i m getting like this please help

    Arduino: 1.6.11 (Windows 7), Board: "Arduino/Genuino Uno"

    sketch_aug24a:1: error: #include expects "FILENAME" or <FILENAME>

    #include // //tells to use password library


    sketch_aug24a:2: error: #include expects "FILENAME" or <FILENAME>

    #include // //tells to use keypad library #include //tells to use servo library


    exit status 1

    #include expects "FILENAME" or <FILENAME>

    This report would have more information with

    "Show verbose output during compilation"

    option enabled in File -> Preferences.


    3 years ago

    HI SIR,

    Should I include #include // //tells to use password library while programming ????


    3 years ago

    Cool! This is a nice looking little locking system. Thanks for sharing!


    Reply 3 years ago

    Welcome My Pleasure...