Title:- Smart Door Lock System

Student Name: Dnyaneshwar Ramesh Mule

Problem Statement

Fab Lab मध्ये कोणतीही परवानगी न घेता कोणीही आत येऊ शकत असलेल्याने. त्यामुळे Fab Lab मधील Tools आणि Machines चा चुकीचा वापर होऊ शकतो. यामुळे Tools खराब होण्याची किंवा त्यांचे नुकसान होण्याची शक्यता असते.तसेच कोणत्या व्यक्तीने Door Open केला हे कळत नाही. त्यामुळे Fab Lab मध्ये कोण आले होते आणि त्यांनी कोणते Tools वापरले हे समजणे कठीण होते.म्हणून Fab Lab ची सुरक्षा वाढवण्यासाठी आणि फक्त परवानगी असलेल्या व्यक्तींनाच प्रवेश देण्यासाठी Smart Door Lock System ची गरज आहे.

Proposed Solution

या problem solution म्हणून मी Fab Lab साठी RFID Based Smart Door Lock System तयार केला आहे. या System मध्ये RFID Card च्या मदतीने व्यक्तीची ओळख तपासली जाते. परवानगी असलेले RFID Card वापरल्यावर Door Unlock होतो आणि त्या व्यक्तीला Fab Lab मध्ये प्रवेश मिळतो.परवानगी नसलेले RFID Card वापरल्यास Door Unlock होत नाही आणि Door Lock राहतो. तसेच Fab Lab च्या आतून Door उघडण्यासाठी Push Button दिलेला आहे. या System मध्ये 12V Adapter चा supply Buck Converter च्या मदतीने आवश्यक voltage मध्ये कमी केला जातो. या System मुळे Fab Lab मध्ये फक्त परवानगी असलेल्या व्यक्तींनाच प्रवेश देता येतो आणि Tools व Machines ची सुरक्षा वाढवता येते.

Working Principle

या प्रोजेक्टमध्ये ESP32 हा मुख्य Controller म्हणून काम करतो. System सुरू केल्यावर RFID Reader, Relay आणि Push Button काम करण्यासाठी तयार होतात. User RFID Card, RFID Reader जवळ आणतो. RFID Reader कार्डमधील UID Read करून तो ESP32 ला पाठवतो. ESP32 हा UID Program मध्ये Save केलेल्या Authorized Card च्या UID सोबत Check करतो. जर UID Match झाला तर ESP32 Relay ला ON करण्याचा Signal देतो. Relay ON झाल्यावर Solenoid Lock Activate होतो आणि Door Unlock होतो. Door 3 सेकंदांसाठी Unlock राहतो. त्यानंतर Relay OFF होतो आणि Door पुन्हा Lock होतो.जर RFID Card चा UID Match झाला नाही, तर Relay ON होत नाही आणि Door Lock राहतो. Serial Monitor वर “ACCESS DENIED” दिसते. तसेच आतून Door उघडण्यासाठी Push Button दिलेला आहे. Button दाबल्यावर ESP32 Relay ON करतो आणि Solenoid Lock Activate होऊन Door 3 सेकंदांसाठी Unlock होतो.

Objectives

या प्रोजेक्टचा main उद्देश Fab Lab ची सुरक्षा वाढवणे हा आहे. RFID Card वापरून फक्त परवानगी असलेल्या व्यक्तींनाच Fab Lab मध्ये प्रवेश द्यायचा आहे. परवानगी नसलेल्या व्यक्तींना प्रवेश मिळू नये यासाठी Door Lock ठेवायचा आहे. आतून Door उघडण्यासाठी Push Button वापरायचा आहे. यामुळे Fab Lab मधील Tools आणि Machines सुरक्षित ठेवता येतील.

Components

  1. ESP32
  2. RFID Reader (RC522)
  3. RFID Card
  4. Relay Module
  5. Solenoid Lock
  6. Push Button
  7. Buck Converter
  8. 12V Adapter
  9. Connecting Wires

System flow

Simple Flow:
12V Adapter → Buck Converter → ESP32 → RFID Reader → UID Check → Relay → Solenoid Lock → Door

Push Button → ESP32 → Relay → Solenoid Lock → Door

ComponentPinESP32 Pin
RFID RC522SDA / SSGPIO 5
RFID RC522SCKGPIO 18
RFID RC522MISOGPIO 19
RFID RC522MOSIGPIO 23
RFID RC522RSTGPIO 22
RFID RC5223.3V3.3V
RFID RC522GNDGND
Relay ModuleINGPIO 26
Relay ModuleVCC3.3V / Module specification प्रमाणे
Relay ModuleGNDGND
Push Buttonएक PinGPIO 32
Push Buttonदुसरा PinGND
Solenoid LockControlRelay च्या माध्यमातून
12V Adapter+Buck Converter / Lock Supply
12V Adapter−GND
Buck ConverterOUTआवश्यक Voltage Supply

Bill Of Material

Sr. No.ComponentQuantityApprox. Cost
1ESP321₹400
2RFID Reader (RC522)1₹150
3RFID Card2₹50
4Relay Module1₹80
5Solenoid Lock1₹400
6Push Button1₹20
7Buck Converter1₹80
812V Adapter1₹250
9Connecting WiresAs required₹100
Total Approx. Cost₹1,530

System Testing

System तयार केल्यानंतर सर्व components योग्य प्रकारे काम करत आहेत की नाही हे तपासले. सर्वप्रथम RFID Reader जवळ Authorized RFID Card Scan करून पाहिला. Card चा UID योग्य असल्यास Relay ON झाला आणि Lock मुळे Solenoid Unlock झाला. 3 सेकंदांनंतर Relay OFF झाला आणि Door पुन्हा Lock झाला.त्यानंतर Unauthorized RFID Card वापरून Testing केली. Card चा UID Match न झाल्यामुळे Relay ON झाला नाही आणि Lock राहिला. तसेच आतून Push Button दाबून पाहिल्यावर Relay ON झाला आणि lock काही सेकंदांसाठी Unlock झाला.

