Built to order

RFID-Based Student Attendance and Door Access System with Arduino and LCD Logging

This project builds an RFID-based student attendance and door access system using an Arduino Uno, an RC522 reader module, a 20x4 LCD and a relay-driven solenoid door lock. When a student taps their RFID card, the Arduino reads the card UID, checks it against the enrolled list, unlocks the door for valid cards and logs every scan with a date-time stamp on a microSD card. A master-card enrollment mode adds new students without a computer, and a denied-access path with buzzer and red LED handles unknown cards. Suitable for B.E./B.Tech final-year projects in Electronics, Electronics &

Electronics / E&TC Arduino Uno · ATmega328PDS3231 RTC moduleArduino IDE · C/C++ firmwareRC522 RFID Reader · 13.56 MHz20x4 LCD · I2C Backpack5V Relay Module · SRD-05VDC12V Solenoid Door LockmicroSD Logging · CSV FormatHardware
RFID-Based Student Attendance and Door Access System with Arduino and LCD Logging — project thumbnail preview
More project photos (2)

The problem

Colleges still mark attendance with paper registers that get lost, miscounted and fudged, while lab and classroom doors rely on shared keys that cannot track who entered or when. RFID cards solve both halves of this problem with one tap: the same card that opens the door also creates the attendance record. This project builds that combined system as an Arduino-based prototype. An RC522 reader at 13.56 MHz reads each card's UID, the Arduino compares it with the enrolled-student list stored on the board, and for valid cards it energizes a relay that releases a 12V solenoid door lock while the 20x4 LCD shows the student status. Every scan — granted or denied — is logged to a CSV file on a microSD card with the date and time from a DS3231 real-time clock, so the attendance register is generated automatically. A master card puts the unit into enrollment mode to register new cards, and a duplicate-swipe debounce ignores accidental re-taps.

SYSTEM FLOW

8 components 7 connections

Live flow
Drag to explore
100%
userStudent

Taps the RFID card or keyfob on the reader to request access.

Follow the working sequence

How it works

  1. The RC522 reader energizes its 13.56 MHz field and waits for a 13.56 MHz RFID card or keyfob to enter its read range (typically up to about 5 cm).
  2. On a tap, the module reads the card's UID over SPI and hands it to the Arduino Uno, which looks the UID up in the enrolled-student list stored in memory.
  3. For a matching UID, the firmware drives the relay module, which switches the separate 12V supply to the solenoid door lock and retracts the bolt for the configured unlock window.
  4. The 20x4 LCD shows the scan result (SCANNED, GRANTED/DENIED, DOOR state), the green LED and buzzer confirm access, or the red LED and warning tone flag a denied card.
  5. Every event — card UID, date and time from the DS3231 RTC, granted or denied — is appended to a CSV attendance log on the microSD card and echoed on the serial monitor.
  6. In enrollment mode (entered by tapping the master card), tapped cards are added to the enrolled list; re-taps inside the debounce window are ignored to prevent duplicate rows.

Tech stack:

  • Arduino Uno (ATmega328P) with Arduino IDE (C/C++) firmware
  • RC522 RFID reader module (13.56 MHz, SPI)
  • 20x4 character LCD with I2C backpack
  • DS3231 real-time clock (I2C, battery-backed)
  • Single-channel 5V relay module (SRD-05VDC-SL-C)
  • 12V DC solenoid door lock
  • MicroSD card module (SPI) with CSV logging
  • Active buzzer and red/green status LEDs
Parameter Value
Controller Arduino Uno, ATmega328P @ 16 MHz
RFID reader RC522 module, 13.56 MHz, ISO14443A-compatible (MIFARE-classic cards/keyfobs), SPI
Read range Typically up to about 5 cm, tag- and placement-dependent (not a measured claim)
Card UID 4 / 7 / 10-byte UIDs supported
Display 20x4 character LCD, I2C backpack, blue backlight
Real-time clock DS3231, ±2 ppm (datasheet), CR2032 backup battery
Relay module 5V single channel, SRD-05VDC-SL-C; contacts 10A @ 250 VAC / 10A @ 30 VDC (datasheet)
Door lock 12V DC solenoid bolt lock, requires separate 12V ~1A supply
Log storage microSD card, CSV lines: date, time, UID, granted/denied
Unlock window Configurable in firmware (default 5 s)
Debounce window Configurable in firmware (default 3 s), ignores same-card re-taps
Indication Active buzzer 5V + red/green LEDs
Power Arduino on 5V (USB or adapter); solenoid on its own 12V adapter — never from the Arduino

Project features

  • [RC522 RFID card reading] Reads 13.56 MHz MIFARE-compatible cards and keyfobs over SPI and extracts each card's UID for identification.
  • [Enrolled-card door unlocking] On a UID match, the Arduino energizes a 5V relay for a configurable unlock window, releasing the 12V solenoid door lock.
  • [20x4 LCD status display] Shows idle prompts, scanned UID, granted/denied status, door state and enrollment-mode instructions on a backlit LCD.
  • [Master-card enrollment mode] A designated master card switches the unit into enrollment mode; tapping new cards adds their UIDs without touching code or a computer.
  • [SD-card attendance logging] Every scan is appended to a CSV file (date, time, UID, result) on a microSD card, with timestamps from a battery-backed DS3231 RTC.
  • [Granted/denied indication] Green LED and a short beep confirm access; unknown cards trigger the red LED, a warning tone and a denied message — the door stays locked.
  • [Duplicate-swipe debounce] Re-taps of the same card inside the configurable debounce window are ignored, so one person cannot create duplicate attendance rows.

