Machine Learning, Sensors

IoT Biometric Fingerprint Attendance System using ESP8266

Overview

In this project IoT Biometric Project, we will learn how to build IoT based Biometric Fingerprint Attendance System using NodeMCU ESP8266  12E, 0.96” OLED Display & R305 Fingerprint Sensor. The ESP8266 Wi-Fi Module will collect the fingerprint data from multiple users and sends it over the internet to a website. The Enrolment of fingerprints is done on the Server using R305 or R307  or any other compatible Fingerprint Sensor and verification is done on the client with the transmission of fingerprint templates over the network.

The website that is coded in PHP has a database and records of attendance. By logging into the website, you can collect all the attendance records of each user including personal details as well as incoming & outgoing timing. The data can also be downloaded and exported to an excel sheet.

Conventional authentication technologies like RFID tags and authentication cards have a lot of weaknesses, the biometric method of authentication is a prompt replacement for this. Biometrics such as fingerprints, voices and ECG signals are unique human characters that cannot be tampered or replicated. This facilitates real-time system implementations. Biometric Attendance systems are commonly used systems to mark the presence in offices and schools as well as in Biometric Security Lock. This project has a wide application in schools, colleges, business organizations, offices where marking of attendance is required accurately with time. Thus, by using the fingerprint sensor, the system will become more secure for the users.

ill of Materials

The following are the components required to make IoT Based Biometric Fingerprint Attendance System. All the components can be purchased from Amazon. The purchase links are given below.

S.N.ComponentsQuantityPurchase Links
1NodeMCU ESP8266  Board1RoboticsDnA.in
2R305/R307 Fingerprint Sensor1RoboticsDnA.in
30.96″ I2C OLED Display1RoboticsDnA.in
4Connecting Wires10RoboticsDnA.in
5Breadboard1RoboticsDnA.in

R305 Fingerprint Scanner Sensor Module

Introduction

This is a finger print 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 finger print 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 systems, attendance systems, safety deposit boxes, car door locking systems.

Features

1. Integrated image collecting and algorithm chip together, ALL-in-One
2. The fingerprint reader can conduct secondary development, can be 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

Specification

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

0.96″ I2C OLED Display

This is a 0.96 inch blue OLED display module. The display module can be interfaced with any microcontroller using SPI/IIC protocols. It is having a resolution of 128×64. The package includes display board, display,4 pin male header pre-soldered to board.

OLED (Organic Light-Emitting Diode) is a self light-emitting technology composed of a thin, multi-layered organic film placed between an anode and cathode. In contrast to LCD technology, OLED does not require a backlight. OLED possesses high application potential for virtually all types of displays and is regarded as the ultimate technology for the next generation of flat-panel displays.


Circuit Diagram: IOT Based Biometric Fingerprint Attendance System

The above circuit diagram shows how an OLED Display & Fingerprint Sensor is interfaced with NodeMCU ESP8266  12E Board. The I2C pins of OLED Display, i.e SDA & SCL are connected to NodeMCU D2 & D1 pins respectively. Similarly, the fingerprint sensor is connected to UART pins D5 & D6. The fingerprint sensor Tx and Rx wire’s color may vary. In my case, the color is yellow and blue where yellow is Tx and Blue is Rx. So connect it by finding appropriate color wires else the module won’t be detected by NodeMCU.

The R305 fingerprint sensor is supplied with 5V through Vin pins of NodeMCU. In my case, the sensor didn’t work at 3.3V. Similarly, connect OLED Vcc pin to 3.3V of NodeMCU.

Setting Up the Website

Here we can set up a website if you have a website and a server. In case you don’t wanna spend money on website management, then you can use your computer IP as a server to store the data locally in localhost.

First Download and install Xampp from the link here: Download XAMPP

Once the download and installation is completed copy the following folder:Biometricattendance Folder to C:\xampp\htdocs. This is the location of the website in your C drive.

The website setting process is a little long which is explained in the video below: You can follow the video to completely set up the website.

Source Code/Program

Below is the source code for IoT Based Biometric Fingerprint Attendance System. The code credit goes to original author of the code: Electronics Tech YouTube Channel

Make Sure to change the wifi username and password from this line below:

Also, change the IP Address if you are using Xampp or change the website server if you are on real website from the line below:

String link = "http://YourComputerIP/biometricattendance/getdata.php"; //computer IP or the server domain

Add the following libraries via library manager or simply by adding the following zip files:
1. OLED GFX Library: Download
2. SSD1306 Library: Download
3. Adafruit Fingerprint Sensor Library: Download

Result

Once the Code is uploaded the NodeMCU will boot up with the Adafruit logo. And then it will try the connection to the wifi. Once it gets Connected it will display Connected. This log can be viewed on Serial Monitor as well as in OLED Display

So now you can start registering the user using the website. The whole process of registration is explained in the video below. You can follow the video for the registration process. The user fingerprint is taken twice and stored in the EEPROM of the Fingerprint Sensor. It is to be noted that only 127 fingerprints can be stored in this R305/R307 module.

So once the fingerprint of multiple users is stored, you can start scanning and registering the attendance. In case the fingerprint is not matched it will display an error message as shown in the figure below.

When a registered user scans his finger for the first time it will display the welcome message.

When a registered user scans his finger for the second time it will display the Good-Bye message.

Finally you can see the entire data of the users on the website as shown below:

For understanding the whole process: how to add, update and remove the users from the database follow the video tutorial below.


One thought on “IoT Biometric Fingerprint Attendance System using ESP8266

  1. Dhairyashil says:

    control reaches end of non-void function [-Werror=return-type]

    i am facing thiss error

Leave a Reply

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