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

Fingerprint Based Biometric Attendance System Using Arduino

This document describes a fingerprint-based biometric attendance system using an Arduino. It uses a fingerprint sensor module to authenticate users by their fingerprint and an RTC module to record the time. The system can enroll new fingerprints, delete stored fingerprints, and download attendance data. It provides a bill of materials, block diagram, circuit diagram, and code to interface the fingerprint sensor with the Arduino, display attendance records on an LCD, and log times using the RTC module.

Uploaded by

Frederic malunga
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
575 views

Fingerprint Based Biometric Attendance System Using Arduino

This document describes a fingerprint-based biometric attendance system using an Arduino. It uses a fingerprint sensor module to authenticate users by their fingerprint and an RTC module to record the time. The system can enroll new fingerprints, delete stored fingerprints, and download attendance data. It provides a bill of materials, block diagram, circuit diagram, and code to interface the fingerprint sensor with the Arduino, display attendance records on an LCD, and log times using the RTC module.

Uploaded by

Frederic malunga
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 43

Arduino Projects

Fingerprint Based Biometric


Attendance System using Arduino

Admin Last Updated: May 17, 2020  64  14,924  3 minutes read

Table of Contents [hide]


1 Introduction:
2 R305 Fingerprint Scanner Sensor Module:
2.1 Introduction:
2.2 Features:
3 Specifications
4 Fingerprint Sensor Based Biometric Attendance System using
Arduino:
4.1 Bill of Materials
4.2 Block Diagram:
4.3 Circuit Diagram:
5 Source Code Program
6 Working Explanation:
6.1 Enrolling New Fingerprint
6.2 Deleting Stored Fingerprint
6.3 Downloading Data:
7 Video Preview/Explanation & Working:

Introduction:
In this project, we are going to design a Fingerprint Sensor
Based Biometric Attendance System using Arduino. Simply we
will be interfacing fingerprint sensor with Arduino, LCD
Display & RTC Module to design the desired project. In this
project, we used the fingerprint Module and Arduino to take
and keep attendance data and records.

Biometric Attendance systems are commonly used systems to


mark the presence in offices and schools. This project has a
wide application in school, college, business organization,
offices where marking of attendance is required accurately with
time. By using the fingerprint sensor, the system will become
more secure for the users.
You can check the advanced version of this project here: IOT
Based Biometric Fingerprint Attendance System using
NodeMCU

R305 Fingerprint Scanner Sensor Module:


Introduction:

This is a fingerprint sensor module with TTL UART interface for


direct connections to microcontroller UART or to PC through
MAX232 / USB-Serial adapter. The user can store the fingerprint
data in the module and can configure it in 1:1 or 1: N mode for
identifying the person.

The Fingerprint module can be directly interfaced with any


microcontroller as well as Arduino Board. This optical biometric
fingerprint reader with great features and can be embedded
into a variety of end products like access control system,
attendance system, safety deposit box, car door locking system.

Features:
1. Integrated image collecting and algorithm chip together,
ALL-in-One
2. Fingerprint can conduct secondary development &
embedded into a variety of end products
3. Low power consumption, low cost, small size, excellent
performance
4. Professional optical technology, precise module
manufacturing techniques
5. Good image processing capabilities can successfully capture
image up to resolution 500 dpi

Specifications
1. Fingerprint sensor type: Optical
2. Sensor Life: 100 million times
3. Static indicators: 15KVBacklight: bright green
4. Interface: USB1.1/UART(TTL logical level)
5. RS232 communication baud rate: 4800BPS~115200BPS
changeable
6. Dimension: 553221.5mm
7. Image Capture Surface 15—18(mm)
8. Verification Speed: 0.3 sec
9. Scanning Speed: 0.5 sec
10. Character file size: 256 bytes
11. Template size: 512 bytes
12. Storage capacity: 250
13. Security level: 5 (1,2,3,4,5(highest))
14. False Acceptance Rate (FAR) :0.0001%
15. False Rejection Rate (FRR): 0.1%
16. Resolution 500 DPI
17. Voltage :3.6-6.0 VDC
18. Working current: Typical 90 mA, Peak 150mA
19. Matching Method: 1: N
20. Operating Environment Temperature: -20 to 45°
centigrades

