Smart Door Control With Fingerprint Sensor



Smart Door Control with Fingerprint Sensor is a security purpose project work. The system has a fingerprint sensor, which will take the fingerprint from the user and it will allow the valid user to enter the room by opening the door with a door motor controller. In this project, we are going to use Fingerprint Sensor (r305 v1.6), Arduino Uno, LCD display, Real-Time Clock module, Buzzer, etc. Basically in this project is works on the two-mode. In Data Load Mode any user can load their fingerprint in the system. and in the Check-in Mode, the sensor senses the upcoming fingerprint and check with the pre-loaded entries. If it is matched with anyone then it gives the permission signal, otherwise, it ignores the fingerprint data.


Required Hardware:

  1. Fingerprint Sensor (r305 v1.6)
  2. Arduino Uno
  3. LCD Display
  4. Two Push Button
  5. Motor Controller IC L293D
  6. Status LEDs
  7. Resisters (1KΩ)
  8. Connecting Wires
  9. Breadboard / General Purpose PCB
  10. 5 Volt Power Supply
  11. RTC Module (optional)
  12. Buzzer (optional)


Required Software:

This project doesn't need much software rather than the Arduino IDE. You can download it from the or follow the article Arduino IDE Setup And Programming. As extra we need some libraries like Adafruit Fingerprint Library, LiquidCrystal Library, EEPROM Library for the Arduino. Most of them are by default available with the Arduino IDE. Only you need to download the Adafruit Fingerprint Library from here or from the GitHub Link.


Circuit Diagram:

Here is the circuit diagram of the entire project. We design this circuit in a breadboard for testing purposes. You can Download the EasyEDA JSON file from here and make PCB from if you want. 



Software Setup & Programming:

First of all, we need to download the Adafruit Fingerprint Library and unzip it in the libraries folder of the Arduino directory (C:/Program Files(x86)/Arduino/libraries). Now open your Arduino IDE and go to File > Examples, if it shows the Adafruit Fingerprint Library in the example that means the library is installed successfully. 



Now its time to upload the code on the Arduino. I made the code for the Arduino Uno for the testing purpose. You can download this code and feel free to edit or customize it and upload the code on the Arduino. After successfully upload the code the system is ready for the first use.



The workflow of the entire system is basically divided into two-part. The first one is the Check-in Mode, and the second one is the Data Load Mode. The system can switch between these two modes by the mode switch button. Generally, the system starts with the Check-in Mode, but after that, we can switch from Check-in to Data load mode.

In this system, there are two pushbuttons. One is Mode Button another one is Load Button. The Mode Button is used to switch between the Check-in Mode and Data Load Mode. The Load Button uses the start of the loading process of the new fingerprint in the Data Load Mode. With the long press of the Load, the button can delete the entire database.  

Another important element of this circuit is the LED. In the circuit diagram, you can find we include 3 different colors (Red, Green, Blue) LEDs. But in the hardware, we are using only one LED but that is RGB type. So it can serve the need of 3 different LEDs. We call that LED as Status LED. In the Check-in Mode by default the Status LED is Blue in color, but when it authentic a user properly then the Status LED becomes Green for 2 seconds. If the system is changed to Data Load Mode then the Status LED becomes Red in color. This color variation helps the user to interact with the system.

Check-in Mode: 

In the Check-in mode system takes the fingerprint from the user and check it with the previously saved fingerprints. If the coming fingerprint is matched with any of the saved fingerprints then the system allows the user to enter the room and send a signal to the door motor driver to open the door. But if the fingerprint does not match then the system not allow the user to enter the room and the door motor controller remains inactive.

The by default mode is the Check-in Mode. The Display generally shows the total number of the fingerprint is saved in the system. In my case, the number of fingerprints that are already saved is 3 when I take this picture. Now the system is ready to check the fingerprint. So the user has to put their finger to check.

If the fingerprint of the user is matched with any of the previously saved fingerprints then the system displays the message that "Finger Detected", and it also returns the ID number which is the serial number corresponding to the fingerprint is saved in the system. In the picture below you can see that the system detected the finger and showing the message. And it also turns on the Green LED and the motor driver.  



Data Load Mode: 

In this mode, we can register one or more than one fingerprint with the system. Generally, this mode is not accessible by the common user. This mode should use only by the admin user. We are talking about the Door controller, so here the admin person is the owner of the room. So only he/she should use this mode. He/She allows any new user to register himself/herself to access the room.     

If you press once the Mode button when the system switch to the Data Load Mode and the display shows the mode name and also instructs to press the Load button to load a new fingerprint. The Sensor will be inactive until the load button will not be pressed. In this picture, you can see the inactive sensor with the instruction on the LCD. 


When the button is pressed the sensor becomes active again and it waits for a fingerprint. and the LCD is also instructed to "Put the finger". Now you have to put the correct finger in which you want to register with the system.


After putting your finger a moment the display shows the message "Remove finger". That means the fingerprint is taken successfully. So now user can remove his/her finger from the fingerprint sensor.

But after removing the finger another message will come like "Put once again". It happens because after receiving the fingerprint the first time it needs to verify once that the system can recognize the fingerprint when it needs to be. So the user has to put the same finger once.

If the system detected the same fingerprint as the before then it finally saved the fingerprint into its memory and provide an ID number for the fingerprint image. In my case, the number is 7. The LCD shows the ID number with a 'successful' message. 

But if the system can't detect the same fingerprint or anything wrong happen then the system fails to save the fingerprint. In my case first I put my index finger to load the fingerprint, and in the verification, I put my thumb and its fail to detect the same fingerprint and show the message like "Load Fail". 

After loading the fingerprint in the system you have to press once the mode button to return into the check-in mode. Now if you put the same finger which we just register then the system can detect the fingerprint and allow the user to enter into the room. 



This project is based on the security of a house or building or something like that. This system can secure the opening of a door with the authentic persons only. So this system can be used in the place where needs security. This system is more secure than the conventional lock and key system. We can use it in the bank. Only the person having the proper authentication can access the locker room of the bank. The system may be used in the home also. 




If this small effort can help in any project then my effort will be successful. Please put feedback On our contact page.

If you faced any problem please send an email to Thanks for being with us.


Thank You

Leave a Comment

View Previous Comment

Suraj Mondal 22nd Jul, 2020

Good work

Show 1 Reply

Subho Basak 23rd May, 2019

Please give some details about the code. Because when I was a beginner, my biggest problem was coding. I wanted someone, who can guide me in the hardware part and also in coding part. By the way your article is very simple to understand and very helpful

Show 1 Reply