Rfid based attendance system using arduino (1)

3,621 views 25 slides Jan 11, 2022
Slide 1
Slide 1 of 25
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25

About This Presentation

Project report based on RFID Attendance system
simulation on Proteus
Programming on ARDUINO IDE


Slide Content

PONDICHERRYUNIVERSITY
DEPARTMENT OF ELECTRONICSAND
COMMUNICATIONENGINEERING
RFID BASED ATTENDANCE SYSTEM USINGARDUINO
GUIDED BY:
PROF. DR. P.SAMUNDISWARY
PRESENTEDBY
AWANISH KUMAR (21304006)

CONTENTS
❖OBJECTIVE
❖INTRODUCTION
❖REQUIREMENTS
❖BLOCK DIAGRAM
❖SCHEMATICDESIGN
❖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 exittime.

INTRODUCTION
•Inthis project,wehave designed RFID Based Attendance
System usingArduino.EM-18RFIDReaderisaverysimpleyet
effective module.ItisanRFIDmoduleandisusedforscanning
RFIDcards.
•It’sanewtechnologyandisexpandingdaybyday.Nowadaysit
isextensively usedinoffices where employeesareissuedan
RFID cardandtheir attendanceismarked when they touch
theircardtotheRFIDreader.

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 Unoisanopensource microcontroller which itsboard
basedonmicro chipATmega328p microcontrollerandwhich
isdevelopedbyArduino.
•This boardissupplies setsofanalog and digital inputand
output which may meettovarious shield and other circuits.
Radio Frequency Identification (RFID)iswidely knownas
wirelessnon-contactuseofradiowaveswhichhelpstransferin
data.

2. RTC MODULE( DS1307)
•TheDS1307isan RTC Real Time Clock ICdevelopedbyMaxim
Integrated.Itisa low cost, extremely accurate RTCICwith communication
over I2C Interface.Aninteresting featureofDS1307RTCICisthatithas
integrated crystal oscillatorandtemperature sensorandhence youdon’t
havetoconnectanexternalcrystal
•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 32Kbsize.

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 asdata.

•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(":");

•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)
•lcd.print("0");

•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
•InRFIDattendance system can be used in many fields where the
records of attendance are strictly monitored.

REFERENCE
•www.Arduino.cc
•proteus
•http://en.wikipedia.org