RFID Access Control System

RFID technology is used for a wide variety of applications including access control, package identification, warehouse stock control, point of sale scanning, retail anti-theft systems, toll-road passes, surgical instrument inventory, and even identifying individual sheets of paper placed on a desk. RFID tags are embedded in name badges, shipping labels, library books, product tags and boxes, installed in aircraft, hidden inside car keys, and implanted under the skin of animals or even people. RFID systems work on a wide range of frequencies, have a variety of modulation and encoding schemes, and vary from low-power passive devices with range of only a few millimetres to active systems that work for hundreds of kilometers.

RFID tags are produced in a wide variety of physical form factors to suit different deployment requirements. The most commonly seen form factor is a flat plastic card the same size as a credit card, often used as an access control pass to gain access to office buildings or other secure areas. The most common form by sheer number produced, even though you may not notice them, is RFID-enabled stickers that are commonly placed on boxes, packages, and products. Key fob tags are also quite common, designed to be attached to a keyring so they're always handy for operating access control systems.

This project uses a pre-built RFID reader module to interrogate commonly-available passive tags, looks up the tag ID in an internal database, and release a lock using an electric strike plate if the tag is authorised.

Parts Required

Qty Description
General Parts
1 Arduino Duemilanove, Arduino Pro, Seeeduino, or equivalent
1 Prototyping shield
1 4-pin PCB-mount header with 90 degree bend
1 4-pin line-mount header socket
2 2-pin PCB-mount screw terminals
1 12V electric striker plate
1 12V single-pole, single-throw (SPST) or single-pole, double-throw (SPDT) PCB-mount relay
1 LM7805 voltage regulator
2 100nF capacitors (marked "104")
1 22uF electrolytic capacitor
2 1N4001 or equivalent power diodes
2 680R resistors
1%: blue-gray-black-black-brown
5%: blue-gray-brown-gold
1 4K7 resistor
1%: yellow-violet-brown-brown
5%: yellow-violet-red-gold
1 100K resistor
1%: brown-black-black-orange-brown
5%: brown-black-yellow-gold
1 BC547, BC548, 2N222, or equivalent NPN transistor
1 Red LED
1 Green LED
1 12V 1A power supply or plugpack
20cm Ribbon cable
1 125kHz RFID tag
1 Small PVC box
For ID-12 reader
1 ID-12 RFID reader module (www.id-solutions.com)
1 ID-12 breakout board or custom PCB, as explained in the text
For RDM630 reader
1 RDM630 125kHz RFID module (UART version) from Seeed Studio
For optional manual-release exit button
1 Single-pole, single-throw (SPST) momentary pushbutton
1 2-pin PCB-mount screw terminal
2m Lightweight two-core cable, such as figure-8 speaker wire

RFID Access Control System Schematic

Note: The original version of the main schematic had the LED orientations reversed as per the errata note below. The "v1.1" revisions of the schematic provided here have the correct orientation.

Main schematic as JPG: rfid-access-control-main-schematic-v1.1.jpg

ID-12 schematic as JPG: rfid-access-control-id12-schematic.jpg

RDM630 schematic as JPG: rfid-access-control-rdm630-schematic.jpg

Main schematic as PDF: rfid-access-control-main-schematic-v1.1.pdf

ID-12 schematic as PDF: rfid-access-control-id12-schematic.pdf

RDM630 schematic as PDF: rfid-access-control-rdm630-schematic.pdf

Main schematic as SCH: rfid-access-control-main-schematic-v1.1.sch

ID-12 schematic as SCH: rfid-access-control-id12-schematic.sch

RDM630 schematic as SCH: rfid-access-control-rdm630-schematic.sch

Source Code

RFIDAccessControlSingle sketch: github.com/practicalarduino/RFIDAccessControlSingle

Parts Suppliers

Freetronics sell pre-built and kit versions of this project: Freetronics RFID Lock Shield.


Wikipedia article on RFID: en.wikipedia.org/wiki/Radio-frequency_identification

ID-12 datasheet (PDF): ID-12 datasheet

RDM630 datasheet (PDF): RDM630 datasheet


Found a problem? Please let us know.

The status LEDs are represented backwards in the schematic (Figure 14-4) in the printed edition. The schematics above show the correct orientation.

The parts list in the printed edition is missing the 12V single-pole, single-throw (SPST) relay. It is included in the parts list above.


Have you built this project or something inspired by it? Please let us know and perhaps we'll put a picture of it here.

Greg Eigsti has built an RFID garage door opener that works in a very similar way to this project, but uses a PIC-based controller rather than an Arduino.

It's definitely worth checking out for ideas on a practical application for this sort of system: Greg's garage door opener.