Biometric Security System using Arduino and Fingerprint Sensor
Arduino Finger Print Sensor
Door Lock System
Security
is a major concern in our day to day life, and digital locks have become an
important part of these security systems. There are many types of security systems available to secure our
place.
Some examples are PIR
based Security System, RFID
based Security System, Digital
Lock System, bio-matrix
systems, Electronics Code lock. In
this post, we will Interface a Fingerprint Sensor Module with Arduino and
will build a Fingerprint based Biometric Security System with
door locking. Finger Print is considered one of the safest
key to lock or unlock any system as it can recognize any person uniquely and
can’t be copied easily.
Components Required:
- Arduino Uno
- Finger Print Module
- Push Button -4
- LEDs -2
- 1K Resistor -3
- 2.2K resistor -1`
- Power Supply
- Connecting wires
- Cardboard Box
- Servo Motor -1
- 16x2 LCD -1
- Bread Board -1
Finger Print Sensor Module with Arduino:
Finger Print Sensor Module or Finger Print Scanner is a module which captures finger’s print image and then converts it into the
equivalent template and saves them into its memory on selected ID (location) by Arduino. Here
all the process is commanded by Arduino like taking an image of finger print,
convert it into templates and storing location etc.
In
this Arduino Fingerprint Sensor Project, we have used Fingerprint
Sensor Module to take finger or thumb impression as input in the
system.
Here we are using 4 push
buttons to Enroll/back, Delete/OK, UP and Down. Every
key has double features. Enroll key is
used for enrolling new finger impression into the system and back function as
well.
Means when the user wants to
enroll new finger then he/she
needs to press enroll key then LCD asks for the ID or Location where user wants
to store the finger print output. Now if
at this time user do not want to proceed further then he/she can press enroll key again to go back (this time enroll key behave as Back key). Means enroll key has both enrollment and back
function. DEL/OK key also has same double function like when user enrolls new
finger then he/she need to select finger ID or Location by using
another two key namely UP/MATCH
AND DOWN/MATCH (which
also has double function) now
user needs to press DEL/OK key (this time this key behaves like OK) to proceed with selected ID or Location. UP/DOWN
keys also support Finger print match function. Check the Video at the end for
full demonstration.
Here
we have also attached a cardboard
box with a Servo Motor to act as a security gate, which
will only open when the system will read correct Finger Print. Yellow LED indicates gate is closed and Green LED
indicates gate is opened.
Working Explanation:
Working
of this Fingerprint Sensor Door Lock is easy. In this project, we have used a gate that will be
open when we place stored finger at the finger print module. First of all, the user needs to enroll finger with
the help of push button/keys. To do this user need to press ENROLL key and then
LCD asks for entering location/ID
where finger will be a store. So now
user needs to enter ID (Location) by using UP/DOWN keys. After
selecting Location/ID user needs to press an OK
key (DEL key). Now
LCD will ask for placing finger over the finger print module. Now user needs to put his finger over finger print
module.
Then LCD will ask to remove
the finger from finger print module and again ask for placing the finger. Now user needs to put his finger again over finger
print module.
Now finger print module takes
an image and converts it into templates and stores it by selected ID in to the
finger print module’s memory. Now user can open the gate by placing the same
finger that he/she have added or enrolled into the system and
then press MATCH key (UP/Down key). By the same method, the user can add more fingers. Check the Video below for full demonstration.
Now if
the user wants to remove or delete any of stored ID then he/she need to press DEL key, after pressing DEL key,
LCD will ask for select location means select ID that to be deleted. Now user needs to select ID and press OK key (same DEL key). Now LCD will let you know that finger has been
deleted successfully. Now the user may check it was
deleted or not by placing the same finger over the finger print module and
pressing MATCH key (UP/Down key).
When
placed finger will be valid Green LED will glow for five second and gate also
opens at the same time. After 5-seconds gate will be closed automatically. The user may customize gate/door opening and closing according to their
requirement.
Servo motor is responsible
for open and closing of the gate.
Circuit Explanation:
The
circuit of this Arduino Fingerprint Security System is very
simple which contains Arduino which controls whole the process of the project,
push button, buzzer, and LCD. Arduino
controls the complete processes.
The
push button is directly connected to pin D14(ENROL),D15(DEL), D16(UP) and
D17(DOWN) of
Arduino with respect to ground And Yellow LED is connected at Digital pin D7 of
Arduino with respect to ground through a 1k resistor and Green LED is connected
to D6 of Arduino with the same method. Finger Print Module’s Rx
and Tx directly connected at Software Serial or Digital pin D2 and D3 of
Arduino.
5v supply is used for
powering finger print module taken from Arduino board and Servo motor is also
connected to PWM pin
D5 of Arduino.
A 16x2
LCD is configured in 4-bit mode and its RS, EN, D4, D5, D6, and D7 are
directly connected at Digital pin D13, D12, D11, D10, D9, and D8 of Arduino.
Note: here
D14, D15, D16, D17 are A0, A1, A2, A3 respectively.
Program Explanation:
In a
program, we have used Adafruit Fingerprint Sensor Library for interfacing
fingerprint module with Arduino board. You can check the complete Code below, it
can be easily understood. Here
we are explaining main functions of the Arduino Program.
Below
piece of code is used to take Finger Print as input and take action according
to validation of finger. If finger will be validated
gate will be open otherwise remain closed.
for(int i=0;i<5;i++)
{
lcd.clear();
lcd.print("Place Finger");
delay(2000);
int result=getFingerprintIDez();
if(result>=0)
{
digitalWrite(openLight, HIGH);
digitalWrite(closeLight, LOW);
lcd.clear();
lcd.print("Allowed");
lcd.setCursor(0,1);
lcd.print("Gete Opened ");
myServo.write(0);
delay(5000);
myServo.write(180);
digitalWrite(closeLight, HIGH);
digitalWrite(openLight, LOW);
lcd.setCursor(0,1);
lcd.print("Gate Closed ");
Given
void checkKeys() function
is used for checking Enroll or DEL key is pressed or not and what to do if
pressed.
If the ENROL key pressed
the Enroll() function
is called and DEL key press then delete()function is called.
void
checkKeys()
{
if(digitalRead(enroll) == 0)
{
lcd.clear();
lcd.print("Please Wait");
delay(1000);
while(digitalRead(enroll) == 0);
Enroll();
}
else if(digitalRead(del) == 0)
{
lcd.clear();
lcd.print("Please Wait");
delay(1000);
delet();
}
}
Given
function is used for entering ID to be deleted and calling uint8_t
deleteFingerprint(uint8_t id)function
that will delete finger from records.
void
delet()
{
int count=0;
lcd.clear();
lcd.print("Delete Finger ");
lcd.setCursor(0,1);
lcd.print("Location:");
while(1)
{
lcd.setCursor(9,1);
lcd.print(count);
if(digitalRead(up)
== 0)
{
count++;
if(count>25)
count=0;
delay(500);
}
.... .....
..... .....
Given
function is used for delete finger print from the record of selected ID.
uint8_t
deleteFingerprint(uint8_t id)
{
uint8_t p = -1;
lcd.clear();
lcd.print("Please wait");
p = finger.deleteModel(id);
if (p
==
FINGERPRINT_OK)
{
Serial.println("Deleted!");
lcd.clear();
lcd.print("Figer Deleted");
lcd.setCursor(0,1);
lcd.print("Successfully");
delay(1000);
}
else
{
Serial.print("Something Wrong");
lcd.clear();
lcd.print("Something Wrong");
lcd.setCursor(0,1);
lcd.print("Try Again Later");
delay(2000);
return p;
}
}
Given
Function is used to taking finger print image and convert them into the
template and save it by selected ID into the finger print module memory.
uint8_t
getFingerprintEnroll()
{
int p = -1;
lcd.clear();
lcd.print("finger ID:");
lcd.print(id);
lcd.setCursor(0,1);
lcd.print("Place Finger");
delay(2000);
while (p
!=
FINGERPRINT_OK)
{
p = finger.getImage();
..... .....
....... ....
Demo & Code
Biometric Security System using Arduino and Fingerprint Sensor
Reviewed by XXX
on
สิงหาคม 27, 2560
Rating:
ไม่มีความคิดเห็น