Arduino Projects

Fingerprint Based Biometric Attendance System using Arduino & VB.net

Description:

 

Fingerprint Based Biometric Attendance System– This Tutorial is about the Arduino-based Fingerprint attendance which is also called a Biometric attendance system. The students are marked Present, Late, and absent depending on the time, The attendance application will be designed in Microsoft visual basic 2010 express edition and the Arduino programming will be done in the Arduino IDE “C Language”.

Another more advanced version of the student’s attendance system is based on Firebase Database, RFID, GSM, and Nodemcu ESP8266.

 A few days backs I posted a tutorial on the fingerprint module in which I covered all the basics, including its interfacing with Arduino, and how to enroll fingers. In that tutorial, I already enrolled three fingers, so I will be using the same fingers to represent student1, student 2, and student3. I highly recommend first you should watch this tutorial.

This is a very basic student’s attendance system without a database, while in the upcoming tutorial I will modify this project and include a database, then each student record can be edited, checked, deleted, or updated.

For the complete step-by-step explanation, you can watch the Video Tutorial given at the end of this article.


Amazon Links:

Arduino Nano USB-C Type (Recommended)

12v Adaptor:

Fingerprint Module:

Other Tools and Components:

ESP32 WiFi + Bluetooth Module (Recommended)

Top Arduino Sensors:

Super Starter kit for Beginners

Digital Oscilloscopes

Variable Supply

Digital Multimeter

Soldering iron kits

PCB small portable drill machines

*Please Note: These are affiliate links. I may make a commission if you buy the components through these links. I would appreciate your support in this way!

Fingerprint Module that we will be using with the Arduino:

fingerprint attendance

fingerprint attendance

This is the fingerprint module that we will be using today with the Arduino. It has a total of six wires. While some fingerprint modules have 4 wires, but their use is exactly the same. As you can this module has six wires, but we will be using only 4 wires, Red, green, white and black.

fingerprint attendance

We don’t need the yellow and blue wires.

fingerprint attendance

connect the red wire with the Arduino’s 5v.

Connect the black wire of the fingerprint module with the Arduino’s ground.

Connect the green wire with pin 4 of the Arduino and connect the white wire with pin5 of the Arduino. so now our interfacing is completed.

fingerprint attendance
Now it’s time to enroll fingers. For Fingers enrolling watch my Previous Tutorial “Click Here

Circuit Diagram:

Circuit Diagram of the Arduino FingerPrint Attendance system.
fingerprint attendance

As you can see in the circuit Diagram a 433Mhz RF transmitter is also used which will be used in the future project. In this tutorial, you can neglect this RF Transmitter. The Finger Print module is connected with the Arduino’s pin number 4 and Pin number 5. The 5v pin of the Finger Print Module will be connected with the Arduino 5v pin and ground of the Finger Print module will be connected with the ground of Arduino.


fingerprint attendance Programming:

This project is based on two programs, Arduino programming, and Vb.net Programming. Before, you start the programming, first of all, make sure that you download the necessary libraries.

fingerprint attendance Arduino Programming:

#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>

int getFingerprintIDez();
char data ;

// pin #4 is IN from sensor (GREEN wire)
// pin #5 is OUT from arduino (WHITE wire)
SoftwareSerial mySerial(4, 5);

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

void setup()
{
Serial.begin(9600);
// Bits per sec

Serial.println(“fingertest”);

// set the data rate for the sensor serial port
finger.begin(57600);

if (finger.verifyPassword()) {
Serial.println(“Found fingerprint sensor!”);
} else {
Serial.println(“Did not find fingerprint sensor :(“);
while (1);
}

Serial.println(“Waiting for valid finger…”);

}

void loop() // run over and over again
{

getFingerprintIDez();
}

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;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println(“Communication error”);
return p;
case FINGERPRINT_IMAGEFAIL:
Serial.println(“Imaging error”);
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);
}

// returns -1 if failed, otherwise returns ID #
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) return -1;

// found a match!
// Serial.print(“Found ID #”); Serial.print(finger.fingerID);
// Serial.print(” with confidence of “); Serial.println(finger.confidence);

if(finger.fingerID == 11)
{

Serial.println(“stu1”);

delay(1000);

}
if(finger.fingerID == 2)
{

Serial.println(“stu2”);

delay(1000);

}
if(finger.fingerID == 3)
{

Serial.println(“stu3”);

delay(1000);
}

else
return finger.fingerID;

// Serial.println(“Invalid User\n”);

}

fingerprint attendance VB.net Application Programming:

fingerprint attendance

This is how the final application looks like. For the Detailed step by step explanation watch Video tutorial available at the end of this article.


Watch Video Tutorial:

Engr Fahad

My name is Shahzada Fahad and I am an Electrical Engineer. I have been doing Job in UAE as a site engineer in an Electrical Construction Company. Currently, I am running my own YouTube channel "Electronic Clinic", and managing this Website. My Hobbies are * Watching Movies * Music * Martial Arts * Photography * Travelling * Make Sketches and so on...

4 Comments

  1. Excellent post. I was checking continuously this blog and I’m impressed! Very useful info particularly the last part gdakbbgedefc

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button