Online RFID Attendance System (Without Ethernet)




Introduction: Online RFID Attendance System (Without Ethernet)

This is a unique project in the world of Arduino for marking Online Attendancewithout using Ethernet and GSM modules. We have developed this unique project to automate the attendance system for offices, schools and universities etc. using RFID RC522 Module and Arduino. For Web Support and API, you need PHP and MySQL. This project costs less than $10. The purpose of this project is to remove tedious process of marking attendance manually.We've visited so many sites but no one has the solution for marking online attendance without using Ethernet or GSM Module, so we decided to develop our system without using these components which reduces our project costing.

Step 1: Hardware Required

  • Arduino UNO
  • RFID RC522 with RFID TAGS
  • Jumper wires (generic)

Step 2: Making the Necessary Connections As Shown in the Circuit Diagram

Step 1. Attach the Arduino UNO to the PC using a USB cable.

Step 2. Attach the RFID Reader to the Arduino UNO as shown in the image of Circuit Diagram.

Step 3: Installing XAMPP and Setting Up Web Interface

For web interface, we require PHP installed in our system so firstly we need to install apache and MySQL in our system for this install XAMPP using link (according to your OS) , may be you are not good with web programming so there is no need to worry about.

Please follow steps in order to install XAMPP for PHP given at below link

After installing XAMPP, please start the xampp apache/mysql services from XAMPP control panel as described in tutorial of wikihow. How to test xampp is working fine?

Open your browser and type: http://localhost

You will see above screen if everything is fine otherwise please repeat above steps.

Step 4: Copy and Paste the Attendance Zip Folder

Now copy and paste the attendance zip folder in htdocs


Copied folder will be used in PROCESSING code to call API through path specified and to show attendance data online.

Step 5: Creating DATABASE

  • Now open the MySQL using browser: http://localhost/phpmyadmin
  • Copy MySQL query from txt file "mysql_query.txt" and Pasteto create database and tables.

Step 6: Run Web Application

Now we're ready to run our web application :

http://localhost/(your folder name)/

Here you'll see image given below if everything is going fine:



Step 7: Adding Users in Our DB

1.Before login please copy and paste Arduino code.

2. Now run and upload Arduino code to device.

3. Please copy and paste the markattendance program into processing window(to mark attendance)

4. Please copy and paste the add_user program into processing window by creating new file in processing software because we have different module to add users.

5. Open processing and run add_user program . It will show you a message to approximate your card. Please approximate your card to RFID after this you'll see the UID Code and a user name box .Please enter name of the user related to this UID (RFID TAG) to store information to web and then press add user button.


You've Added a new in user.

Step 8: Result :Run Our PHP Code

After Login as we've logged in before :

So this is overall information about our project please grab as you want.

Please shout in comment box if you have any query.



    • Tiny Home Contest

      Tiny Home Contest
    • Creative Misuse Contest

      Creative Misuse Contest
    • Fix It! Contest

      Fix It! Contest

    21 Discussions

    in step seven number 3, i cant so understand what the sentence say or tell about, like processing window

    2 replies

    You can understand about processing software by going to

    Basically its a software which is giving ui to our software and communicating with arduino to get data from it and calling api which is storing attendance data on localhost.


    Question 26 days ago

    cant login


    Thanks Sir for sharing this project. But i want to ask you, why my tbl_attendance still empty when i click the Add User button? When i click the add user button, the data was inserted to tbl_users and there is no timestamp. I'm sorry for my bad english but hopefully you're understand with it, Greetings from Indonesia :)

    I need fast answer to finish this project :D

    Notice: Trying to get property of non-object in C:\xampp\htdocs\attendanceSystem\connection.class.php on line 23

    1 more answer

    Its due to a missing table in this tutorial. find the screenshot below


    sir i am having problem with loggin in
    i dont know how to do it.
    when i clickked the given link it gave error object not found.

    similarly i could not understand when you said open add user file in processing .
    i mean they are three .pde files in it then how to run add user program???
    please reply soon i have a deadline

    1 reply

    tbl_users is missing in the mysql query. Find the database table below I have figured out that works fine in login issue.

    You need to insert a record for admin user.


    Question 2 months ago

    where to paste the mysql query???? can you show the snapshot of the window.

    there is problem in marking attendance plz let me know????

    everything else is working fine

    how can i open the add_user and markattendance?


    Question 5 months ago

    Notice: Trying to get property of non-object in C:\xampp\htdocs\attendanceSystem\connection.class.php on line 23
    what do i do here? and i cant login with anything


    Question 6 months ago

    How the data about the students or tag holders are transfered to the database. Is there is any circuit connection between the system(PC) and arduino uno??
    And if so is there any way that it can become connectionless?

    awaiting for your reply :)

    Hello, sorry but I don't really understand what I have to do here. I guess I have to copy the mysql_query.txt and paste it where? Thank you

    Sir i am a full stack webdeveloper i want to purchase a RFID reader and card or tags. now i want know how this device give input to web browser???


    9 months ago

    Im getting an error on Size(700, 300); in the code

    what proccesing program did you use?

    also would be awesome if you did a video instead of steps :)