Project tutorial

Version 2.0 Advanced Attendance System (Without Ethernet) © GPL3+

Full Fledged Attendance system which will prompt a free message on user mobile when his attendance will be marked using RFID Tag.

  • 3,238 views
  • 5 comments
  • 46 respects

Components and supplies

Apps and online services

http://www.parikshacrack.com/gadgetProgrammers/addrfidwin64.zip
Only for windows users
http://www.parikshacrack.com/gadgetProgrammers/markattendancewin64.zip
Only for windows users

About this project

First version of our “Online RFID Attendance System (Without Ethernet)” might be seem a little bit complicated for those hobbyists that don't have programming skills. With Online RFID Attendance System Version 2, we have come one step forward and eliminated coding part. With doing just some connections, you will be able to create your own Online Attendance System.

In this version of attendance system we are going to launch attendance system with all requirements of a real attendance system. It has a LCD Display.

How it Works?

Circuit :

If you have confusion in connections then see in schematics section for Pin Connections.

Programming:

Step 1: To use our Online RFID Attendance System, you need to do below steps:

  • · Create Attendance User Group
  • · Generate Validation key

To do above steps, please go to below URL and create Attendance User Group and Generate Free Validation Key.

Keep this validation key.

URL: http://www.parikshacrack.com/gadgetProgrammers/user_group.html

Step 2: Please download files from below URL which is required to sync Arduino and Our Web Application.

http://www.parikshacrack.com/gadgetProgrammers/addrfidwin64.zip

http://www.parikshacrack.com/gadgetProgrammers/markattendancewin64.zip

Note: This is only for windows OS. we are working hard for others OS.

Extract files from above two zip folders and save these files in your PC.

Step 3: Connect Arduino and RFID Reader to the same PC.

Step 4: Please copy and paste Arduino code as given in code section to Arduino editor. Now run and upload Arduino code to device.

Step 5: Now run desktop Application “addRFIDTagsProg” that you can find in Folder “addrfidwwin64.zip”.

If everything is connected perfectly, then Application “addRFIDTagsProg” will be opened and text box will be shown as in below image.

Now enter Validation key that you have generated in Step 1 and Press button validate key.

It validates you.

After Validation you can add users Using the above same window it will prompt for validation key only once.

For adding user please run above given program after validation then it will show you the screen as given below:

Above screen is used to add User for this you need to approximate your card in front of RFID RC522 Then it will show you the TAG UID in front of UID and then you just need to enter user name who will belong to this card and press enter (button will appear after approximating card).

If user gets added it will show you message of success and you can view user on web panel.

URL: http://www.parikshacrack.com/gadgetProgrammers/index.php

Step 6: Now you are able to add user (employees/students) in your user group. For that, you need to Login to our web Application. Go to below URL and Login.

URL: http://www.parikshacrack.com/gadgetProgrammers/index.php

Go to Tab User’s -> Pending User List, from here you can assign RFID Tags to their employee/students.

Step 7: Run desktop Application “markOnlineAttendance” that you can find in folder “markattendancewin64.zip”.

A screen will be opened as shown in below image showing Status: connected.

To mark attendance, keep RFID Tags close to RFID Reader for some seconds and attendance will be marked for the person to whom this RFID Tags belongs.

Step 8: To see attendance of all employees/students in a month or in year, Please follow following steps.

  • Go to Tab Attendance Controls -> View Attendance.
  • Select Month and year.
  • Click on Button “show”.

A list should be shown as below image.

Hooray !!! It is done.

If you like please give respect.

Please shout in comment box if you have any query .

Schematics

Pin connections of LCD with Arduino
pin_connections_of_arduino_and_lcd_yD9G43NUd9.tiff
Pin connections of RFID with Arduino
pin_connections_of_arduion_and_rfid_7DFKgigFOA.tiff

Code

