The document outlines the design and implementation of an RFID-based attendance system using Arduino, which allows for automatic attendance recording by swiping RFID cards. It details the project's objectives, hardware and software requirements, working mechanism, advantages, and includes code snippets for the system. The system is aimed at improving attendance tracking in various fields by providing a low-cost and efficient solution.
The document outlines the design and implementation of an RFID-based attendance system using Arduino, which allows for automatic attendance recording by swiping RFID cards. It details the project's objectives, hardware and software requirements, working mechanism, advantages, and includes code snippets for the system. The system is aimed at improving attendance tracking in various fields by providing a low-cost and efficient solution.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25
PONDICHERRY UNIVERSITY
DEPARTMENT OF ELECTRONICS AND
COMMUNICATION ENGINEERING
RFID BASED ATTENDANCE SYSTEM USING ARDUINO
GUIDED BY: PRESENTED BY
PROF. DR. P. SAMUNDISWARY AWANISH KUMAR (21304006) CONTENTS ❖ OBJECTIVE ❖ INTRODUCTION ❖ REQUIREMENTS ❖ BLOCK DIAGRAM ❖ SCHEMATIC DESIGN ❖ WORKING ❖ ADVANTAGES AND DISADVANTAGES ❖ CODE ❖ CONCLUSION OBJECTIVE
• Automatic attendance recording system that allows
student to simply fill their attendance just by swiping or moving their ID card on RFID reader . • To monitor entry and exit time. INTRODUCTION • In this project, we have designed RFID Based Attendance System using Arduino. EM-18 RFID Reader is a very simple yet effective module. It is an RFID module and is used for scanning RFID cards. • It’s a new technology and is expanding day by day. Nowadays it is extensively used in offices where employees are issued an RFID card and their attendance is marked when they touch their card to the RFID reader. REQUIREMENTS ▪ HARDWARE REQUIREMENTS : 1. ARDUINO UNO 2. RFID READER 3. RTC MODULE DS1307 4. 20*4 LCD DISPLY 5. LED & BUZZERS ▪ SOFTWARE REQUIREMENTS : 1. PROTEUS 8 2. ARDUINO IDE 1. ARDUINO UNO • Arduino Uno is an open source microcontroller which its board based on micro chip AT mega 328p microcontroller and which is developed by Arduino. • This board is supplies sets of analog and digital input and output which may meet to various shield and other circuits. Radio Frequency Identification (RFID) is widely known as wireless non-contact use of radio waves which helps transfer in data. 2. RTC MODULE( DS1307) • The DS1307 is an RTC Real Time Clock IC developed by Maxim Integrated. It is a low cost, extremely accurate RTC IC with communication over I2C Interface. An interesting feature of DS1307 RTC IC is that it has integrated crystal oscillator and temperature sensor and hence you don’t have to connect an external crystal •DS1307 IC as the main component, several manufacturers developed DS1307 RTC Modules with all the necessary components. Almost all the modules available today consists of an additional IC, 24C32N (or something similar). This secondary IC is an EEPROM IC of 32Kb size. 3. RFID READER • EM-18 RFID reader is one of the commonly used RFID reader to read 125KHz tags. • It features low cost, low power consumption, small form factor and easy to use. • The module radiates 125KHz through its coils and when a 125KHz passive RFID tag is brought into this field it will get energized from this field. • RFID CARD/ TAG – DATA CARRYING BLOCK DIAGRAM SCHEMATIC DESIGN Working of RFID Based Attendance System using Arduino • In this project, we have designed an RFID based attendance system using Arduino. First, we store a set of RFID card data in our system. You can store any number of RFID data, but we have only stored 5 RFID tag numbers. • When the person with the correct RFID card comes & swipes his RFID card, his arrival time will be stored on the system using the EEPROM command displaying a “welcome” message on LCD. • When the same person swipes his RFID card for the second time, the system will save it as his leaving time displaying “See You”. The interval between first card swap and second card swap is the total working hours that are stored as data. • ADVANTAGES 1. LOW COST 2. EASY TO MINTORED 3. THIS SYSTEM CAN BE USE IN MANY FIELDS WHERE THE RECORD OF ATTENDANCE ARE STRICTLY MONITORED. COST ESTIMATION COMPONENTS COST
ARDUINO UNO RS. 500
RTC DS1307 RS. 190
RFID READER RS. 285
20*4 LCD RS. 350
CODE • #include <LiquidCrystal.h> • #include <EEPROM.h> • #include "Wire.h" • #define I2C_ADDRESS 0x68 • LiquidCrystal lcd(13,12,11,10,9,8); • #define SW1 A0 • #define SW2 A1 • #define SW3 A2 • #define SW4 A3 • int buzzer=6,red_led=5,green_led=4; • char* rfid_id[5]={"1900E54250EE","1900E561BC21","18003D312034","14000AD871B7","000003D4EE39"}; • char* names[5]={"STU1","STU2","STU3","STU4","STU4"}; • int presence[5]; • long pm=0; • int i=0,j=0, presentNum=0; • int decToBcd(int val){ • return( (val/10*16) + (val%10) ); • } • int bcdToDec(int val){ • int second, minute, hour, dayOfWeek, dayOfMonth, month, year; • int S=0, M=0, H=0,DOW=0, DOM=0, MONTH=0, YEAR=0; • int Min=0, Hour=0, totMin=0,totHour=0; • void setup() { • Wire.begin(); • Serial.begin(9600); • lcd.begin(20,4); • lcd.clear(); • setTime(00,27,15,03,22,05,18); • pinMode(buzzer,OUTPUT); • pinMode(red_led,OUTPUT); • pinMode(green_led,OUTPUT); • pinMode(SW1,INPUT_PULLUP); • pinMode(SW2,INPUT_PULLUP); • pinMode(SW3,INPUT_PULLUP); • pinMode(SW4,INPUT_PULLUP); • presentNum=EEPROM.read(1000); • for(i=0;i<10;i++) • presence[i]=EEPROM.read(i); • } • void setTime(int second, int minute, int hour, int dayOfWeek, int dayOfMonth, int month, int year){ • Wire.beginTransmission(I2C_ADDRESS); • Wire.write(0); • Wire.write(decToBcd(second)); • Wire.write(decToBcd(minute)); • Wire.write(decToBcd(hour)); • Wire.write(decToBcd(dayOfWeek)); • Wire.write(decToBcd(dayOfMonth)); • Wire.write(decToBcd(month)); • Wire.write(decToBcd(year)); • Wire.endTransmission(); • } • void readTime(int *second,int *minute,int *hour,int *dayOfWeek,int *dayOfMonth,int *month,int *year){ • Wire.beginTransmission(I2C_ADDRESS);Wire.write(0); • Wire.endTransmission();Wire.requestFrom(I2C_ADDRESS, 7); • *second = bcdToDec(Wire.read() & 0x7f); • *minute = bcdToDec(Wire.read()); • *hour = bcdToDec(Wire.read() & 0x3f); • *dayOfWeek = bcdToDec(Wire.read()); • *dayOfMonth = bcdToDec(Wire.read()); • *month = bcdToDec(Wire.read()); • *year = bcdToDec(Wire.read()); • } • void displayTime(){ • int HOUR; • readTime(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month,&year); • if(hour>12) • HOUR=hour-12; • else • HOUR=hour; • if(j<2){lcd.clear();j++;} • lcd.setCursor(1,0); • if (HOUR<10) • lcd.print("0"); • lcd.print(HOUR);lcd.print(":"); • if (minute<10) • lcd.print("0"); • lcd.print(minute); • lcd.print(":"); • if (second<10) • lcd.print("0"); • lcd.print(second); • lcd.setCursor(4,1); • if(hour>12) • lcd.print("PM"); • else • lcd.print("AM"); • lcd.setCursor(12,0); • if (dayOfMonth<10) • lcd.print("0"); • lcd.print(dayOfMonth); • lcd.print("/"); • if (month<10) • lcd.print("0"); • lcd.print(month); • lcd.print("/"); • lcd.print(year); • lcd.print(" "); • lcd.setCursor(11,1); • switch(dayOfWeek){ • case 1: lcd.print(" Sunday ");break; • case 2: lcd.print(" Monday ");break; • case 3: lcd.print(" Tuesday ");break; • case 4: lcd.print("Wednesday ");break; • case 5: lcd.print(" Thursday ");break; • case 6: lcd.print(" Friday ");break; • case 7: lcd.print(" Saturday ");break;} • } • void conTime(int a, int b, int c ) • { • int Hr; • int h, m, s; • h=EEPROM.read(a); • m=EEPROM.read(b); • s=EEPROM.read(c); • if(h>12) • Hr=h-12; • else • Hr=h; • lcd.print(" "); • if (Hr<10) • lcd.print("0"); • lcd.print(Hr);lcd.print(":"); • if (m<10) • if (m<10) • lcd.print("0"); • lcd.print(m); • lcd.print(":"); • if (s<10) • lcd.print("0"); • lcd.print(s); • if(h>12) • lcd.print(" PM"); • else • lcd.print(" AM"); • } • void loop() • { • int i; • char response[12]; • int ch; • top SIMULATION ON PROTEUS CONCLUSION • InRFID attendance system can be used in many fields where the records of attendance are strictly monitored. REFERENCE • www.Arduino.cc • proteus • http://en.wikipedia.org