Fingerprint Attendance (Arduino)
Fingerprint Attendance (Arduino)
Submitted By:
Name ID
Advisor
Mr. Tadie B.
February 2019
First, we are grateful to the Almighty God for enabling us to complete this semester project
work. It is our pleasure to thank our advisor Mr. Tadie B. for being there in guiding and
appreciating our work. We are thankful for their aspiring guidance, invaluably constructive
criticism and friendly advice during the project work. We are sincerely grateful to them for
sharing their truthful and illuminating views on several issues related to the project. Finally,
We take this opportunity to sincerely thank all the faculty members of Electrical and Computer
Engineering for their help and encouragement in our educational endeavors.
DECLARATION ..................................................................................................................................... i
ACKNOWELDGMENT ........................................................................................................................ ii
ABSTRACT .......................................................................................................................................... iii
TABLE OF FIGURE ............................................................................................................................. vi
LIST OF ACRONYMS .........................................................................................................................vii
INTRODUCTION .................................................................................................................................. 1
1.1 Background of the Project ............................................................................................................ 1
1.2 Motivation..................................................................................................................................... 2
1.3 Problem Statement ........................................................................................................................ 2
1.4 Objectives ..................................................................................................................................... 2
1.4.1 General Objective .................................................................................................................. 2
1.4.2 Specific Objectives ................................................................................................................ 2
1.5 System Methodology .................................................................................................................... 2
1.6 Significance of the Project (Contributions) .................................................................................. 5
1.7 Scope of the Project ...................................................................................................................... 5
1.8 Project Development Tools .......................................................................................................... 5
CHAPTER TWO .................................................................................................................................... 7
LITERATURE REVIEW ....................................................................................................................... 7
CHAPTER THREE .............................................................................................................................. 10
SYSTEM DESIGN AND ANALYSIS................................................................................................. 10
3.1 Introduction................................................................................................................................. 10
3.2 System Components ................................................................................................................... 11
3.2.1Arduino UNO ....................................................................................................................... 11
3.2.2 Fingerprint module .............................................................................................................. 12
3.2.3 GSM MODEM (SIM900D) ................................................................................................. 14
3.2.4 RTC...................................................................................................................................... 15
3.2.5 Liquid Crystal Display (LCD) ............................................................................................. 16
3.2.6 Resistors ............................................................................................................................... 16
3.3 Overall working principle of the system model .......................................................................... 17
3.3.1 System model ....................................................................................................................... 17
CHAPTER FOUR ................................................................................................................................ 18
RESULTS AND DISCUSSIONS ......................................................................................................... 18
COM………………………………………Communication
GND………………………………………Ground
ID…………………………………………. Identity
PC………………………………………...Personal Computer
RF…………………………………………Radio Frequency
Rx……………………………………….... Receiver
Tx…………………………………………Transmitter
INTRODUCTION
1.1 Background of the Project
In this project we are going to design fingerprint sensor-based attendance system for university
and college students using Arduino. Simply we will be interfacing sensor with Arduino, LCD
display, RTC module, GSM module, to design the desired project.
This attendance system has a wide range of applications in Colleges and Universities where
marking of attendance is required accurately with time by using fingerprint sensor.
In educational system the teacher’s callout the name of each student and mark the attendance.
This causes time wastage during lecture time. This becomes more and more important where
number of students in a class is very large. Managing the attendance data is also very difficult.
The other way is that the teacher must pass the attendance sheet around the class for the students
to sign. These methods have a major drawback because the students tend to answer or sign for
their friends. In educational institutions, attendance and academic success are directly related.
Therefore, to have a proper attendance management system is important.
Everyone is expected to attend class regularly. Lectures and Lab assistances take attendance
on regular days during the semester to ensure that students are coming to class/lab, and if they
miss class repeatedly, their Grade will be affected since it has its own value. 85% attendance
for Lecture and 100% for Laboratory is must with in the semester. If they miss more than 15%
attendance for Lecture and 0% for laboratory class attendance they will not sit for Final exam.
[Article 166 and 166.1 of the Senate Legislation of Bahir Dar University May 20, 2005]
It is the emerging technology used for automatic identification of a person based on biological
characteristics. The fingerprint verification system is commonly used biometric technique.
This technique uses computer to store and verify fingerprint.
Generally, this system has three main parts namely searching, displaying and sending SMS.
This simple device starts with the connection of Arduino and fingerprint sensor to the computer
for searching phase, as soon as the user press the fingerprint sensor, it reads the users fingerprint
and related users information are display on the LCD depending on the instruction written in.
For this system scanning time, date, user name and ID numbers are displayed on the LCD.
In this fingerprint attendance system circuit, we used fingerprint sensor module to authenticate
a student by taking their finger input in the system. Here we are using five push buttons namely
Enter, Up, Down, Done and Back key push buttons. The functions of this push buttons are used
1.2 Motivation
Every educational institution must maintain a proper record of attendance of students for
effective functioning of institution. Designing a better attendance management system for
students so that records be maintained with ease and accuracy was an important key behind
motivating this project. This would improve accuracy of attendance records because it will
remove all the hassles of roll calling and will save valuable time of the students as well as
teachers. Image processing and fingerprint recognition are very advanced today in terms of
technology. It was our responsibility to improve fingerprint identification system.
1.3 Problem Statement
In the system, the reference roll number and name for every student is provided by the institute
with sheets. The teachers call out the roll number and mark ‘present’ or ‘absent’ on the sheet.
For a class or each lecture, the call out process is also replaced by passing the sheet and signing.
Many institute or university still use this type of paper-based attendance system. The
disadvantages of this system are that roll calling and singing process is waste time and cannot
take actual attendance.
1.4 Objectives
1.4.1 General Objective
The objective of our project is to develop a model of a fingerprint sensor-based attendance
system for university and college students using Arduino.
1.4.2 Specific Objectives
✓ Over all block diagram of the component is developed.
✓ Feedback mechanism from the fingerprint sensor to the Arduino will be developed.
✓ To know whether the students attending the class or not.
✓ To send a notification and alerting messages the students that are absent in attendance
through GSM modem.
✓ Feedback mechanism from the fingerprint sensor to the Arduino will be developed.
1.5 System Methodology
The project will be achieved through the simulation on the simulator software. The procedure
looks like as follows:
start
Display not
Registered on Fingerprint
LCD matched
Register on Register on
Lec table Lec/Lab Lab table
<=15%Attendance NO Lab
Lec successful
absence absence
YES
>15% GSM send
warning messages
to a student
End
✓ Arduino UNO
✓ Fingerprint Module
✓ GSM Module
✓ Serial Monitor (PC)
✓ Push Button
✓ Resistors
✓ Connecting wires
✓ LCD
✓ RTC Module
✓ Bread Board
There are few types of attendance system that had been introduced in schools, college and
university students. In this section some of the related projects we have reviewed are discussed.
Strength:
✓ If someone is absence due to permission the person who check the attendance give
permission
Weakness:
2. Dhanashree 2011 Desktop-based student attendance system: This journal paper main
objective is to indicate the disadvantage of traditional attendance system compared to the
proposed system. It had known that attendance system software is required to replace the
traditional attendance system for the purpose to reduce the processing time and the paper cost
used in the traditional attendance system compared to the proposed system.
Compared to the traditional attendance system it offers cost-effectiveness since it reduces the
paper needs to process the data of student attendance records. Although the system had
developed to be work in Computerization, but it still require computer operator to manage the
storing and retrieving of Information frequently. It only reduces the cost used for paper work
the system does not save up much time to records the attendance [2].
20*4 LCD
Finger
print
module
RTC Arduin Serial
o uno monitor(PC)
GSM
module
DONE EN BK UP DN
If a student selects lab session using an enter key the LCD displays the Name, ID and Date of
the student. After LCD display the status of the selected student the system takes attendance of
the student then after the student used the Done key to finish his attendance process and then
used Back key to get an attendance of another student. The next student take attendance by
putting his finger on the fingerprint sensor scanner module. On similar manner, If a student
selects lecture session using an enter key the LCD displays the Name, ID and Date of the
student. After LCD display the status of the selected student the system takes attendance of the
✓ Able to read analog or digital input signals from different sensors and turn it in to an
output
✓ The board functions can be controlled by sending a set of instructions to the
microcontroller on the board via Arduino IDE.
✓ It does not need an extra piece of hardware to load a new code on to the board. You
can simply use a USB cable.
✓ It provides a standard form factor that breaks the functions of the microcontroller in to
a more accessible packages.
✓ Arduino IDE uses a simplified version of C++, making it easier to learn to a program
Features
Features
✓ Counts seconds, minutes, hours, dates of the month, month, day of the week.
✓ 56-byte, battery-backed, Non-Volatile RAM for Data storage.
✓ Two-wire serial interface.
✓ Programmable square-wave output signal.
✓ Automatic power-fail detect and circuitry
✓ Consumes less than 500Na in battery backup mode with oscillator running.
✓ Optional Industrial temperature range : -400c to +850c.
✓ Available in 8-pin.
Pin description
✓ Vcc- Primary power supply
✓ GND- Ground
✓ SDA- (Serial data): is the input/output pin for the two-wire serial interface. The SDA
pin is open drain which requires an external pullup resistor.
✓ SCL- (Serial Clock): is used to synchronize data movement on the serial interface.
LCD (Liquid Crystal Display) screen is an electronic display module and find a wide range of
applications. These modules are preferred over seven segment LEDs because it have no
limitation of displaying special and even custom characters, animation and so on. Liquid crystal
does not emit light directly. The working of LCD depends on two sheets of polarizing material
with a liquid crystal solution in between them. When an electric current is passed through the
liquid, it causes the crystals to align so that it blocks out light and does not allow it to pass.
Each crystal behaves like a shutter, it either allows light to pass through or blocks the light. It
can function properly in the temperature range of -10℃ to 60℃ and has operating lifetime of
longer than 50000 hours (at room temperature without direct irradiation of sunlight) [10].
Features of LCD:
✓ Display Mode……………………TN/STN
✓ Number of data line…………….8-bit parallel
✓ Display type……………………. Positive Transflective
✓ Backlight………………………..LED(B/5.0V)
✓ Viewing direction……………….6 o’clock
✓ Operating Temperature…………..Indoor
✓ Driving Voltage………………….Single power
✓ Type……………………………..COB (Chip on Board)
✓ Connector……………………….Pin
✓ Driving method…………………1/16 duty,1/5 bias
In this attendance system we have used 20*4 LCD which is used to display options weather
lab or lecture sessions, fingerprint recognized or not and the percentage of student attendance
out of the whole class.
3.2.6 Resistors
Resistor is an electrical component that limits or regulates the flow of electrical current in an
electronic circuit. It can also be used to provide a specific voltage for an active device.
In this fingerprint attendance system we have used a resistor value having 1k ohm.
Figure 3. 6 Overall circuit diagram of fingerprint attendance system for university and college
students.
4.1 Results
The figure 4. 1 below shows put the students finger on the fingerprint module
The figure 4. 4 below shows lab or lecture class alternatives for the recognized student.
Figure 4. 5 show lab or lecture class alternatives for the selected student.
The figure 4. 7 below shows Notification A GSM delivered to a student whose fingerprint is
successfully recognized
This fingerprint attendance system supports those that are only registered. Those who are not
registered, the LCD displays not registered. The students who registered their status is send an
SMS through their phone number. Based on the text they have get through GSM, the students
take their own measure. Since Human fingerprints are detailed, nearly unique, difficult to alter,
and durable over the life of an individual, making them suitable as long-term makers of human
identity.
It is the process of comparing two instances of friction ridge skin impressions (minutiae), from
human fingers or toes or even the palm of the hand or sole of the foot, to determine whether
these impressions could have come from the same individual. The flexibility of friction ridge
skin means that no two finger or palm prints are ever exactly alike in every detail; even two
impressions recorded immediately after each other from the same hand may be slightly
different. It is also called Individualization. So, fingerprint attendance system avoiding fake
attendance system.
The fingerprint attendance system uses the SIM 900 (GSM modem) for communication
between the mobile station and microcontroller to send and receive instructions.
Furthermore, the prevention of vehicle theft was also an important factor. Users can control
this system device by sending instructions and by receiving alerts by SMS. Users can
determine the position of their vehicles via GPS, by using a phone in conjunction with the
Google Maps application to show vehicle coordinates.
The fingerprint attendance system uses the SIM 900 (GSM modem) for communication
between the mobile station and microcontroller to send and receive instructions.
In addition to this, The system uses the SIM900 modem to send and receive messages.
Instructions are sent from the system to a mobile phone. This step was concluded successfully.
[1] Mariva,D, “Review of Literature Review for Improving attendance in schools”, June 5,
2011.
[2] Paul, A., & Lourde, RA “ desktop based attendance system”, 2006.
[3] Microtronics Technologies, “RFID based attendance system”, 2013.
[4] Mohd. Firdaus Bin Mahyidin.” Student attendance using RFID system”.in University of
Malaysia, Pahang,May, 2008
[5] Ononiwu G, Chiagozie, Okorafor G. Nwaji. “ Radio Frequency Identification (RFID)
Based Attendance System”.in Acadamic Research International, ISSNL-L:2223-
9553.2012;2(2).
[6] Krishna Prasad, K. and Aithal, P. S, “Conceptual Study on User Identification and
Verification Process Using Face Recognition Techniques”, 2017.
[7] Babatunde, I. G. “Fingerprint sensor-based attendance system”, 2012.
[8] Hans J. V., Christian B, “GSM Switching”, Services and Protocol, BG Teubner,
Germany, pp.36, 1998.
[9] http://arduino.cc/en/Main/ArduinoGSMShield
[10] https://learn.adafruit.com
[11] https://store.RTC.com
#include <Wire.h>
#include "RTClib.h"
//#include <GSM.h>
#include <EEPROM.h>
////GSM gsmAccess;
//GSM_SMS sms;
DateTime now;
RTC_DS1307 rtc;
#include <LiquidCrystal.h>
int temp3=0;
bool STATE=true;
bool finish=true;
bool finish2=true;
int A;
int VOLT;
int I;
int id=10;
int max_lec_day=100;
int max_lab_day=80;
#define up 7
#define down 5
#define enter 6
#define END 3
//functions
String incomingString2;
int test=0;
String
ID[]={"BDU0701839UR","BDU0702434UR","BDU0702239UR","BDU0702513UR","BDU
0701555UR"};
String
phone_no[]={"0909525117","0909524804","0961149974","0925982138","0912643456"};
float I;
float I_l;
float I2;
float I3;
int T;
int stoint;
int TEMP_V;
int BP_V;
int select2=0;
void push_button(int);
int LEC_STATE=0;
int PERCENTAGE_LEC=0;
int TOTAL_ABSENSE_LEC=0;
int LAB_STATE=0;
int PERCENTAGE_LAB=0;
int TOTAL_ABSENSE_LAB=0;
int M=1;
int temp=0;
int now_time2=0;
void setup () {
now_time2=now.second();
mySerial.begin(9600);
TOTAL_lec[I]=0;
TOTAL_lab[I]=0;
STATE_lab[I]=0;
STATE_lec[I]=0;
void loop () {
if (put finger) {
serial_check ()
int N1=0;
push_button(N1);
call_menu(M);
check ();
if (temp! = M) {
LCD.setCursor(6,0);
LCD.print(names[id]);
if (M == 1) {
LCD.setCursor(0,1);
LCD.print(" >");
LCD.setCursor(3,1);
LCD.print("LECTURE");
if (M == 2) {
LCD.setCursor(0,2);
LCD.print(" >");
LCD.setCursor(3,2);
LCD.print("LABRATORY")
t=M;
if(N==0) {
switch (M) {
case 1:
LECTURE ();
break;
case 2:
LABORATORY ();
break;
case 3:
STATES ();
break;
};
void LECTURE () {
M=1;
temp=0;
while (1) {
check ();
while(digital Read(back));
temp=0;
break;
int N2=1;
push_button(N2);
if (temp! = M) {
LCD.print("LECTERE_ATTEN ");
finish2=true;
if (M == 1) {
LCD.setCursor(0,1);
LCD.print(" >");
LCD.setCursor(3,1);
LCD.print("TOTAL =");
LCD.setCursor(10,1);
TOTAL_lec[id] = TOTAL_lec[id] + 1;
EEPROM.write(180+id*10, int(TOTAL_lec[id]));
float a=TOTAL_lec[id]*100;
a=a/5;
if(a<85) {
EEPROM.write(180+id*10, STATE_lec[id]);
} else {
STATE_lec[id]=1;
EEPROM.write(180+id*10, STATE_lec[id]);
LCD.print(TOTAL_lec[id], DEC);
if (M == 2) {
LCD.setCursor(0,2);
LCD.print(" >");
LCD.setCursor(3,2);
LCD.print("PERCENT = ");
LCD.setCursor(13,2);
//TOTAL_lec[id]=TOTAL_lec[id]+1;
//EEPROM.write(180+id*10, TOTAL_lec[id]);
a3=a3/5;
LCD.print(a3);
LCD.setCursor(18,2);
LCD.print('%');
if (M == 3) {
LCD.setCursor(0,3);
LCD.print(" >");
LCD.setCursor(3,3);
LCD.print("STATES = ");
LCD.setCursor(10,3);
String b="Normal";
String c="Warning";
if(TOTAL_lec[id]>=4) {
LCD.print(b);
} else {
LCD.print(c);
temp = M;
M=t;
void LABORATORY () {
M=1;
temp=0;
while (1) {
check ();
if (digital Read(back)) {
while(digital Read(back));
temp=0;
int N2=2;
push_button(N2);
if (temp! = M) {
LCD. Clear();
LCD.print("LABORATORY_ATTE ");
finish=true;
if (M == 1) {
LCD.setCursor(0,1);
LCD.print(" >");
LCD.setCursor(3,1);
LCD.print("TOTAL =");
LCD.setCursor(10,1);
TOTAL_lab[id] = TOTAL_lab[id] + 1;
EEPROM.write(380+id*10, TOTAL_lab[id]);
float a=TOTAL_lab[id]*100;
a=a/5;
if(a<100) {
STATE_lab[id]=0;
EEPROM.write(380+id*10, STATE_lab[id]);
} else {
STATE_lab[id]=1;
LCD.print(TOTAL_lab[id]);
if (M == 2) {
LCD.setCursor(0,2);
LCD.print(" >");
LCD.setCursor(3,2);
LCD.print("PERCENT = ");
LCD.setCursor(11,2);
// TOTAL_lab[id]=TOTAL_lab[id]+1;
//EEPROM.write(180+id*10, TOTAL_lab[id]);
float a2=TOTAL_lab[id]*100;
a2=a2/5;
if(a2<100) {
STATE_lab[id]=0;
EEPROM.write(380+id*10, STATE_lab[id]);
} else {
STATE_lab[id]=1;
EEPROM.write(380+id*10, STATE_lab[id]);
LCD.print(a2);
LCD.setCursor(16,2);
LCD.print("%");
LCD.setCursor(0,3);
LCD.print(" >");
LCD.setCursor(3,3);
LCD.print("STATES = ");
LCD.setCursor(10,3);
String b="Normal";
String c="Warning";
if(TOTAL_lab[id]>=4) {
LCD.print(b);
} else {
LCD.print(c);
temp=M;
M=t;
void STATES () {
M=1;
temp=0;
while (1) {
if (digital Read(back)) {
temp=0;
break;
int N3=3;
push_button(N3);
if (temp! = M) {
LCD.clear();
LCD.setCursor(0,0);
LCD.print("STATE");
if (M == 1) {
LCD.setCursor(0,2);
LCD.print(" >");
LCD.setCursor(3,2);
LCD.print("WARNINGS");
temp=M;
M=t;
if (digital Read(up)) {
M--;
M++;
else if (digitalRead(enter)) {
while(digitalRead(enter));
if (M>3 || M<1) {
M=1;
void check () {
serial_check ();
if (digitalRead(END)) {
while(digitalRead(END));
put finger=true
mySerial.println(now_time);
mySerial.println("gsmAccess.begin();");
mySerial.println("sms. beginSMS(phone_no[I]);");
mySerial.println(names[i]);
mySerial.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@");
STATE_lec[i]=1;
finish2=false;
mySerial.println(now_time2);
mySerial.println("gsmAccess.begin();");
mySerial.println("sms. beginSMS(phone_no[i]);");
mySerial.println(names[I]);
println
("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
mySerial.println(" ");
STATE_lab[i]=1;
finish=false;
void serial_check () {
if (Serial.available()>0)
I=0;
do
I++;
} while(i<2);
response[i]='\0';
Serial.println(' ');
LCD.setCursor(5, 3);
LCD.print('/');
LCD.print('/');
delay (800);
id=0;
not_r=true;
LCD.setCursor(5, 3);
LCD.print('/');
LCD.print('/');
delay (800);
not_r=true;
id=1;
LCD.setCursor(5, 3);
LCD.print('/');
LCD.print('/');
delay (800);
id=2;
not_r=true;
LCD.setCursor(5, 3);
LCD.print(now.year(), DEC);
LCD.print('/');
LCD.print(now.month(), DEC);
LCD.print('/');
LCD.print(now.day(), DEC);
delay(800);
not_r=true;
id=3;
}else if(strcmp(response,finger_id[4])==0){
LCD.setCursor(5, 3);
LCD.print(now.year(), DEC);
LCD.print('/');
LCD.print(now.month(), DEC);
LCD.print('/');
delay(800);
not_r=true;
id=4;
}else if(strcmp(response,finger_id[5])==0){
LCD.setCursor(5, 3);
LCD.print(now.year(), DEC);
LCD.print('/');
LCD.print(now.month(), DEC);
LCD.print('/');
LCD.print(now.day(), DEC);
delay(800);
not_r=true;
id=5;
else{
not_r=false;
M=1;
temp=1
put_finger = false;
if(not_r){
M=1;
temp=0;