Biometric Fingerprint-Based Security System Using Arduino
1. Introduction
In this case study, we present the design and development of a biometric fingerprint-based security system
using an Arduino Uno. The purpose of this project is to allow authorized access only through fingerprint
verification, making it ideal for use in secure door locks, lockers, safes, or restricted access areas.
The system allows the user to:
- Enroll a new fingerprint
- Delete a saved fingerprint
- Match and verify fingerprints
All operations are controlled using three push buttons, with feedback displayed on an LCD screen and LED
indicators for status signals (Success or Failure).
2. Components Used
- Arduino UNO
- TTB223B Fingerprint Sensor
- I2C LCD Display (16x2)
- Push Buttons (3x)
- LEDs (Red & Green)
- Breadboard
- Jumper Wires
- 10k Ohm Resistors (x3)
- 330 Ohm or 2.2k Ohm Resistors (x2)
3. Description of Components
Arduino UNO: Microcontroller board that controls the system.
TTB223B Fingerprint Sensor: Scans and verifies fingerprints.
I2C LCD Display: Displays messages to users (enroll, delete, match, success, fail).
Push Buttons: Used to trigger enroll, delete, and match modes.
LEDs: Green (Success), Red (Failure) for visual feedback.
Biometric Fingerprint-Based Security System Using Arduino
Breadboard: Allows temporary and flexible wiring.
Resistors: 10k Ohm for pull-downs; 330 Ohm or 2.2k Ohm for LEDs.
Jumper Wires: Make electrical connections between components.
4. Circuit Connections
Push Buttons:
- One leg to +5V
- Other leg to D3, D4, or D5 (depending on function)
- Pull-down 10k Ohm resistor to GND
LEDs:
- Green LED: D6 via resistor to GND
- Red LED: D7 via resistor to GND
LCD Display (I2C):
- VCC -> 5V
- GND -> GND
- SDA -> A4
- SCL -> A5
Fingerprint Sensor (TTB223B):
- VCC -> 5V
- GND -> GND
- DATA -> D2
5. Code Explanation
The code:
- Initializes LCD and Serial
- Reads button states
- Based on button pressed, performs:
- Enroll fingerprint
Biometric Fingerprint-Based Security System Using Arduino
- Delete fingerprint
- Match fingerprint
- Shows result on LCD
- Activates Green LED for success, Red LED for error
6. Working & Output
- System powers on
- LCD prompts: "Press a Button"
- User presses a button: Enroll, Delete, or Match mode activates
- Fingerprint sensor captures or verifies fingerprint
- LCD + LEDs show result
7. Conclusion
This is a complete Biometric Security System using Arduino.
It enables secure access using fingerprints.
Useful for:
- Office doors
- Personal safes
- Lockers or drawers
Expandable to include EEPROM, Wi-Fi, or door lock relays.
8. Arduino Code (Sample)
#include <Adafruit_Fingerprint.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define enrollBtn 3
#define deleteBtn 4
#define matchBtn 5
#define greenLED 6
#define redLED 7
Biometric Fingerprint-Based Security System Using Arduino
SoftwareSerial fingerSerial(2, 2);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&fingerSerial);
void setup() {
pinMode(enrollBtn, INPUT_PULLUP);
pinMode(deleteBtn, INPUT_PULLUP);
pinMode(matchBtn, INPUT_PULLUP);
pinMode(greenLED, OUTPUT);
pinMode(redLED, OUTPUT);
lcd.begin();
lcd.backlight();
lcd.print("Initializing...");
finger.begin(57600);
delay(1000);
lcd.clear();
lcd.print("Ready");
}
void loop() {
if (digitalRead(enrollBtn) == LOW) {
lcd.clear();
lcd.print("Enroll Mode");
// enroll logic here
digitalWrite(greenLED, HIGH);
delay(2000);
digitalWrite(greenLED, LOW);
}
else if (digitalRead(deleteBtn) == LOW) {
lcd.clear();
lcd.print("Delete Mode");
// delete logic here
digitalWrite(redLED, HIGH);
delay(2000);
digitalWrite(redLED, LOW);
}
else if (digitalRead(matchBtn) == LOW) {
lcd.clear();
lcd.print("Match Mode");
// match logic here
if (finger.verifyPassword()) {
digitalWrite(greenLED, HIGH);
lcd.setCursor(0, 1);
lcd.print("Access Granted");
} else {
digitalWrite(redLED, HIGH);
lcd.setCursor(0, 1);
lcd.print("Access Denied");
}
Biometric Fingerprint-Based Security System Using Arduino
delay(2000);
digitalWrite(greenLED, LOW);
digitalWrite(redLED, LOW);
}
}