RFID-Based Payment & Access System with Arduino banner

RFID-Based Payment & Access System with Arduino

4 devlogs
14h 23m 11s

Updated Project: This project is an Arduino-based RFID payment and access control system.
Users can scan an RFID card to check balance, approve access, and deduct credits.
The system uses an RFID reader, Buzzer, I2C LCD.

Updated Part: The "Ch…

Updated Project: This project is an Arduino-based RFID payment and access control system.
Users can scan an RFID card to check balance, approve access, and deduct credits.
The system uses an RFID reader, Buzzer, I2C LCD.

Updated Part: The “Check Balance” Mode Key Changed By 0 To “C” because of a writing bug

I built both the hardware circut and the software logic.
Next steps include improving security and expanding the system for real-world use cases.

Important Note: I downloaded Hackatime after i finished the project to i got no time :)

This project uses AI

I used AI (ChatGpt) For:

RFID Writing Functions.
Translating The Words From Turkish To English.

Demo Repository

Loading README...

sarpersirinbk

Summary of the Update

The RFID reading and writing system was enhanced in a number of ways in this update to improve stability and lower security risks.

Upgrades

The majority of RFID reading and writing errors have been fixed.
With fewer failed read and write operations, the system now manages card communication and authentication with greater reliability.

Vulnerabilities in RFID write security were decreased.
To avoid insecure card writes or accidental data corruption, more checks and safer write handling were put in place.

These enhancements increase the overall dependability of balance operations and make the PassThru system more stable during card transactions.

Attachment
0
sarpersirinbk

In this update, the emphasis was on enhancing stability and security aspects in both read and write functions.
The possible loopholes in the write function were identified and rectified by incorporating more robust validation and control checks before the actual write process.

In the read function, the typical sources of errors like invalid, incomplete, or unexpected data were dealt with in a more secure manner, thus minimizing the possibilities of system crashes and undefined behavior.

Moreover, the Serial communication error handling was enhanced by implementing checks for data availability before actual readings, thus avoiding the possibilities of system instability due to empty or invalid readings.

Attachment
0
sarpersirinbk

I enhanced the PassThru Payment System’s RFID read/write capabilities today. To ensure dependability, I added automatic retries for unsuccessful writes, verified the balance after each write, and verified the card’s presence before writing. System responsiveness was enhanced by non-blocking delays, and balance updates now nearly always succeed. The system became more reliable, easier to use, and prepared for quick succession of transactions as a result of these modifications.

Attachment
0
sarpersirinbk

Shipped this project!

Inspired by actual transit card systems, I developed PassThru V1, an Arduino-based RFID balance loading and access control system.

Writing and debugging the RFID read/write logic was the most difficult aspect, particularly when it came to reliably handling balance updates on the card. When my keypad broke, I also had to redesign the control flow. I learned a lot about flexible input handling and state management by adapting the entire system to operate through the Serial Monitor.

I’m pleased to report that the system functions flawlessly on actual hardware, loading balance, checking balance, and deducting balance on access. My understanding of RFID, embedded state machines, and creating systems that can adapt when things don’t go as planned has improved as a result of this project.

sarpersirinbk

The initial idea for this project originated from systems I encounter every day.
I began by looking into how public transportation card systems work, then broadened my curiosity to include the RFID-controlled elevator system I use at my tutoring center. I did not attempt to exploit or misuse the systems, but instead wanted to try and comprehend the logic behind the systems by making my own.

The main hardware component that the project used was the MFRC522, which, in my opinion, was also the most challenging part of the project. The main challenge for me was successfully implementing the write balance feature. It required multiple attempts to successfully write data onto an RFID card.

The latest version of this project is a fully functioning balance system based on RFID. It allows users to top up their balance, check their balance, and use their card for access, with a set fare charged automatically. There is also feedback with an LCD screen and a buzzer, and the system can be controlled using the Serial Monitor instead of a keypad.

Hence, for future improvements, I would like to incorporate a double verification system using the RFID card block and Arduino EEPROM respectively for better reliability. Then, I would like to shift towards a server system using a Raspberry Pi with internet connectivity.

I also want to make a web dashboard that can display daily reports, like total loaded balance and total deducted balance. Finally, I will divide the system into two different devices: one will be only for balance loading (using RFID reader only, like cashier-like), and another will be for access control (using LCD and fare deduction, like turnstile-like). And as a final step, I will create a desktop application using C#. This application will use Serial communication, allowing me to use GUI instead of Serial Monitor for balance loading, reading, and inputting numbers.

0