IoT Based Fingerprint Biometric Attendance System Using NodeMCU (Esp8266)


In this project, I will tell you how to build a Portable IoT based Fingerprint Biometric Attendance System using NodeMCU ESP8266, 0.96” OLED Display & R307 Fingerprint Sensor. The ESP8266 Wi-Fi Module will collect the fingerprint data from the multiple users and sends it over the internet to a website. The Enrolment of fingerprints is done on the server using any fingerprint sensor like R305 or R307 that is available on the market and verification of the fingerprint will be done on the webserver while fingerprint templates are transmitted over the WiFi.

The website used in this project is developed using PHP, it 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.

Biometric Attendance systems are commonly used systems to mark the presence of students or employees in the schools and offices. This project has a wide scope in the modern era of schools, colleges, business organizations, offices where accurate attendance data is required. Biometric attendance system will make the process of taking very easy and reliable. Thus, by using the fingerprint sensor, the system will become more secure for both parties.

 Website Setting :-

The website used in this project can be configured as global/Local. You need to have a unique domain name and to set up a global website. if you have a website and a server you can simply download the file and copy to the cPanel/website file manager and modify the connectDb.php and install.php files with your website credentials. but having website domain and hosting is will cost you more.

In case if you don’t wanna spend money on website management, then you can configure your website as local and use your own computer as a server to store the data locally in localhost.

For that, you can use any local server provider Xampp or Wamp. I have given both download links below you can choose either.

Download and install Xampp from the link here: Download XAMPP

Download and install Xampp from the link here: Download Wamp

I will use Xampp to demonstrate further process. Choose an appropriate file for your operating system. Xampp is available for Windows, Linux Mac.
Once the file downloaded succesfully install the Xampp, the installation process is very easy, it is like normal software installation only.
After successful installation, simply download the file and copy to the folder C:\xampp\htdocs in your computer. This folder is the location where all your website data will store.

Circuit Diagram :-

The I2C pins of OLED Display, i.e SDA & SCL is connected to NodeMCU D1 & D2 pins respectively. Similarly, the fingerprint sensor is also connected to UART pins D5 & D6. The fingerprint sensor Tx and Rx wires color may vary. So connect it by finding appropriate color wires else the module won’t be detected by NodeMCU.

The R307 fingerprint sensor is supplied with 5V through Vin pins of NodeMCU. In my case, the sensor didn’t work at 3.3V. because sensor operating voltage is 3.6v to 6v Similarly, connect OLED Vin pin to +5V of NodeMCU.


So now you can start the registration process of the user on the website using the following link: http://localhost/biometricattendance/ManageUsers.php

The whole process of registration is explained very well in the video. You can follow the video for the complete registration process. The user fingerprint is taken twice i.e as mentioned in the datasheet and stored in EEPROM of Fingerprint Sensor. It is to be noted that only 127 fingerprints can be stored in this R307 module.

Final Circuits :-

 GitHub Link :-  Prateek

 What's App Number :- +918830584864


  1. thankx a lot
    can i get your watsap no

  2. thankx a lot
    can i get your watsap no

  3. It is showing sensor not found

  4. can you share your email please?

  5. Could you check your shared link for It is broken now. ^ ^;;

  6. i face a problem in arduino code,can you help me?

  7. There is problem in ssd1306 library. its not showing full content .Help me to fix