Skip to Content

RFID door lock


An RFID door lock using Arduino is a sophisticated security system that regulates access to a door through RFID technology. By combining an RFID reader module with an Arduino microcontroller, this project enables the authentication of RFID tags or cards assigned to authorized users. When a user presents their RFID tag or card to the reader, the Arduino processes the unique identification code transmitted by the RFID reader. If the code matches an authorized user in the system's database, the Arduino activates a mechanism to unlock the door, typically through a servo motor controlling the door latch. Moreover, the Arduino can be programmed to record access attempts, issue alerts for unauthorized entries, or incorporate additional security measures. This project offers a reliable and flexible solution for access control in various settings, including homes, offices, and facilities requiring restricted entry.


 Circuit Diagram :-



Code :-


// By Arduino Techy

​//

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

 
#define SS_PIN 10
#define RST_PIN 9

#define SERVO_PIN 3
Servo myservo;

#define ACCESS_DELAY 2000
#define DENIED_DELAY 1000
MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.
 
void setup() 
{
  Serial.begin(9600);   // Initiate a serial communication
  SPI.begin();          // Initiate  SPI bus
  mfrc522.PCD_Init();   // Initiate MFRC522

  myservo.attach(SERVO_PIN);
  myservo.write( 70 );
  delay(7500);
  myservo.write( 0 );
  Serial.println("Put your card to the reader...");
  Serial.println();

}
void loop() 
{
  // Look for new cards
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  {
    return;
  }
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  {
    return;
  }
  //Show UID on serial monitor
  Serial.print("UID tag :");
  String content= "";
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++) 
  {
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], HEX);
     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  Serial.println();
  Serial.print("Message : ");
  content.toUpperCase();
  if (content.substring(1) == "69 C8 E2 2A") //change here the UID of the card
  {
    Serial.println("Authorized access");
    Serial.println();
   myservo.write( 70 );
 delay(7500);
  myservo.write( 0 );

  }
 
 else   {
    Serial.println(" Access denied");
 

    delay(DENIED_DELAY);

 
  }
}





Components :-

brown Around computer motherboard

Arduino Uno

 Buying Link - 

https://amzn.to/3w24QWL

RFID Module

 Buying Link - 

https://amzn.to/3UkOekW

Servo motor 

 Buying Link - 

https://amzn.to/3Qnl7fA

Jumper Wires

 Buying Link - 

https://amzn.to/3UwFaL7

Distance Measuring Device