Arduino Fingerprint Lock




Introduction: Arduino Fingerprint Lock

There is a short video for this Arduino fingerprint lock here:

I live in a small apartment in Shenzhen with my wife and baby, 5 months old.  Sometimes, I need to go out, for example, to go downstairs to buy candy or diapers for my baby. But always I forget to carry my keys, so I need to knock at the door or call my wife to open the door for me, and, always wake up my baby and begins to cry.

At this time, I am so guilty. So i decide to think of a way to fundamentally solve the problem.

A fingerprint lock would be help for me, and there are plenty of these kinds of locks on the market, as the picture above. But it is not only expensive, and, it is also very troublesome to install. I hope to find a cheap way and do need not change my  locks.

After learning Arduino for 2 weeks, I decided to DIY a fingerprint lock, with Arduino.

Step 1: Solution and Module Preparing

First, I observed the door of my house, as the picture above.

As you can see, as long as the red part of the figure pulled in the direction of the arrow, the door can be unlocked, and of cause, when not pulled, the red part go back to it’s original location to lock the door. So I think, a servo would be OK to accomplish this function.

And, i need a fingerprint sensor, too, when i or my wife press the fingerprint sensor, which can determine whether a person is certified, it outputs instructions to the Arduino, to control servo to open the door.

I use the following modules:
1. Crowduino,this is an Arduino compatible microcontroller boards, i use it because it is cheap enough, and has some upgrading on the design, such as the reset button on the side.
2. FingerPrint Sensor
3. A servo with enough torque.
4. Glue,or anything that can be used to fix these modules
5. 5V USB power supply or 9V DC jack power supply
6. Some jumper wires would be help.

Step 2: Hardware Connection

Since only two modules are used in this project, the Hardware connection is relatively simple.

Connect the Servo to Crowduino as:
Red wire <-----> 5V power supply
Brown wire <-----> GND
Yellow wire <-----> D6

Fingerprint module:
the fingerprint module communicate with Crowduino using serial communication protocol, but since Crowduino has only one hardware serial port that I need to use for the PC communication, I use Arduino Soft Serial to communicate with fingerprint , using A4 and A5.
Connect the fingerprint to Crowduino as:
Red wire <-----> 5V Power Supply
Brown wire <-----> GND
Purple wire <-----> A4
Yellow wire <-----> A5

You can connect these modules to Crowduino as the picture above , and Note that both the module uses 5V power supply, you can connect one of their power supply to the 5V supply of ISP.

Step 3: Download the Codes and Install

Download the codes from Here, Here you can find all the codes and libraries.

Open the Arduino IDE, open the File->Preferences, Change the Sketchbook location to the location of your download code( as above picture), and click OK and then restart the Arduino IDE.

Step 4: Get and Store Your Fingerprint

Now, I need to store my fingerprint to Crowduino, to let it open the door as i press the fingerprint.
Open the Arduino IDE, open the File -> Sketchbook -> enroll, you will see the enroll code that function as a fingerprint registration.

After downloading the sketch enrollto Crowduino, Open the serial monitor, and set the baud rate to 38400, you will see the outputs from the serial monitor to remind you input a fingerprint number.

This number represents the fingerprint number that you will input. The fingerprint can store up to 120 fingerprints on default. Here we input the first fingerprint, input “1a”, and press the carriage to input. the serial output will remind you to press the fingerprint with:
"Waiting for valid finger to enroll."

Press the fingerprint sensor.

After your pressing, the outputs on the serial monitor will remind you to move off your finger, and then reminds you press the fingerprint again to double check. Act as the serial outputs, you can complete all the steps easily.

Step 5: Make the System Work and System Installation

After storing the fingerprint to Crowduino, the Crowduino stores all the fingerprint in it’s EEPROM. Now we download the working program to Crowduino to make the system working as your guide. Open the Arduino IDE,OpenFile -> Sketchbook -> fingerprint and download this program to Crowduino.

After the downloading or the programfingerprint, have a try to press the fingerprint with the finger you input in step4, If the Crowduino recognize your finger, the servo will rotate some degrees to open the door. And after 2 seconds, it will backs to it’s original location.

Fix the servo on the lock to make it push the locks when it rotates. i use the glue, maybe you have some other solution! i adjust the position within 2 minutes, and it works!

It seems the wires is somewhat a mess, but believe me it does not affect the function, also, I believe you must have a better way to make these wires more organized.

Power up the system with 5V USB power or 9V DC Jack power, have a try to see if the whole system works.



  • Tiny Home Contest

    Tiny Home Contest
  • Water Contest

    Water Contest
  • Creative Misuse Contest

    Creative Misuse Contest

45 Discussions

Can you use a iPhone fingerprint scanner, if so how?

have use rfid finger print?

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

C:\Users\USER\AppData\Local\Temp\Rar$DIa0.643\enroll\enroll.ino:24:34: fatal error: Adafruit_Fingerprint.h: No such file or directory



compilation terminated.

exit status 1
Error compiling for board Arduino/Genuino Uno.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
.whats this error means

hi can anyone please help convert this from the Crowduino to Arduino Uno both in terms Code and Circuit. I just dont understand what needs to be changed.

would be much appreciated thanks


1 year ago

Hi, fantastic tutorial. Thanks a mill. Question: I need to store more than 120 prints. How can I go about storing the prints say on an SD connected to the ardoino as opposed to the onboard memory?

Hello Sir! I would like to ask what problems have you encountered upn making this project?


1 year ago

hello can i get coding for servo moto

cane we use any type of fingerprint scanner


1 year ago

This is a great project but I need some help with the power supply. I have used the same Adafruit fingerprint sensor and a solenoid to open the lock.

The fingerprint sensor works fine to switch on LEDs when the correct fingerprint is detected.

I can easily open the solenoid straight from the Arduino (with or without the relay) provided the fingerprint sensor is not connected.

So, there does not seem to be enough power to power open a 5v solenoid (motor) and to run the fingerprint sensor at the same time, even when I connect a 5V relay and try to open the solenoid from a separate power source. The signal from the pin13 is just to small to switch the relay. Does anyone have any suggestions. I am not sure why such a tiny voltage is sent to the OUTPUT on detection of the correct fingerprint.

Perhaps I do not understand the total power output of the Arduino well enough. I am running the Arduino off a 9V battery.

Please can someone advise what to do.

Can I use r305 for save more then one finger print ?
Plz ans me .

I can't see preferences after file in Arduino ide plz help

how can I connect wire from fingerprint machine to wire from crowduino to server motor
as I am new to all these

can we use arduino board instead of crowduino board? its that the same things?

1 reply

2 years ago

great work

will it work with other finger print sensor other than adafruit?

hey i want to made this project and i need your help. in this project i need more then 10 fingerprint, can you explain what is the size of scanned fingerprint.... please reply

how to connect server to lock??

hi we are getting trouble in your program,program did not find our fingerprint scanner and it did not go into the finger.verifypassword() function


2 years ago

Hi I'm always getting

Specified folder/zip file does not contain a valid library