Door Lock System using Optical Fingerprint reader and RC522 RFID with LCD Display


This Project aims to implement simple Door lock automation using RFID and Fingerprint reader sensor as key to open the lock. It also uses I2C LCD 16×2 module as its display. All of the component are controlled by Arduino Uno. it also uses relay module that serves as switch to trigger the 12V Solenoid Lock.

Hardware used

Software used

Library Used

you can click the library to direct you to the download page.

What is Optical fingerprint reader sensor?

These modules are typically used in safes. There’s a high powered DSP chip that does the image rendering, calculation, feature-finding and searching.

This Shows the reading process on how to capture the output for fingerprint.
This sensor is connected to any microcontroller or system with TTL serial, and send packets of data to take photos, detect prints, hash and search. You can also enroll new fingerprints directly . Up to 162 fingerprints can be stored in the onboard FLASH memory.

RFID module

RFID means radio-frequency identification. RFID uses electromagnetic fields to transfer data over short distances. RFID is useful to identify people, to make transactions and others.
The RFID tags included in the kit are 1 white card-type tag, and 1 keychain type tag. The tag is placed a few centimeters from the reader in order to make a reading. This RFID system operates at 3.3V and has a frequency of 13.56 MHz.

I2C LCD module

This is a 16×2 LCD display screen with I2C interface. It uses only 4 pins the SCL,SDA,VCC and GND when interfacing with an Arduino. The advantage in using this is to save digital/analog pins on your microcontroller.
This solenoid lock operates at 12V, with maximum current of 2A. Useful for doors and cabinets etc. as safety lock.

Hardware Set-up

This is the pinout for the Fingerprint Sensor.
This is the actual setup of the door lock system .
Ror this set -up we need an external 12V supply to power the Solenoid Lock

Software Set-up

To start with, we will enroll fingerprints via Arduino.
In enrolling via Arduino. open Files—>Examples—->Adafruit Fingerprint Sensor Library —–> enroll then upload it to your Arduino.

Once it indicates “Stored”, your fingerprint is now enrolled.
To test if the fingerprint scanner can really detect your fingerprint, go to:
File→Examples→Adafruit_Fingerprint→fingerprint example and upload it to your Arduino.
Open up the serial monitor at 9600 baud and when prompted place your finger against the sensor. You should see the above.
“Confidence” is a score number (from 0 to 255) that indicates how good of a match the print is,. The higher the value, the better match we have.


This is the code for the entire system .

Code breakdown

This is for initialization of variables and inclusion of libraries. 

This is how to get your UID card number Go to Files —-> Examples —–> MFRC522 —–> DumpInfo and upload to your Arduino then scan your card take note of your Cad UID number to use it later .

 This routine is to dump a byte array as hex values to Serial. 

This function is to ask the sensor to take an image of the finger pressed on surface. if false it will return the process.

In this function the sensor will convert image to feature template.

The sensor will search the current slot 1 fingerprint features to match saved templates. The matching location is stored in (fingerID) and the matching confidence in (confidence).

This the actual system demonstration . Testing the RFID card and the Fingerprint reader simultaneously with the Solenoid lock .


This system can be used as mini security system for home. It’ also not only limited for door locks or solenoid lock, but you can also use other components or other sensors for your desired output with a little modification of the code.


Tags : arduino unoFingerprint Sensori2cI2C 1602 LCDRFID Reader kitSecurity SystemSolenoid Lock

Leave a Response