Project Hub

🔐
RFID Door Lock
Unlock a servo lock with an RFID card.
advanced90 min
Components Needed
Arduino UNO
RC522 RFID module
RFID card/tag
SG90 servo
Green & Red LEDs
Circuit Diagram & Wiring
Add your circuit diagram image here.
- RC522 SDA→10, SCK→13, MOSI→11, MISO→12, RST→9, 3.3V & GND.
- Servo → pin 6.
- LEDs → pins 4 (green) & 5 (red).
Arduino Sketch (.ino)
rfid-lock.ino
<span style="color:#f97583">#includespan> <SPI.h>
<span style="color:#f97583">#includespan> <MFRC522.h>
<span style="color:#f97583">#includespan> <Servo.h>
MFRC522 rfid(<span style="color:#79b8ff">10span>, <span style="color:#79b8ff">9span>);
Servo lock;
String allowed = <span style="color:<span style="color:#f97583">#9ecbffspan>">"A1B2C3D4"span>; <span style="color:<span style="color:#f97583">#6a737dspan>;font-style:italic">// your card UID in hexspan>
void setup() {
Serial.begin(<span style="color:#79b8ff">9600span>);
SPI.begin();
rfid.PCD_Init();
lock.attach(<span style="color:#79b8ff">6span>); lock.write(<span style="color:#79b8ff">0span>);
pinMode(<span style="color:#79b8ff">4span>, OUTPUT); pinMode(<span style="color:#79b8ff">5span>, OUTPUT);
}
void loop() {
if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) return;
String uid = <span style="color:<span style="color:#f97583">#9ecbffspan>">""span>;
for (byte i = <span style="color:#79b8ff">0span>; i < rfid.uid.size; i++) {
if (rfid.uid.uidByte[i] < 0x10) uid += <span style="color:<span style="color:#f97583">#9ecbffspan>">"<span style="color:#79b8ff">0span>"span>;
uid += String(rfid.uid.uidByte[i], HEX);
}
uid.toUpperCase();
Serial.println(uid);
if (uid == allowed) {
digitalWrite(<span style="color:#79b8ff">4span>, HIGH);
lock.write(<span style="color:#79b8ff">90span>); delay(<span style="color:#79b8ff">3000span>); lock.write(<span style="color:#79b8ff">0span>);
digitalWrite(<span style="color:#79b8ff">4span>, LOW);
} else {
digitalWrite(<span style="color:#79b8ff">5span>, HIGH); delay(<span style="color:#79b8ff">1000span>); digitalWrite(<span style="color:#79b8ff">5span>, LOW);
}
rfid.PICC_HaltA();
}