0% found this document useful (0 votes)
3 views

rfidbasedattendancesystemusingarduino1-220111070525

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.
Copyright
© © All Rights Reserved
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
0% found this document useful (0 votes)
3 views

rfidbasedattendancesystemusingarduino1-220111070525

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.
Copyright
© © All Rights Reserved
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

You might also like