Fingerprint Sensor Based Biometric


Attendance System using Arduino:
Bill of Materials

COMPONENTS
COMPONENTS
S.N. COMPONENTS DESCRIPTION QUANTITY
S.N. NAME DESCRIPTION QUANTITY
NAME
1 Arduino Board Arduino UNO 1 https://am
R3
Development
Board

2 Fingerprint R305/R307 1 https://am


Sensor Fingerprint
Sensor Module

3 RTC Module DS3231/DS1307 1 https://am


Real Time Clock
Module

4 LCD Display JHD162A 16x2 1 https://am


LCD Display

5 Potentiometer 10K 1 https://am

6 Push Buttons Push-To-ON 5 https://am


Reset Tact
Switch

7 Buzzer 5V Active 1 https://am


Buzzer

8 LED 5mm LED Any 1 https://am


Color
COMPONENTS
S.N. DESCRIPTION QUANTITY
9 NAME
Connecting Jumper Wires 20 https://am
Wires

10 Breadboard - 1 https://am

Block Diagram:

In this Fingerprint Sensor Based Biometric Attendance System


using Arduino, we used a Fingerprint Sensor module to
authenticate a true person or employee by taking their finger
input in the system. Here we are using 4 push buttons to
register new fingerprint or delete stored fingerprint or match
stored fingerprint. The 4 push buttons are used as an input unit
for these tasks. Similarly, RTC Module DS3231 is used for
registering scanning/entering/existing time of the user.

The LCD displays the time record and every function happening
via push button. Buzzer indicates different functions and
happening whenever an interrupt is detected. The LED is used
for power indication.

Circuit Diagram:
Source Code Program
The source code/Program for Fingerprint Sensor Based
Biometric Attendance System using Arduino is given below. But
before that you need to add fingerprint Sensor library & DS3231
Library. So download the following library:

1. DS3231 Library – Download


2. Adafruit Fingerprint Sensor Library – Download

#include "Adafruit_Fingerprint.h" //fingerprint library head


#include<EEPROM.h> //command for storing data
#include<LiquidCrystal.h> //lcd header file
LiquidCrystal lcd(8,9,10,11,12,13);
#include <SoftwareSerial.h>
SoftwareSerial fingerPrint(2, 3); //for tx/rx communication
 
#include <Wire.h>
#include "RTClib.h" //library file for DS3231 RTC Module
RTC_DS3231 rtc;
 
uint8_t id;
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&fingerPr
 
#define register_back 14
#define delete_ok 15
#define forward 16
#define reverse 17
#define match 5
#define indFinger 7
#define buzzer 5
 
#define records 10 // 10 for 10 user
 
int user1,user2,user3,user4,user5,user6,user7,user8,user9,us
 
DateTime now;
 
void setup()
{
delay(1000);
lcd.begin(16,2);
Serial.begin(9600);
pinMode(register_back, INPUT_PULLUP);
pinMode(forward, INPUT_PULLUP);
pinMode(reverse, INPUT_PULLUP);
pinMode(delete_ok, INPUT_PULLUP);
pinMode(match, INPUT_PULLUP);
pinMode(buzzer, OUTPUT);
pinMode(indFinger, OUTPUT);
digitalWrite(buzzer, LOW);
if(digitalRead(register_back) == 0)
{
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer, LOW);
lcd.clear();
lcd.print("Please wait !");
lcd.setCursor(0,1);
lcd.print("Downloding Data");
 
Serial.println("Please wait");
Serial.println("Downloding Data..");
Serial.println();
 
Serial.print("S.No. ");
for(int i=0;i<records;i++)
{
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer, LOW);
Serial.print(" User ID");
Serial.print(i+1);
Serial.print(" ");
}
Serial.println();
int eepIndex=0;
for(int i=0;i<30;i++)
{
if(i+1<10)
Serial.print('0');
Serial.print(i+1);
Serial.print(" ");
eepIndex=(i*7);
download(eepIndex);
eepIndex=(i*7)+210;
download(eepIndex);
eepIndex=(i*7)+420;
download(eepIndex);
eepIndex=(i*7)+630;
download(eepIndex);
eepIndex=(i*7)+840;
download(eepIndex);
eepIndex=(i*7)+1050;
download(eepIndex);
eepIndex=(i*7)+1260;
download(eepIndex);
eepIndex=(i*7)+1470;
download(eepIndex);
eepIndex=(i*7)+1680;
download(eepIndex);
Serial.println();
}
}
if(digitalRead(delete_ok) == 0)
{
lcd.clear();
lcd.print("Please Wait");
lcd.setCursor(0,1);
lcd.print("Reseting.....");
for(int i=1000;i<1005;i++)
EEPROM.write(i,0);
for(int i=0;i<841;i++)
EEPROM.write(i, 0xff);
lcd.clear();
lcd.print("System Reset");
delay(1000);
}
 
