Ultimate Smart Door Lock Using RFID, Fingerprint & IoT – DIY Project

Smart Door Lock using RFID and Fingerprint with IoT integration is a powerful security solution designed for modern homes and offices. Unlike traditional key-based locks that can be lost, stolen, or duplicated, this DIY smart door lock project combines RFID authentication, fingerprint biometrics, and IoT connectivity to provide advanced, reliable, and convenient access control. With this system, you can unlock doors using RFID cards, fingerprints, or remotely through an IoT mobile app. It not only improves security but also offers real-time monitoring, notifications, and user management—making it an ultimate choice for smart home automation.

Prayer Time Alarm Device with Arduino

Introduction to Smart Door Lock:

 The Smart Door Lock is an electronic access system that replaces physical keys with digital authentication methods. The lock can be operated in three ways:

  1. RFID Access – Authorized users can unlock the door using RFID cards or tags.

  2. Fingerprint Authentication – Provides secure biometric verification for unique access.

  3. IoT Connectivity – Enables remote monitoring, real-time alerts, and user management through a mobile app.

By combining these technologies, the system ensures enhanced protection against unauthorized entry.

Features of Smart Door Lock System Using Arduino:

      • Multi-authentication: Access through RFID, fingerprint, or IoT app.

      • Real-time IoT alerts: Remote notifications via Blynk or Firebase.

      • Secure logging: Tracks who entered and at what time.

      • Local indicators: LED and buzzer feedback for valid or invalid access.

      • Affordable design: Built using Arduino/ESP microcontrollers.

    •  

    Components Needed for Smart Door Lock System:

     

    Arduino Mega 2560

        • Chosen for its ample I/O pins and memory to handle TFT, audio, and RTC simultaneously.

      2.4” TFT Touchscreen Display (ILI9341)

          • Used to display real-time clock, prayer times, and control interface.

        DS3231 RTC Module

            • Real-Time Clock for accurate timekeeping with battery backup.

          DFPlayer Mini MP3 Player Module

              • Plays pre-recorded Azan audio files stored on a microSD card.

            MicroSD Card (FAT32 formatted)

                • Stores the Azan MP3 files.

              4Ω 3W Speaker

                  • Connected to DFPlayer Mini to play audio.

                Optional: Buttons or Buzzer (for notifications or manual control)

                Breadboard & Jumper Wires / Custom PCB

                    • For wiring and prototyping.

                  Power Supply (USB Adapter / 9V Battery / 5V Adapter)

                   

                  Working of Smart Door Lock System

                  1. User attempts access by either scanning an RFID card or placing a finger on the fingerprint sensor.

                  2. Arduino/ESP32 verifies credentials by comparing the data with stored records.

                  3. If access is authorized:

                    • The servo/solenoid lock activates and unlocks the door.

                    • A success notification is sent via IoT (Blynk app).

                    • LED indicator shows green, buzzer beeps shortly.

                  4. If access is unauthorized:

                    • The lock remains closed.

                    • A red LED lights up and buzzer sounds.

                    • IoT platform sends an instant alert notification.

                  5. Admin panel on IoT app allows remote access control, user management, and monitoring of entry logs.

                  IoT Platform Setup for Smart Door Lock

                  You will need:

                  • A Blynk account (https://blynk.io/)

                  • Create a template and device on the dashboard

                  • Copy the auth token into Arduino code

                  • Assign virtual pins for:

                    • V0 = Access Status

                    • V1 = Door Lock/Unlock Control

                    • V2 = User Log Data

                  This setup enables real-time remote control and monitoring. 

                  Circuit Diagram of Smart Door Lock:

                  Circuit Diagram of Prayer Time Azan Alarm Device with Arduino

                  Code for Smart Door Lock:

                  /***************************************************
                     Smart Door Lock System (RFID + Fingerprint + IoT)
                     Components: Arduino UNO/ESP32, RC522 RFID, R307 Fingerprint,
                                 Servo Motor, Buzzer, LEDs, Blynk IoT
                  ****************************************************/
                  
                  #include <SPI.h>
                  #include <MFRC522.h>              // RFID Library
                  #include <Adafruit_Fingerprint.h> // Fingerprint Sensor Library
                  #include <Servo.h>
                  #include <WiFi.h>                 // Use <ESP8266WiFi.h> if ESP8266
                  #include <BlynkSimpleEsp32.h>     // Blynk for ESP32 (change for ESP8266)
                  
                  // -------- WiFi & Blynk Setup --------
                  char auth[] = "YOUR_BLYNK_AUTH_TOKEN"; // Get from Blynk app
                  char ssid[] = "YOUR_WIFI_SSID";        // WiFi name
                  char pass[] = "YOUR_WIFI_PASSWORD";    // WiFi password
                  
                  // -------- RFID Setup --------
                  #define SS_PIN  5
                  #define RST_PIN 0
                  MFRC522 rfid(SS_PIN, RST_PIN);
                  
                  // -------- Fingerprint Setup --------
                  Adafruit_Fingerprint finger = Adafruit_Fingerprint(&Serial2); 
                  // Use Serial1/Serial2 depending on ESP32 pins used
                  
                  // -------- Servo & Buzzer --------
                  Servo doorServo;
                  #define SERVO_PIN 4
                  #define BUZZER_PIN 15
                  #define LED_GREEN 2
                  #define LED_RED   14
                  
                  // -------- Variables --------
                  bool doorUnlocked = false;
                  
                  // -------- Setup --------
                  void setup() {
                    Serial.begin(115200);
                    
                    // RFID init
                    SPI.begin();
                    rfid.PCD_Init();
                    
                    // Fingerprint init
                    finger.begin(57600);
                    if (finger.verifyPassword()) {
                      Serial.println("Fingerprint sensor ready.");
                    } else {
                      Serial.println("Fingerprint sensor not found!");
                      while (1) delay(1);
                    }
                  
                    // Servo + buzzer + LEDs
                    doorServo.attach(SERVO_PIN);
                    pinMode(BUZZER_PIN, OUTPUT);
                    pinMode(LED_GREEN, OUTPUT);
                    pinMode(LED_RED, OUTPUT);
                    lockDoor();
                  
                    // WiFi + Blynk
                    Blynk.begin(auth, ssid, pass);
                    Serial.println("System Initialized - Smart Door Lock Ready");
                  }
                  
                  // -------- Main Loop --------
                  void loop() {
                    Blynk.run();
                    checkRFID();
                    checkFingerprint();
                  }
                  
                  // -------- RFID Function --------
                  void checkRFID() {
                    if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) return;
                  
                    String tagID = "";
                    for (byte i = 0; i < rfid.uid.size; i++) {
                      tagID += String(rfid.uid.uidByte[i], HEX);
                    }
                    tagID.toUpperCase();
                  
                    Serial.print("RFID Tag Scanned: ");
                    Serial.println(tagID);
                  
                    // Change with your authorized card UID
                    if (tagID == "YOUR_AUTHORIZED_CARD_ID") {
                      unlockDoor("RFID Access");
                    } else {
                      denyAccess();
                    }
                    rfid.PICC_HaltA();
                  }
                  
                  // -------- Fingerprint Function --------
                  void checkFingerprint() {
                    int id = getFingerprintID();
                    if (id >= 0) {
                      unlockDoor("Fingerprint Access");
                    }
                  }
                  
                  int getFingerprintID() {
                    finger.getImage();
                    if (finger.image2Tz() != FINGERPRINT_OK) return -1;
                    if (finger.fingerSearch() != FINGERPRINT_OK) return -1;
                    Serial.print("Fingerprint ID: "); Serial.println(finger.fingerID);
                    return finger.fingerID;
                  }
                  
                  // -------- Unlock & Lock Functions --------
                  void unlockDoor(String method) {
                    doorServo.write(90); // rotate to unlock
                    digitalWrite(LED_GREEN, HIGH);
                    digitalWrite(BUZZER_PIN, HIGH);
                    delay(300);
                    digitalWrite(BUZZER_PIN, LOW);
                    Blynk.virtualWrite(V0, "Door Unlocked via " + method);
                    Serial.println("Door Unlocked via " + method);
                    delay(5000); // Keep unlocked for 5 sec
                    lockDoor();
                  }
                  
                  void lockDoor() {
                    doorServo.write(0); // rotate to lock
                    digitalWrite(LED_GREEN, LOW);
                    digitalWrite(LED_RED, HIGH);
                    doorUnlocked = false;
                    Blynk.virtualWrite(V0, "Door Locked");
                    Serial.println("Door Locked");
                  }
                  
                  void denyAccess() {
                    digitalWrite(LED_RED, HIGH);
                    digitalWrite(BUZZER_PIN, HIGH);
                    delay(1000);
                    digitalWrite(BUZZER_PIN, LOW);
                    Blynk.virtualWrite(V0, "Unauthorized Access Attempt");
                    Serial.println("Access Denied!");
                  }

                  Applications of Smart Door Lock System

                  • Home Security – Keyless entry for residents and remote access for guests.

                  • Office & Workspaces – Manage employee access and maintain logs.

                  • Apartments & Hostels – Provide centralized access control.

                  • Server Rooms/Labs – Restrict access to sensitive areas.

                  • Hotels & Rentals – IoT-enabled guest access without physical keys.

                  •  

                  Future Improvements

                    • Integration with Face Recognition for advanced security.

                    • Compatibility with Google Assistant / Alexa for voice commands.

                    • Battery backup for uninterrupted operation during power failures.

                    • Two-factor authentication (RFID + Fingerprint) for maximum safety.

                  •  

                  Need This Project?

                  If you need this Project with or without Modifications or Customization then you can contact us through WhatsApp. We can deliver you this Project in the Following Ways.

                  Project Code:
                  we can provide you Project Code along with Zoom Assistant, through Zoom meeting for Setup of this Project or any other Arduino Project of your need.

                  Fully Functional Project with Hardware/Components Shipment:
                  if you can not make this project yourself then you can use this option. We will assemble the Project and will ship it to your Doorstep with Safe Packaging.

                  Learn More about the services we offer.

                  Table of Contents

                  Leave a Reply

                  Your email address will not be published. Required fields are marked *

                  Facebook
                  YouTube