Tap-In Attendance: A Teacher-Controlled, Apple Wallet & RFID Based Classroom Attendance System
A dual-mode attendance system where a teacher's iPhone starts and ends the session, and students simply tap an RFID card to be marked present — built with an Arduino UNO R4 WiFi, a REYAX RYRR30D NFC/RFID reader, an OLED display, and logged live to Google Sheets.
Overview
Classroom attendance is still, in most schools, either a shouted roll call or a sheet of paper passed down the row — slow, error-prone, and impossible to search later. This project replaces that with a small tap-based terminal: the teacher taps their iPhone (using an Apple Wallet pass) to open an attendance session, students tap their RFID cards one by one to check in, and the teacher taps their iPhone again to close the session. Every valid and invalid tap is shown instantly on an OLED display and logged — with a name, UID, status, and timestamp — directly into a Google Sheet, thanks to the Arduino UNO R4 WiFi's built-in WiFi.
At the core of the system is the REYAX RYRR30D, an NFC/RFID module officially certified to read Apple Wallet VAS (Value Added Services) passes as well as standard ISO14443A RFID cards — meaning a single reader handles both the teacher's phone-based authentication and the students' physical ID cards. The whole thing is housed in a JUSTWAY enclosure, making it a clean, mountable classroom fixture rather than a bundle of breadboard wires.
What It Does
- On power-up, the OLED shows a "Welcome To School" splash, connects to WiFi, and settles into a "Waiting For Teacher" idle state.
- The teacher taps their iPhone (carrying an authorized Apple Wallet pass) near the RYRR30D.
- The system verifies the pass matches the trusted teacher credential, shows a tick animation, then displays "Remove Phone" for a short settle period — this exists specifically to let the reader's leftover signals from that tap clear out (more on this below).
- The display then switches to "Tap Student Cards Now" — the attendance session is live.
Each student taps their RFID card:
- Valid, registered card → tick animation, marked "Present", logged to Google Sheets with name + UID + timestamp.
- Unregistered card → cross animation, logged as "Invalid".
- Each student taps their RFID card:Valid, registered card → tick animation, marked "Present", logged to Google Sheets with name + UID + timestamp.Unregistered card → cross animation, logged as "Invalid".
- When the teacher taps their iPhone again, the session ends: the OLED shows a "DONE" screen (inverted, full white background with black text), then returns to "Waiting For Teacher" for the next class period.
Every event — teacher taps, student taps, valid/invalid results, WiFi status, and sheet upload confirmations — is also printed to the Serial Monitor in real time, which made debugging (and will make future maintenance) far easier.
Why RYRR30D ?
This project actually needed the RYRR30D to do two different jobs, and it handles both natively:
- Apple Wallet VAS pass decoding for the teacher's phone-based authentication — no student-facing app, no PIN, just a tap.
- Standard ISO14443A RFID card reading for the students — ordinary, cheap RFID cards work directly, no special "smart" cards needed.
- All of this comes over a single UART interface (115200 baud, 8N1) using simple AT commands, so one module and one serial connection covers both authentication paths.
- Onboard LED and buzzer feedback gave an extra, code-independent confirmation signal during development and testing.
Without this dual capability, this project would have needed two separate reader modules — one for phone-based VAS passes and one for RFID — adding cost, wiring, and firmware complexity for no real benefit.
Learn More About the RYRR30D
For anyone who wants to understand exactly how the module decodes Apple Wallet passes, what AT commands are available, or how to issue your own Apple Merchant ID/Key pair, REYAX's official documentation is the best...
Read more »
Rohan Barnwal