lcd.clear();
lcd.print(" Fingerprint ");
lcd.setCursor(0,1);
lcd.print("Attendance System");
delay(2000);
lcd.clear();
 
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer, LOW);
for(int i=1000;i<1000+records;i++)
{
if(EEPROM.read(i) == 0xff)
EEPROM.write(i,0);
}
 
finger.begin(57600);
Serial.begin(9600);
lcd.clear();
lcd.print("Finding Module..");
lcd.setCursor(0,1);
delay(2000);
if (finger.verifyPassword())
{
Serial.println("Found fingerprint sensor!");
lcd.clear();
lcd.print(" Module Found");
delay(2000);
}
else
{
Serial.println("Did not find fingerprint sensor :(");
lcd.clear();
lcd.print("Module Not Found");
lcd.setCursor(0,1);
lcd.print("Check Connections");
while (1);
}
 
if (! rtc.begin())
Serial.println("Couldn't find RTC");
 
// rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
 
if (rtc.lostPower())
{
Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketc
rtc.adjust(DateTime(2018, 6, 7, 11, 0, 0));
// This line sets the RTC with an explicit date & time, for
// June 7, 2018 at 11am you would call:
// rtc.adjust(DateTime(2018, 6, 7, 11, 0, 0));
}
lcd.setCursor(0,0);
lcd.print(" Press Match to ");
lcd.setCursor(0,1);
lcd.print(" Start System");
delay(3000);
 
user1=EEPROM.read(1000);
user2=EEPROM.read(1001);
user3=EEPROM.read(1002);
user4=EEPROM.read(1003);
user5=EEPROM.read(1004);
lcd.clear();
digitalWrite(indFinger, HIGH);
 
}
 