Arduino CodeArduino
This code used to read user 8 Digit UID (ID CARD) and print on serial printer and to send it to processing.
/*Created by: Anshul Pareek
 * --------------------------------------------------------------------------------------------------------------------
 * Example sketch/program showing how to read new NUID from a PICC to serial.
 * --------------------------------------------------------------------------------------------------------------------
 * This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid
 * 
 * Example sketch/program showing how to the read data from a PICC (that is: a RFID Tag or Card) using a MFRC522 based RFID
 * Reader on the Arduino SPI interface.
 * 
 * When the Arduino and the MFRC522 module are connected (see the pin layout below), load this sketch into Arduino IDE
 * then verify/compile and upload it. To see the output: use Tools, Serial Monitor of the IDE (hit Ctrl+Shft+M). When
 * you present a PICC (that is: a RFID Tag or Card) at reading distance of the MFRC522 Reader/PCD, the serial output
 * will show the type, and the NUID if a new card has been detected. Note: you may see "Timeout in communication" messages
 * when removing the PICC from reading distance too early.
 * 
 * @license Released into the public domain.
 * 
 * Typical pin layout used:
 * -----------------------------------------------------------------------------------------
 *             MFRC522      Arduino       Arduino   Arduino    Arduino          Arduino
 *             Reader/PCD   Uno/101       Mega      Nano v3    Leonardo/Micro   Pro Micro
 * Signal      Pin          Pin           Pin       Pin        Pin              Pin
 * -----------------------------------------------------------------------------------------
 * RST/Reset   RST          9             5         D9         RESET/ICSP-5     RST
 * SPI SS      SDA(SS)      10            53        D10        10               10
 * SPI MOSI    MOSI         11 / ICSP-4   51        D11        ICSP-4           16
 * SPI MISO    MISO         12 / ICSP-1   50        D12        ICSP-1           14
 * SPI SCK     SCK          13 / ICSP-3   52        D13        ICSP-3           15
 */

#include <SPI.h>
#include <MFRC522.h>

#define SS_PIN 10
#define RST_PIN 9
 
MFRC522 rfid(SS_PIN, RST_PIN); // Instance of the class

MFRC522::MIFARE_Key key; 

// Init array that will store new NUID 
byte nuidPICC[4];

void setup() { 
  Serial.begin(9600);
  SPI.begin(); // Init SPI bus
  rfid.PCD_Init(); // Init MFRC522 

  for (byte i = 0; i < 6; i++) {
    key.keyByte[i] = 0xFF;
  }

}
 
void loop() {

  // Look for new cards
  if ( ! rfid.PICC_IsNewCardPresent())
    return;

  // Verify if the NUID has been readed
  if ( ! rfid.PICC_ReadCardSerial())
    return;

  MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);

  // Check is the PICC of Classic MIFARE type
  if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&  
    piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
    piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
    //Serial.println(F("Your tag is not of type MIFARE Classic."));
    return;
  }
 String s;
    for (byte i = 0; i < 4; i++) {
      
      nuidPICC[i] = rfid.uid.uidByte[i];
      
    }
  

    printHex(rfid.uid.uidByte, rfid.uid.size);
    Serial.println();
   
  // Halt PICC
  rfid.PICC_HaltA();

  // Stop encryption on PCD
  rfid.PCD_StopCrypto1();
}

/**
 * Helper routine to dump a byte array as hex values to Serial. 
 */
void printHex(byte *buffer, byte bufferSize) {
  for (byte i = 0; i < bufferSize; i++) {
    Serial.print(buffer[i] < 0x10 ? "0" : "");
    Serial.print(buffer[i], HEX);
  }
}

/**
 * Helper routine to dump a byte array as dec values to Serial.
 */
void printDec(byte *buffer, byte bufferSize) {
  for (byte i = 0; i < bufferSize; i++) {
    Serial.print(buffer[i] < 0x10 ? "0" : "");
    Serial.print(buffer[i], DEC);
  }
}

Comments

Similar projects you might like

Development Board for AtTiny MCU

by Vincenzo G.

  • 183 views
  • 0 comments
  • 5 respects

The Magnetic Field and RGB Tester

Project tutorial by Kutluhan Aktar

  • 410 views
  • 0 comments
  • 5 respects

How To Use DS18B20 Water Proof Temperature Sensor

Project showcase by IoTBoys

  • 257 views
  • 0 comments
  • 4 respects

Control LED Using Your Voice Command

by IoTBoys

  • 1,190 views
  • 1 comment
  • 12 respects

Ultrasonic Security System

Project tutorial by Krepak

  • 598 views
  • 2 comments
  • 7 respects
Add projectSign up / Login