Biometric Attendance System
Biometric Attendance System
Introduction:
Existing System:
Traditional attendance systems rely on manual methods such as paper registers or swipe
cards, prone to inaccuracies and time-consuming processes, leading to inefficiencies in
attendance tracking and management.
Proposed System:
Our proposed system integrates biometric recognition technology, providing a more reliable
and convenient method for recording employee attendance. By utilizing unique biological
traits such as fingerprints or facial features, it ensures accurate and tamper-proof attendance
data.
Devices Description:
Components Description:
Specifications:
Future Scope:
BLOCK DIAGRAM:
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
#define FINGERPRINT_RX 2
#define FINGERPRINT_TX 3
void setup() {
Serial.begin(9600);
while (!Serial); // For Yun/Leo/Micro/Zero/...
if (!finger.begin(57600)) {
Serial.println("Couldn't find fingerprint sensor :(");
while (1);
}
Serial.println("Fingerprint sensor found!");
finger.getTemplateCount();
Serial.print("Sensor contains "); Serial.print(finger.templateCount);
Serial.println(" templates");
Serial.println("Waiting for valid finger...");
}
void loop() {
getFingerprintID();
delay(50); //don't ned to run this at full speed.
}
uint8_t getFingerprintID() {
uint8_t p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.println("No finger detected");
return p;
default:
Serial.println("Unknown error");
return p;
}
// OK success!
p = finger.image2Tz();
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!
p = finger.fingerFastSearch();
if (p == FINGERPRINT_OK) {
Serial.println("Found a print match!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_NOTFOUND) {
Serial.println("Did not find a match");
return p;
} else {
Serial.println("Unknown error");
return p;
}
// Found a match!
Serial.print("Found ID #"); Serial.print(finger.fingerID);
Serial.print(" with confidence of "); Serial.println(finger.confidence);
return finger.fingerID;
}