void loop()
{
now = rtc.now();
lcd.setCursor(0,0);
lcd.print("Time: ");
lcd.print(now.hour(), DEC);
lcd.print(':');
lcd.print(now.minute(), DEC);
lcd.print(':');
lcd.print(now.second(), DEC);
lcd.print(" ");
lcd.setCursor(0,1);
lcd.print("Date: ");
lcd.print(now.day(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print('/');
lcd.print(now.year(), DEC);
lcd.print(" ");
delay(500);
int result=getFingerprintIDez();
if(result>0)
{
digitalWrite(indFinger, LOW);
digitalWrite(buzzer, HIGH);
delay(100);
digitalWrite(buzzer, LOW);
lcd.clear();
lcd.print("ID:");
lcd.print(result);
lcd.setCursor(0,1);
lcd.print("Please Wait....");
delay(1000);
attendance(result);
lcd.clear();
lcd.print("Attendance ");
lcd.setCursor(0,1);
lcd.print("Registered");
delay(1000);
digitalWrite(indFinger, HIGH);
return;
}
checkKeys();
delay(300);
}
 
// dmyyhms - 7 bytes
void attendance(int id)
{
int user=0,eepLoc=0;
if(id == 1)
{
eepLoc=0;
user=user1++;
}
else if(id == 2)
{
eepLoc=210;
user=user2++;
}
else if(id == 3)
{
eepLoc=420;
user=user3++;
}
else if(id == 4)
{
eepLoc=630;
user=user4++;
}
else if(id == 5)
{
eepLoc=0;
user=user5++;
}
else if(id == 6)
{
eepLoc=840;
user=user5++;
}
else if(id == 7)
{
eepLoc=1050;
user=user7++;
}
else if(id == 8)
{
eepLoc=1260;
user=user8++;
}
else if(id == 9)
{
eepLoc=1470;
user=user9++;
}
else if(id == 10)
{
eepLoc=1680;
user=user8++;
}
/*else if(id == 5) // fifth user
{
eepLoc=840;
user=user5++;
}*/
else
return;
 
int eepIndex=(user*7)+eepLoc;
EEPROM.write(eepIndex++, now.hour());
EEPROM.write(eepIndex++, now.minute());
EEPROM.write(eepIndex++, now.second());
EEPROM.write(eepIndex++, now.day());
EEPROM.write(eepIndex++, now.month());
EEPROM.write(eepIndex++, now.year()>>8 );
EEPROM.write(eepIndex++, now.year());
 
EEPROM.write(1000,user1);
EEPROM.write(1001,user2);
EEPROM.write(1002,user3);
EEPROM.write(1003,user4);
// EEPROM.write(4,user5); // figth user
}
 
void checkKeys()
{
if(digitalRead(register_back) == 0)
{
lcd.clear();
lcd.print("Please Wait");
delay(1000);
while(digitalRead(register_back) == 0);
Enroll();
}
 
else if(digitalRead(delete_ok) == 0)
{
lcd.clear();
lcd.print("Please Wait");
delay(1000);
delet();
}
}
 
void Enroll()
{
int count=1;
lcd.clear();
lcd.print("Enter Finger ID:");
 
while(1)
{
lcd.setCursor(0,1);
lcd.print(count);
if(digitalRead(forward) == 0)
{
count++;
if(count>records)
count=1;
delay(500);
}
 
else if(digitalRead(reverse) == 0)
{
count--;
if(count<1)
count=records;
delay(500);
}
else if(digitalRead(delete_ok) == 0)
{
id=count;
getFingerprintEnroll();
for(int i=0;i<records;i++)
{
if(EEPROM.read(i) != 0xff)
{
EEPROM.write(i, id);
break;
}
}
return;
}
 
else if(digitalRead(register_back) == 0)
{
return;
}
}
}
 
void delet()
{
int count=1;
lcd.clear();
lcd.print("Enter Finger ID");
 
while(1)
{
lcd.setCursor(0,1);
lcd.print(count);
if(digitalRead(forward) == 0)
{
count++;
if(count>records)
count=1;
delay(500);
}
 
else if(digitalRead(reverse) == 0)
{
count--;
if(count<1)
count=records;
delay(500);
}
else if(digitalRead(delete_ok) == 0)
{
id=count;
deleteFingerprint(id);
for(int i=0;i<records;i++)
{
if(EEPROM.read(i) == id)
{
EEPROM.write(i, 0xff);
break;
}
}
return;
}
 
else if(digitalRead(register_back) == 0)
{
return;
}
}
}
 
uint8_t getFingerprintEnroll()
{
int p = -1;
lcd.clear();
lcd.print("finger ID:");
lcd.print(id);
lcd.setCursor(0,1);
lcd.print("Place Finger");
delay(2000);
while (p != FINGERPRINT_OK)
{
p = finger.getImage();
switch (p)
{
case FINGERPRINT_OK:
Serial.println("Image taken");
lcd.clear();
lcd.print("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.println("No Finger");
lcd.clear();
lcd.print("No Finger Found");
break;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
lcd.clear();
lcd.print("Comm Error");
break;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
lcd.clear();
lcd.print("Imaging Error");
break;
default:
Serial.println("Unknown error");
lcd.clear();
lcd.print("Unknown Error");
break;
}
}
 
// OK success!
 
p = finger.image2Tz(1);
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image converted");
lcd.clear();
lcd.print("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
lcd.clear();
lcd.print("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
lcd.clear();
lcd.print("Comm Error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
lcd.clear();
lcd.print("Feature Not Found");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
lcd.clear();
lcd.print("Feature Not Found");
return p;
default:
Serial.println("Unknown error");
lcd.clear();
lcd.print("Unknown Error");
return p;
}
 
Serial.println("Remove finger");
lcd.clear();
lcd.print("Remove Finger");
delay(2000);
p = 0;
while (p != FINGERPRINT_NOFINGER) {
p = finger.getImage();
}
Serial.print("ID "); Serial.println(id);
p = -1;
Serial.println("Place same finger again");
lcd.clear();
lcd.print("Place Finger");
lcd.setCursor(0,1);
lcd.print(" Again");
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.print(".");
break;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
break;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
break;
default:
Serial.println("Unknown error");
return;
}
}
 
// OK success!
 
p = finger.image2Tz(2);
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("Unknown error");
return p;
}
 
// OK converted!
Serial.print("Creating model for #"); Serial.println(id);
 
p = finger.createModel();
if (p == FINGERPRINT_OK) {
Serial.println("Prints matched!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_ENROLLMISMATCH) {
Serial.println("Fingerprints did not match");
return p;
} else {
Serial.println("Unknown error");
return p;
}
 
Serial.print("ID "); Serial.println(id);
p = finger.storeModel(id);
if (p == FINGERPRINT_OK) {
Serial.println("Stored!");
lcd.clear();
lcd.print(" Finger Stored!");
delay(2000);
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_BADLOCATION) {
Serial.println("Could not store in that location");
return p;
} else if (p == FINGERPRINT_FLASHERR) {
Serial.println("Error writing to flash");
return p;
}
else {
Serial.println("Unknown error");
return p;
}
}
 
int getFingerprintIDez()
{
uint8_t p = finger.getImage();
 
if (p != FINGERPRINT_OK)
return -1;
 
p = finger.image2Tz();
if (p != FINGERPRINT_OK)
return -1;
 
p = finger.fingerFastSearch();
if (p != FINGERPRINT_OK)
{
lcd.clear();
lcd.print("Finger Not Found");
lcd.setCursor(0,1);
lcd.print("Try Later");
delay(2000);
return -1;
}
// found a match!
Serial.print("Found ID #");
Serial.print(finger.fingerID);
return finger.fingerID;
}
 
uint8_t deleteFingerprint(uint8_t id)
{
uint8_t p = -1;
lcd.clear();
lcd.print("Please wait");
p = finger.deleteModel(id);
if (p == FINGERPRINT_OK)
{
Serial.println("Deleted!");
lcd.clear();
lcd.print("Finger Deleted");
lcd.setCursor(0,1);
lcd.print("Successfully");
delay(1000);
}
 
else
{
Serial.print("Something Wrong");
lcd.clear();
lcd.print("Something Wrong");
lcd.setCursor(0,1);
lcd.print("Try Again Later");
delay(2000);
return p;
}
}
 
void download(int eepIndex)
{
 
if(EEPROM.read(eepIndex) != 0xff)
{
Serial.print("T->");
if(EEPROM.read(eepIndex)<10)
Serial.print('0');
Serial.print(EEPROM.read(eepIndex++));
Serial.print(':');
if(EEPROM.read(eepIndex)<10)
Serial.print('0');
Serial.print(EEPROM.read(eepIndex++));
Serial.print(':');
if(EEPROM.read(eepIndex)<10)
Serial.print('0');
Serial.print(EEPROM.read(eepIndex++));
Serial.print(" D->");
if(EEPROM.read(eepIndex)<10)
Serial.print('0');
Serial.print(EEPROM.read(eepIndex++));
Serial.print('/');
if(EEPROM.read(eepIndex)<10)
Serial.print('0');
Serial.print(EEPROM.read(eepIndex++));
Serial.print('/');
Serial.print(EEPROM.read(eepIndex++)<<8 | EEPROM.read(eepInd
}
else
{
Serial.print("---------------------------");
}
 
Serial.print(" ");
}

Working Explanation:
The working of the Fingerprint Sensor Based Biometric
Attendance System. In this project, we have used a DS3231 RTC
Module for time & date display. We used 1 LED for power
indication, 1 buzzer for different function indication. We have
interfaced 16*2 LCD which displays everything whenever the
finger is placed or removed, or registering attendance or
downloading data.

We have used 4 push buttons which are used to control the


entire system. The functions of each button are:

1. Register/Back Button – Used for enrolling new fingerprint as


well as reversing the back process or going back

2. Delete/OK Button – This Button is used for deleting the


earlier stored fingerprint system as well as granting access as an
OK selection.

3. Forward Button – Used for moving forward while selecting


the memory location for storing or deleting fingerprints.

4. Reverse Button – Used for moving backward while selecting


memory location for storing or deleting fingerprints.
Enrolling New Fingerprint

To enroll New Fingerprint Click on the Enroll button. Then select


the memory location where you want to store your fingerprint
using the UP/DOWN button. Then click on OK. Put your finger
and remove your finger as the LCD instructs. Put your finger
again. So finally your fingerprint gets stored.

Deleting Stored Fingerprint

To delete the fingerprint which is already clicked on DEL Button.


Then select the memory location where your fingerprint was
stored earlier using the UP/DOWN button. Then click on OK. So
finally your fingerprint is deleted.

Downloading Data:

Simply click on Register/Back Button and reset the button


together. At this movement, the serial monitor should be
opened.

Video Preview/Explanation & Working:

Fingerprint Based Biometric Attendance System using Arduino


Watch this video on YouTube.

64 Comments
Shri k
October 19, 2018 at 12:22 PM

‘RTC_DS3231’ does not name a type

why this error occur…????

Can u help out..????


Loading...

Reply

Alex Newton
October 19, 2018 at 9:18 PM

You might have used incorrect library.


Loading...

Reply

manuel
November 11, 2018 at 11:59 AM

what is the type of log file?

can i download the log as CSV file?


Loading...

Reply

Nafiul
March 9, 2019 at 2:02 PM

How can i download data as a attendance data sheet?


Loading...

Reply
Shahulhameed
January 10, 2019 at 7:28 AM

How to expand the storage for enrolling more than 100 students
attendance for one month.
Loading...

Reply

Alex Newton
January 10, 2019 at 11:40 AM

it can store 200 fingerprint.


Loading...

Reply

shahulhameed
January 16, 2019 at 9:59 AM

i downloaded the library file from this link, but ‘RTC_DS3231’ does
not name a type

why this error occur…????


Loading...

Reply
Trisha
January 23, 2019 at 11:01 AM

Can i use an sd card instead of an eeprom?


Loading...

Reply

Alex Newton
January 23, 2019 at 2:49 PM

You can add additional sd card. EEPROM is used for R305 Finger
image storage.
Loading...

Reply

M D NAIDU
January 23, 2019 at 6:34 PM

Hellooo

Can any one please provide code for GSM module interface with
above project code
Loading...

Reply
M D NAIDU
January 23, 2019 at 6:40 PM

I need code for above project with GSM sim900 module for my final
year project

Please can anyone help to me

[email protected]
Loading...

Reply

rajkumar
April 3, 2019 at 6:09 AM

can you provide the code to connect this project to iot plzz…or
any webpage
Loading...

Reply

Ajmal
January 27, 2019 at 10:52 PM

The uploading is error due to high size of programme. How to


overcome that?
Loading...

Reply

Sendhu
January 28, 2019 at 10:48 AM

Can anyone say why the eeprom is incremented by 210?


Loading...

Reply
Alex Cookiecream
February 10, 2019 at 9:46 PM

When I entered the code, the lcd blinks alternatively with the
fingerprint scanner and it does not show any characters. I already
checked the wirings and the code, still not fixed. Someone help me.
Loading...

Reply

ovi mahmud
February 18, 2019 at 4:21 PM

i downloaded the library file from your link, but shows


……‘RTC_DS3231’ does not name a type
Loading...

Reply

Parthvi Kher
February 23, 2019 at 7:16 PM

Hey,
It shows nothing after “Attendance System” on the LCD and ” sensor
found” on serial monitor. Also, I am using Mega 2560 board instead
of Uno.
Loading...

Reply

Alex Newton
February 23, 2019 at 11:06 PM

Did you check your software serial pin of Mega. All the pins
doesn’t support interrupt. Assign correct software serial pin.
Loading...

Reply
Nihal
March 5, 2019 at 4:28 PM

Nothing is displaying on the LCD please help


Loading...

Reply

Nafiul
March 9, 2019 at 2:06 PM

when i push enroll button and arduino reset button at the same
time, it always takes reset, not downloading the data, what can i do
now pease help…
Loading...

Reply

Hieu
April 14, 2019 at 9:12 AM

hello I got error code like this:

C:\Users\Hieupham\Desktop\sketch_apr08a\sketch_apr12a\sketch_
apr12a\sketch_apr12a\sketch_apr12a\sketch_apr13a\sketch_apr13a
.ino: In function ‘uint8_t getFingerprintEnroll()’:
C:\Users\Hieupham\Desktop\sketch_apr08a\sketch_apr12a\sketch_
apr12a\sketch_apr12a\sketch_apr12a\sketch_apr13a\sketch_apr13a
.ino:527:1: warning: return-statement with no value, in function
returning ‘uint8_t {aka unsigned char}’ [-fpermissive]
return;
^
Loading...

Reply
lyrhoortal
May 4, 2019 at 6:07 AM

Pls Help the code is not okay


Loading...

Reply

awol
May 5, 2019 at 1:14 PM

I need code for above project with arduino uno software for my
semister(4yr) project.

Please can anyone help to me,

[email protected]
Loading...

Reply

Garv
August 11, 2019 at 5:19 PM

if anyone is having prob with RTC_DS3231/1307 then just remove


the space between RTC_DS3231/1307 and rtc and then the line will
look like this:
RTC_DS1307rtc;
Loading...

Reply
Shinteri
August 24, 2019 at 8:57 AM

Why does your diagram circuit doesnt same with your real
project….and what wire did u use. With head or just wire?
Loading...

Reply

Alex Newton
August 24, 2019 at 8:58 AM

Its the same circuit diagram. The circuit depends upon coding and
pin assignment. If you are making this project, go with the same
circuit.
Loading...

Reply

shinteri
August 28, 2019 at 11:07 AM

hello sir, may i ask u for the coding i want to ask you something. i
have download the zip.file for fingerprint and rtc module. how to
include that zip file…..help me
Loading...

Reply

Alex Newton
August 28, 2019 at 11:13 AM

Through library manager


Loading...
sum
September 10, 2019 at 8:22 PM

can i use other fingerprinit module? also a adafruitfingerprint


Loading...

Reply

Alex Newton
September 10, 2019 at 8:28 PM

Yes R305, R307 or Adafruit Fingerprint Senspr can be used.


Loading...

Reply

Naveenkumar
September 10, 2019 at 8:32 PM

Sir,Nothing is displaying in lcd lcd screen.pls help


Loading...

Reply

Alex Newton
September 10, 2019 at 8:34 PM

Check lcd connection with arduino and also recheck with program
code. Also use 10k potentiometer at pin 3 of lcd to adjust the
contrast.
Loading...

Reply
Tugino
September 14, 2019 at 11:30 PM

no data in serial!
Loading...

Reply

Alex Newton
September 14, 2019 at 11:31 PM

Check baud rate. Set it to 9600.


Loading...

Reply

Sum
September 16, 2019 at 6:37 PM

I press the register and reset button at the same time, but cant
download the data.
Loading...

Reply

HING
September 21, 2019 at 9:01 PM

I press the register and reset button at the same time, but cant
download the data.
Loading...

Reply
HING BING CHEN
September 22, 2019 at 5:46 AM

why i cannot downloading the data??


Loading...

Reply

Alex Newton
September 22, 2019 at 9:29 AM

If you are unable to download the data, then try this code.
https://drive.google.com/open?id=13JE8boYp-
cXQltzA6UmHC7J5ILtOX2d5

Don’t forget to change the pin assignment according to this code


and your hardware pin mapping.
Loading...

Reply

HING BING CHEN


September 22, 2019 at 4:37 PM

already can download but when download data, data of user


5 will shown the time and date although i have not taking
attendance of user 5
Loading...

Alex Newton
September 22, 2019 at 4:37 PM

Modify the code according to num of users.


Loading...

suman
September 24, 2019 at 6:27 AM

sir when i change time and date in coding but in LCD not change.
Loading...

Reply
Gagan
October 10, 2019 at 1:48 PM

Hey, can you please tell me how many students can i enroll by this
fingerprint based attendance system bcz in one website i saw that
only 4 persons could be enrolled bcz arduino has only 1024 bytes &
i want to enroll at least 60 students so is it possible? Please reply
ASAP. Thanks!
Loading...

Reply

Alex Newton
October 10, 2019 at 1:49 PM

200 fingerprints can be stored. Fingerprints data get stored in


FIngerprint Sensor EEPROM not in Arduino Memory.
Loading...

Reply

Fuse Box
October 25, 2019 at 8:44 PM

Why does it not download data when I press the register and reset
button at the same time? It only resets every time.
Loading...

Reply

Alex Newton
October 25, 2019 at 8:54 PM

Those who are having the problem of downloading fingerprint


data. Please try with this code https://drive.google.com/open?
id=1YVyGnCoR3KfHjFFrMdyf7a63Z-fED4Wy.

Note: Modify code or the circuit according to pin assignment.


Loading...

Reply
dilsh
October 28, 2019 at 10:42 PM

shorturl.at/anvJY

Can I use this fingerprint module.Please check this module and let
me know.I need to do this project.Please reply me as soon as
possible.
Loading...

Reply

Dilsh
October 29, 2019 at 11:22 AM

shorturl.at/ltxR2 Can I use this sensor module instead of using R305.


Please reply me as soon as you can. Because I need to do this as my
project.
Loading...

Reply

Alex Newton
October 29, 2019 at 11:32 AM

You can try


Loading...

Reply

Aakaash
December 13, 2019 at 6:44 PM

When I try to download the data to the serial monitor, I get the
attendance logs, but say if I scanned my finger (User 1) only say 5
times, I should get only those date and times. But alongwith it a
fixed value for all the records until 30 which I didn’t use.

What needs to be corrected? Please help.


Loading...

Reply
Aakaash
December 13, 2019 at 7:03 PM

I am able to download the data to the serial monitor. But alongwith


the records where the fingers have actually been scanned, a fixed
unrelated value is also being displayed, instead of dashes. What
needs to be corrected here? Please help.
Loading...

Reply

Victoria
February 25, 2020 at 8:10 AM

Please, when I verify it, it says

“download not declared in this scope”

“I not declared in this scope”

Please how can I come about it

Please is urgent.
Loading...

Reply

hakimi amir
March 3, 2020 at 7:39 PM

Hello sir if on the display said module not found check connection
what i need to d0
Loading...

Reply

Mr. Alam
March 3, 2020 at 7:41 PM

Check connection of fingerprint sensor.

Check whether you have reversed the tx rx connection.


Loading...

Reply
Sudheer
March 5, 2020 at 1:08 AM

I given connection correctly but it’s coming finger print module does
not found give suggestions for it
Loading...

Reply

Sahil verma
March 10, 2020 at 10:52 AM

I also face this same problem how to fix it plz tell sir
Loading...

Reply

Sahil verma
March 10, 2020 at 12:22 PM

I will also use a second code which you can provide us but in it the
lcd error is occur and can’t download data plz tell us
Loading...

Reply

Sahil verma
March 10, 2020 at 1:58 PM

Plz tell sir now what I can do I made all project but when I get data I
can’t download it plz tell some solution
Loading...

Reply
Solution is Science
July 23, 2020 at 3:27 PM

Hello sir…once…i did message you for help…now can you help me in
completing this circuit…i did buy things that needed for this
fingerprint…but some are not exactly same as yours…my old
teacher said even the component is diffrent…..the usage of that
things still same….but because of differences make me headache to
choose wether to follow the diagram or needed to change a little
bit…also about the coding…when the items is diffrent…does i need
to change a little bit the coding….and the important one….does you
have heart to help me completing this project until it done 100%? I
have the skills to loop…but in coding i was weak actually….so if you
can teach and guide me…i would love that 100%….i hope i can finish
😊
back this project that have been let go for long time…..
Loading...

Reply

ivan raju
October 31, 2020 at 6:52 PM

still cant get it


Loading...

Reply

Jilani Safdar
January 22, 2021 at 7:14 PM

you should add the RTC lib not this one only that mentioned
Loading...

Reply
sahal imran
February 21, 2021 at 5:35 PM

hi bro!

Arduino is not downloading the data

please help
Loading...

Reply

Uttam Darji
March 9, 2021 at 6:37 PM

you get the solution of your problem?

because i have a same problem.


Loading...

Reply

Deepak
September 30, 2021 at 3:09 PM

Is it possible to add seperate download button to this system bcs,


the arduino is resetting when we click reset button
Loading...

Reply

Deepak
September 30, 2021 at 3:11 PM

Me too need help


Loading...

Reply

You might also like