Attendance System Using Raspberry Pi and NFC Tag Reader

Logo Image: 

In this advanced project, learn how to create a basic attendance logging system for a small business or classroom using a Raspberry Pi micro-computer and an NFC (Near Field Communication) tag reader.

This project tutorial will teach you how to create a basic attendance system which could be used in a small business or a classroom, with functions including logging in, logging out, tracking the start and end of break times, and deleting mistaken actions.

The main active components of the project are a Raspberry Pi, which is a single-board micro-computer, and an NFC tag reader. NFC (Near Field Communication) technology allows data to be read, written and transmitted over short distances using wireless communication.

In this project, NFC tags are used to log in to the system. All the log-in and log-out data can be displayed using a database program, and exported in order to back it up if necessary.

This is a relatively complex project that is most suitable for high school students under supervision and guidance, or for competent hobbyists. It is also a practical and useful project for teachers, small business managers, and anyone who needs a simple attendance system in their day-to-day work.

This project was created by Jakub Dvorak, a user of All project details and source code are freely available, and credited to Jakub Dvorak.

Other Parts

1: 16x2 LCD Display
This is a small LCD display screen (16 x 2 cm). This type of display screen is commonly used in fax machines, photocopiers and other devices which require a simple display. The creator of this project recommends using a Hitachi HD44780, for its compatibility with the Raspberry Pi.

Reg. Qty: 1
2: 13.56MHz RFID/NFC reader and Mifare NFC Tags
This reader can read both NFC and RFID (Radio Frequency IDentification) tags. RFID is an older wireless communication technology, from which NFC evolved. The creator of this project recommends using a Mifare RC522 read/write module along with Mifare tags, which allow users to log in and out of the attendance system. This featured product includes the read/write module and one tag; it is possible buy further tags separately as needed....

Reg. Qty: 1
3: USB Numeric Keypad
The numeric keypad is used to input information to the system. The project creator recommends using a keypad with high buttons, due to the thickness of the box containing the system. This numeric keypad from V7 is an example of the type of keypad you will need.

Reg. Qty: 1
4: 3mm LED Holder
This holder keeps a 3mm LED (Light Emitting Diode) in place in the display, ensuring that it doesn't become detached. The LED and LED diode holder are optional components of this project.

Reg. Qty:
5: 3mm Red LED and LED Resistor
The LED, which is an optional part of the project, is not needed for the system to be operational. It Is useful, however, as it indicates when operations have been carried out (e.g. logging in). An LED resistor is necessary to regulate the current. These assorted LEDs and resistors from GadgetMe Brands are suitable for this project.

Reg. Qty:
6: Active 3 Volt Buzzer
The buzzer is another optional part of the project, but it is useful in that it provides another operational indicator (it makes a noise when someone logs in or out, for instance). This 3v buzzer from Projects Unlimited is the type of buzzer needed for this project.

Reg. Qty:
7: Small Breadboard with Assorted Jumper Wires
A breadboard is a construction base for electronics prototyping. It is reusable, as it does not require soldering in wires. This mini breadboard with assorted jumper wires from JameCo Electronics is the type of breadboard required for this project.

Reg. Qty:
8: ABS Plastic Box
This plastic project box provides a protective casing for the project, and conceals the electronic components.

Reg. Qty:
9: Assorted screws and/or glue gun
These are used for attaching parts of the project together, and for attaching wires to the breadboard.

Reg. Qty:
10: 10k Potentiometer
A potentiometer allows you to control the resistance of the current in the system. In this project, the potentiometer is used to control the contrast of the display.

Reg. Qty:
Instructables Project by Jakub Dvorak: Attendance System Using Raspberry Pi and NFC Tag Reader
Here, you will find instructions for the original attendance system project completed by Jakub Dvorak, including links to all necessary backup instructions, software downloads and code.
Adafruit NFC/RFID on Raspberry Pi
This beginner's tutorial explains how to connect an NFC/RFID Shield to a Raspberry Pi, giving it full RFID reading and NFC read/write capabilities.
NFC Card Controlled Remote Car
This fun intermediate-to-advanced project from Instructables uses NFC technology in conjunction with an Arduino board to create a miniature car controlled by a set of NFC cards.
Tangible Music Project: RFID Card Controlled iPod Touch
This is a very advanced project, which uses an Arduino and an RFID reader to use RFID cards to cue up and play individual music tracks on an iPod.
How do I connect each component together?
This diagram file, which has a link on the original project page, explains how to wire each component of the project together.
What's the difference between RFID and NFC?
This article from How Stuff Works explains the difference between RFID and NFC technology. Since NFC is an extension of RFID, NFC readers are also automatically RFID readers. For this project, it is suggested that you use a Mifare RC522 read/write module.
What kind of operating system do I need on my Raspberry Pi for this project?
For this project, it is recommended that you install Raspbian on your Raspberry Pi. This is the link to download Raspbian, where you will also find instructions for installation.
What does 'SPI' refer to, and how do I use it?
SPI stands for Serial Peripheral Interface. It is a way in which micro-controllers (such as Arduino or Raspberry Pi) can communicate with peripheral devices. The project provides links to the SPI-Py software and instructions for installing it within the instruction text. This article explains what SPI is and how it works.
How do I create a table in MySQL Database?
The creator of this project refers to creating a table in MySQL Database. Since this is an advanced project, he assumes that the reader knows how to do this. This is a how-to guide for those who do not know how to create tables in MySQL, which assumes some familiarity with the program.
NFC Porter
This project taps into technology that is currently extremely advanced, making it accessible to ordinary users. This link is to a commercial version of a very similar system, which uses NFC technology in cellphones for locking, unlocking and attendance. In this project, one can see how such commercial technology can be within reach for hobbyists an...
Official Raspberry Pi site
This is the official website of the Raspberry Pi Foundation, where you can find out about their mission, browse the FAQs, discover how to get yourself a Pi, and explore their forums dedicated to all things Pi.
Official Mifare Site
This is the official site of Mifare, the manufacturers of the RFID/NFC reader and NFC tags that are suitable for this project. This site gives a good overview of the many applications of NFC technology.
Maker Faire New York 2013 Electronics Stage: Arduino NFC
Don Coleman's detailed presentation at the 2013 Maker Faire explains what NFC is, and goes through the capabilities of two different NFC Shields (from Adafruit and SeeeddStudio), focusing on how they can be incorporated into Arduino projects.
Raspberry Pi Discussion: RFID Reader Recommendations
The Raspberry Pi forums are a good source of advice and recommendations about using add-ons such as RFID/NFC technology with a Raspberry Pi. This thread discusses different types of RFID reader to use with the Pi.
TechErudio Tutorial: Installing an OS to your SD Card
In this video tutorial from TechErudio, you can find out how to download an operating system for the Raspberry Pi, and install it using an SD Card. This project recommends downloading and installing the Raspbian operating system.
Beginning NFC: Near Field Communication with Arduino, Android, and PhoneGap. By Tom Igoe, Don Coleman, and Brian Jepson.
This E-book explains all you need to know about NFC and how to connect it with other systems and devices. It is particularly applicable to those who wish to incorporate NFC technology into devices that use micro-controllers, such as Arduino boards.