What is included

  • Assembled working prototype: Arduino Uno, RC522 reader, 20x4 LCD, DS3231 RTC, relay module, solenoid door lock, buzzer, LEDs and sample RFID cards/keyfobs on breadboard
  • Complete Arduino firmware (C/C++): scan, enroll, debounce, relay control, LCD UI, CSV logging
  • Wiring diagram and pin-connection documentation
  • MicroSD CSV log format with a sample attendance file
  • Project report PDF (background, RFID theory, hardware design, methodology, results)
  • PPT presentation for final review
  • Viva Q&A preparation document (RFID, SPI/I2C, relay interfacing, RTC, access-control logic)
  • Downloadable project abstract PDF

Limitations & prerequisites

  • RC522 reads 13.56 MHz tags at only a few centimetres; metal surfaces or a fast wave-past can miss a tap — present the card steadily.
  • Standard MIFARE-classic UIDs can be cloned, so this is an academic access-control demonstrator, not a high-security door system.
  • The 12V solenoid draws its current from a separate adapter (~1A); it must never be powered from the Arduino's 5V pin or USB.
  • The relay switches the low-voltage lock only; never wire mains or heavy loads through it — contact rating is 10A at 250 VAC per datasheet.
  • Logging is local on the microSD card; there is no network, cloud dashboard or remote alerts in the base build.
  • The DS3231 must be time-set once during setup (procedure included); its CR2032 battery keeps time when power is off.
  • Breadboard prototype is a classroom/lab demonstrator, not a weatherproof or industrial door controller.

Frequently Asked Questions

Which RFID technology does it use?

The RC522 reader works at 13.56 MHz and reads ISO14443A-compatible cards and keyfobs (the common MIFARE-classic cards). Cards operating at 125 kHz (EM4100-style) are not compatible with this reader.

How does the master-card enrollment mode work?

Tapping the designated master card puts the unit into enrollment mode, shown on the LCD. Tapping a new card then adds its UID to the enrolled list; tapping the master card again exits the mode. No computer or code changes are needed.

What happens if the same card is tapped twice quickly?

The firmware's duplicate-swipe debounce ignores re-taps of the same UID inside the configured window (default 3 seconds), so one student cannot generate duplicate attendance rows by waving the card.

What exactly is logged, and where?

Each scan appends one CSV line — date, time, card UID and granted/denied result — to the microSD card, using the battery-backed DS3231 for timestamps. The log also streams on the serial monitor for live demos.

Does it need internet or a computer to run?

No. The system runs fully offline on the Arduino; the enrolled list lives on the board and logs go to the SD card. A computer is only used for the initial firmware upload and for reading the CSV file afterwards.

Is this project suitable for a final-year project?

Yes — for Electronics, Electronics & Telecommunication, Electrical and IoT & Embedded programs. It demonstrates RFID communication, SPI/I2C peripheral interfacing, relay power interfacing, real-time logging and a complete access-control workflow, all explainable in a viva. Suitable for B.E./B.Tech final-year projects in Electronics, Electronics & Telecommunication, Electrical and IoT & Embedded.

Components & software requirements
  • Arduino Uno (ATmega328P) with Arduino IDE (C/C++) firmware
  • RC522 RFID reader module (13.56 MHz, SPI)
  • 20x4 character LCD with I2C backpack
  • DS3231 real-time clock (I2C, battery-backed)
  • Single-channel 5V relay module (SRD-05VDC-SL-C)
  • 12V DC solenoid door lock
  • MicroSD card module (SPI) with CSV logging
  • Active buzzer and red/green status LEDs
Delivery information

Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.

Support terms

Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.

Download free synopsis (PDF)

Enter your name and email — the synopsis PDF downloads immediately. We may send occasional project updates; no spam, unsubscribe anytime.

Related guides

All guides

Best 10 Budget-Friendly Electronics Projects for Final Year

Budget is the constraint students mention most when enquiring about a final-year build. This guide lists 10 real, published electronics projects — 555 timer circuits, IR automation, AM/FM radio builds, op-amp trainer kits and genuine test instruments — chosen for short parts lists of common components. Each entry explains the problem it solves, how it works and why students pick it, with a comparison table, honest budgeting guidance and FAQs. Every build is made to order and priced by quotation.

Read guide

50+ Final Year Project Ideas for Electronics (ECE) Students

This guide lists 50+ final year project ideas for ECE (Electronics / E&TC) students, grouped by domain — IoT & embedded systems, robotics & automation, power & energy systems, communication & signal processing, plus mini-project picks — each with a one-line scope note covering the core hardware. Pick your idea based on four realities: a component budget (typical prototypes cost ₹2,000–8,000), what lab equipment you can access, a 6–8 month timeline, and whether your team can handle soldering and basic PCB work.

Read guide

SIM800L Not Connecting? The Step-by-Step Fix for Blinking, No Network and AT Errors

A SIM800L that blinks but never joins the network is almost always a power problem: the module needs 3.4-4.4 V and up to 2 A in transmit bursts, which no Arduino 5 V pin or weak adapter can supply. This guide walks the fix order that works - read the blink pattern, fix the power supply first, check the SIM and antenna, then run the AT command sequence (AT, ATE0, AT+CPIN?, AT+CSQ, AT+CREG?) and decode every error - with the exact wiring for Arduino and ESP32.

Read guide
Get a quotation