Final code

#include <SPI.h>
#include <MFRC522.h>

// ---------------- PINS ----------------
#define SS_PIN     5
#define RST_PIN    22
#define RELAY_PIN  26
#define BUTTON_PIN 32

MFRC522 rfid(SS_PIN, RST_PIN);

// ---------------- RFID CARDS ----------------

// Card 1
byte card1[] = {
  0x7A,
  0x14,
  0xF2,
  0x06
};

// Card 2
byte card2[] = {
  0x42,
  0x2B,
  0x02,
  0x07
};

// ---------------- RELAY ----------------
// Your 3.3V relay is ACTIVE LOW

#define RELAY_ON  LOW
#define RELAY_OFF HIGH

// Unlock time
#define UNLOCK_TIME 3000


void setup() {

  Serial.begin(115200);

  // Relay
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, RELAY_OFF);

  // Button
  // Button connected between GPIO 32 and GND
  pinMode(BUTTON_PIN, INPUT_PULLUP);

  // SPI
  SPI.begin(18, 19, 23, 5);

  // RFID
  rfid.PCD_Init();

  delay(100);

  Serial.println();
  Serial.println("==============================");
  Serial.println("     RFID DOOR LOCK SYSTEM");
  Serial.println("==============================");
  Serial.println("Card 1 or Card 2 can unlock.");
  Serial.println("Button can also unlock.");
  Serial.println("Scan card or press button...");
}


void loop() {

  // =================================================
  // BUTTON CHECK
  // =================================================

  if (digitalRead(BUTTON_PIN) == LOW) {

    Serial.println("BUTTON PRESSED");
    Serial.println("DOOR UNLOCKED");

    unlockDoor();

    // Wait until button is released
    while (digitalRead(BUTTON_PIN) == LOW) {
      delay(20);
    }

    Serial.println("Button released.");
    Serial.println("Scan card or press button again...");

    delay(300);
    return;
  }


  // =================================================
  // RFID CHECK
  // =================================================

  if (!rfid.PICC_IsNewCardPresent()) {
    return;
  }

  if (!rfid.PICC_ReadCardSerial()) {
    return;
  }


  // Print UID
  Serial.print("Card UID: ");

  for (byte i = 0; i < rfid.uid.size; i++) {

    if (rfid.uid.uidByte[i] < 0x10) {
      Serial.print("0");
    }

    Serial.print(rfid.uid.uidByte[i], HEX);
    Serial.print(" ");
  }

  Serial.println();


  // =================================================
  // CHECK AUTHORIZED CARDS
  // =================================================

  if (checkCard(card1) || checkCard(card2)) {

    Serial.println("ACCESS GRANTED");

    unlockDoor();

  }
  else {

    Serial.println("ACCESS DENIED");
  }


  // Stop RFID communication
  rfid.PICC_HaltA();
  rfid.PCD_StopCrypto1();


  // Wait for card to be removed
  Serial.println("Remove card...");

  delay(500);

  Serial.println("Ready - scan again.");

}


// =================================================
// UNLOCK DOOR
// =================================================

void unlockDoor() {

  // Relay ON
  digitalWrite(RELAY_PIN, RELAY_ON);

  Serial.println("DOOR UNLOCKED");

  // Keep unlocked for 3 seconds
  delay(UNLOCK_TIME);

  // Relay OFF
  digitalWrite(RELAY_PIN, RELAY_OFF);

  Serial.println("DOOR LOCKED");
}


// =================================================
// CHECK RFID CARD
// =================================================

bool checkCard(byte cardUID[]) {

  // Make sure UID is 4 bytes
  if (rfid.uid.size != 4) {
    return false;
  }

  // Compare UID
  for (byte i = 0; i < 4; i++) {

    if (rfid.uid.uidByte[i] != cardUID[i]) {
      return false;
    }
  }

  return true;
}

Hardware Assembly

या प्रोजेक्टसाठी सर्व components एकत्र जोडून Hardware Assembly केली. सर्वप्रथम ESP32 ला मुख्य Controller म्हणून ठेवले. त्यानंतर RFID Reader ला ESP32 सोबत जोडले. Relay Module ला ESP32 शी Connect करून त्याला Solenoid Lock जोडला. 12V Adapter चा Supply Buck Converter च्या मदतीने योग्य Voltage मध्ये केला. आतून Door उघडण्यासाठी Push Button जोडला.

सर्व connections पूर्ण केल्यानंतर wires व्यवस्थित लावल्या आणि सर्व components तपासले

Final Testing

Hardware Assembly पूर्ण केल्यानंतर संपूर्ण System ची Final Testing केली. प्रथम Authorized RFID Card Scan केला. Card योग्य असल्यावर Door Unlock झाला आणि 3 सेकंदांनंतर पुन्हा Lock झाला. त्यानंतर Unauthorized Card वापरून पाहिला. Card योग्य नसल्यामुळे Door Unlock झाला नाही. तसेच Push Button दाबून आतून Door उघडून पाहिला.

या Testing मध्ये RFID Reader, ESP32, Relay, Solenoid Lock आणि Push Button सर्व योग्य प्रकारे काम करत असल्याचे दिसून आले. त्यामुळे Fab Lab Smart Door Lock System तयार होऊन व्यवस्थित काम करत आहे.

Blog Link

https://vadic.vigyanashram.blog/author/dnyaneshwar2026/