Summary
Electronic access control systems are becoming increasingly common in homes, offices, laboratories, and educational institutions. While commercial smart locks can be expensive, the underlying technology can be implemented using readily available electronics components and a microcontroller. In this project, readers will build an RFID-based smart door lock using an Arduino Uno, an RC522 RFID reader, and a servo motor. When an authorized RFID card is presented, the Arduino verifies the card's unique ID and unlocks the door for a few seconds before automatically locking it again.

What’s this project about?
This project introduces several important embedded systems concepts, including RFID communication, servo motor control, authentication logic, and hardware-software integration. For students exploring a smart door lock Arduino India project, it provides a practical introduction to access-control systems used in real-world applications.
Components Required
- Arduino Uno – 1
- RC522 RFID Reader Module – 1
- RFID Card or RFID Key Tag – 1 or more
- SG90 Servo Motor – 1
- Green LED – 1
- Red LED – 1
- 220Ω Resistors – 2
- Breadboard – 1
- Jumper Wires – As required
- 5V Power Supply or USB Cable – 1

System Overview
The RFID reader continuously scans for nearby RFID tags.
When a card is presented:
- The RC522 reads the card's UID (Unique Identification Number).
- The Arduino compares the UID with a list of authorized users.
If the UID matches:
- Green LED turns ON.
- Servo rotates to unlock the door.
- Door remains unlocked for 5 seconds.
- Servo returns to the locked position.
If the UID does not match:
- Red LED turns ON.
- Access remains denied.
- Circuit Connections
- RC522 RFID Reader to Arduino
- RC522 Pin : Arduino Pin
- SDA : D10
- SCK : D13
- MOSI : D11
- MISO : D12
- RST : D9
- GND : GND
- 3.3V : 3.3V
- IRQ : Not Connected
Important: The RC522 operates at 3.3V. Connecting it to 5V may damage the module.
Servo Motor Connections
Servo Wire : Arduino Connection
Red Wire : 5V
Brown/Black Wire : GND
Orange/Yellow Wire : D6
Green LED Connections
Anode (+) : D4 through 220Ω resistor
Cathode (-) : GND
Red LED Connections
Anode (+) : D5 through 220Ω resistor
Cathode (-) : GND
Step 1: Assemble the Hardware
Begin by placing the Arduino Uno and breadboard on a stable work surface.
Mount the RC522 RFID module where RFID cards can be conveniently scanned. If the project is intended for permanent installation, the RFID reader should be positioned close to the door handle or lock assembly.
Connect the RC522 module to the Arduino according to the wiring details provided above.
Next, mount the SG90 servo motor securely. The servo horn should be attached in a way that allows it to physically engage and disengage the locking mechanism.
Connect the servo signal wire to Arduino pin D6 and connect the power wires to 5V and GND.
Finally, connect the status LEDs and verify that all grounds are connected together.
Before powering the circuit, inspect every connection carefully.
Step 2: Install Required Libraries
Open the Arduino IDE.
Navigate to:
Sketch → Include Library → Manage Libraries
Install the following libraries:
MFRC522 by Miguel Balboa
Servo Library (usually pre-installed)
The MFRC522 library enables communication between the Arduino and RFID reader, while the Servo library controls the lock actuator.
After installation, restart the Arduino IDE.
Step 3: Read the RFID Card UID
Before creating the access-control logic, the UID of the RFID card must be identified.
Open:
- File → Examples → MFRC522 → DumpInfo
- Upload the example sketch to the Arduino.
- Open the Serial Monitor and set the baud rate to 115200.
- Place an RFID card near the reader.
- The Serial Monitor will display a UID similar to:
- UID: A3 4F 2B 11
- Write down this UID carefully.
- This UID will later be used as the authorized access credential.

Step 4: Configure the Authorized Card
Inside the smart lock code, locate the section where authorized users are stored.
For example:
- Authorized UID = A3 4F 2B 11
- Replace the example UID with the UID obtained from Step 3.
- Multiple cards can be supported by storing multiple authorized UIDs within the program.
This allows several users to access the lock without modifying the hardware.
Step 5: Test the Servo Motor
Before integrating the lock logic, verify that the servo motor operates correctly.
Upload a simple servo test sketch.
Rotate the servo between two positions:
- Locked Position = 0°
- Unlocked Position = 90°
Observe the movement.
Depending on the mechanical arrangement of the lock, these values may need adjustment.
For some designs:
- Locked Position = 20°
- Unlocked Position = 110°
may work better.
The objective is to ensure the servo moves the locking mechanism reliably every time.
Step 6: Upload the Main Smart Lock Program
Connect the Arduino to the computer.
Verify the following settings:
- Board: Arduino Uno
- Correct COM Port Selected
- Click Upload.
- After successful upload, open the Serial Monitor.
The system should display:
"Scan RFID Card"
This indicates that the Arduino is actively monitoring the RFID reader.
Step 7: Test Authorized Access
Scan the authorized RFID card.
The following sequence should occur:
- Green LED turns ON.
- Servo rotates to the unlock position.
- Serial Monitor displays "Access Granted".
- Servo remains in the unlock position for approximately 5 seconds.
- Servo returns to the locked position.
- Green LED turns OFF.
Repeat the test several times to confirm consistent operation.
Reliable operation during repeated scans is important before installing the system on an actual door.
Step 8: Test Unauthorized Access
Now scan an RFID card that has not been registered.
The system should respond as follows:
Red LED turns ON.
Servo remains stationary.
Serial Monitor displays "Access Denied".
Door remains locked.
This test verifies that the authentication logic is functioning correctly.
Step 9: Install the Lock Mechanism
Once the electronics have been validated, connect the servo to the physical lock assembly.
The exact mounting method depends on the door design.
Common approaches include:
Rotating a latch directly.
Pulling a locking pin.
Operating a sliding bolt.
After installation, perform at least twenty lock-unlock cycles to verify mechanical reliability.
Any binding, slipping, or missed movements should be corrected before regular use.
Troubleshooting
RFID Reader Not Detecting Cards
Verify:
- SDA connected to D10
- RST connected to D9
- Reader powered from 3.3V
- MFRC522 library installed correctly
- Most RFID communication problems are caused by wiring errors.
- Servo Does Not Move
Check:
- Signal wire connected to D6
- Servo receiving 5V power
- Common ground shared with Arduino
- Servo not mechanically jammed
- Servo Jitters Constantly
Possible causes include:
- Weak power supply
- Loose wiring
- Excessive load on the servo
- Using an external regulated 5V supply often resolves this issue.
- Access Always Denied
Verify:
- UID copied correctly
- RFID card scanned successfully
- UID stored properly in the code
- Printing the scanned UID to the Serial Monitor can help identify mismatches.
Final Thoughts
This RFID-based smart door lock demonstrates how authentication systems can be implemented using relatively simple electronics hardware. By combining RFID communication, servo motor control, and embedded programming, the project creates a functional access-control system similar to those used in offices, hostels, and smart homes.
For students working on a smart door lock Arduino India project, this build provides practical exposure to security systems, embedded programming, actuator control, and hardware integration. More importantly, it establishes a strong foundation for future IoT, automation, and smart-home projects.





