SAGAR Mini 2
SAGAR Mini 2
SAGAR Mini 2
Ms.Kalyani Soni
1
CERTIFICATE
This is to certify that the project entitled Fingerprint attendance system is a bonafide
work of
submitted to the University of Mumbai in partial fulfillment of the requirement for the award
of Mini Project of SECOND Year,(SE Sem IV) in Electrical Engineering as laid down by
the University of Mumbai during academic year 2023-24.
( ) ( )
2
INDEX
SR. NAME OF TOPIC PAGE
NO. NUMBER
1 Introduction 5
1.1 Need
1.2 Definition
2 Comparative study. (similar projects 6
done previously)
3 Problem statement 8
4 Mini project design (principle and 9
working)
4.1 Block diagram
4.2 Principle
4.3 Working
5 Components/tools to be used 11
5.1 Components
5.2 Software
5.3 Source code
6 Troubleshooting 42
6.1 Problems/faults in project
6.2 Steps to solve problems/faults in the project
7 Futurescope 44
8 Project price 45
9 Advantages 46
10 Disadvantages 46
11 Applications 47
12 Result 47
13 Conclusion 48
14 References
3
INDEX
2 Figure no.5.1.1 11
References
Appendix: Datasheets of components
4
1. INTRODUCTION :-
1.1 NEED:-
An IoT-based fingerprint attendance system revolutionizes attendance
tracking for businesses, educational institutions, and organizations. By
seamlessly integrating IoT technology with biometric authentication, these
systems offer unparalleled accuracy, security, and convenience. They
streamline administrative processes, providing real-time data insights that
enable prompt decision-making. With the ability to effortlessly scale to
various organizational sizes, these systems ensure compliance with
regulatory requirements while minimizing costs in the long run. Moreover,
their contactless functionality prioritizes data security and promotes health
and safety measures. By fostering accountability through accurate attendance
records and deterring fraudulent behavior, IoT-based fingerprint attendance
systems serve as a cornerstone of efficient, secure, and compliant
organizational operations.
1.2 DEFINITION:-
An IoT-based attendance system is an innovative solution utilized by
organizations and institutions to monitor and manage the attendance of
individuals through the integration of Internet of Things (IoT) technology.
This system operates by capturing and analyzing the unique fingerprint
patterns of individuals using a fingerprint scanner or sensor connected to an
IoT network. By leveraging IoT capabilities, such as real-time data
transmission and remote access, the system accurately identifies and records
attendance by matching fingerprint data with pre-registered templates stored
in a centralized database. This advanced system offers unparalleled accuracy,
security, and efficiency, providing organizations with a reliable and
convenient method for tracking attendance while optimizing administrative
processes.
5
2. COMPARATIVE STUDY :-
Hardware Components:
Project: Utilizes a fingerprint scanner, microcontroller and OLED display
Commercial Products: Similar components are used in commercial solutions,
including fingerprint scanners, microcontrollers, and displays.
6
Integration and Connectivity:
Project: Limited integration capabilities with other systems due to its
embedded nature.
Commercial Products: Often designed for seamless integration with other
organizational systems and may offer connectivity options such as Wi-Fi or
Bluetooth.
7
3. PROBLEM STATEMENT :-
Susceptibility to Damage and Breakage: The system is sensitive and
prone to damage or breakage, requiring special care and handling to avoid
harm. This susceptibility increases the risk of downtime and operational
disruptions.
Vulnerability to Tampering and Misuse: The system lacks security
features to prevent tampering, alteration, or misuse through dishonest or
unethical methods. This vulnerability compromises the integrity of
attendance data and undermines the system's trustworthiness.
Absence of GPS Tracking Functionality: The system does not incorporate
GPS tracking technology, essential for real-time location monitoring.
Without GPS tracking, the system cannot trace the whereabouts of
individuals, limiting its applicability in scenarios where location tracking
is crucial for security or operational purposes.
8
4. Mini Project Design :-
4.1 Circuit Diagram:-
4.2 Principle :-
The above image shows a detailed circuit diagram built using an
ESP8266 microcontroller. In this setup, there are components,
including a fingerprint sensor and an OLED display(128*64). The
fingerprint module is R307 . All of these components are connected to
one another using various wires. This circuit diagram provides a clear
picture of the design and engineering involved in creating this system.
9
4.3 Working:-
The working of a Iot based fingerprint attendance system involves several steps
to accurately record and manage attendance. Here's a simplified explanation of
how such a system typically operates.
Fingerprint Enrollment: Initially, individuals who need to be tracked for
attendance, such as employees or students, must enroll in the system. During this
process, they place their finger on a fingerprint scanner. The scanner captures
their unique fingerprint pattern and creates a biometric template for future
verification.
Fingerprint Recognition: When it's time to record attendance, individuals simply
place their finger on the fingerprint scanner again. The system then compares the
presented fingerprint with the stored templates to identify the individual.
Verification: The system matches the captured fingerprint with the stored
template. If there's a match, the individual's attendance is recorded as present. If
there's no match, the attendance is not recorded, indicating an absence.
Attendance Logging: Successful verifications result in attendance records, which
are typically stored in a database. These records include a timestamp, the
individual's identity, and whether they were present or absent.
1
5.COMPONENTS/TOOLS TO BE USED :-
5.1 COMPONENTS :-
Figure no.5.1.1
ESP8266 :-
The ESP8266 is a versatile Wi-Fi module developed by Espressif Systems,
integrating a microcontroller unit and Wi-Fi radio. Widely used in IoT
projects due to its low cost and ease of use, it enables connectivity to Wi-Fi
networks and execution of custom code. Programmed using Arduino IDE,
Lua scripting, or other environments, it empowers developers to create a wide
range of Wi- Fi-enabled devices. Its compact size and popularity make it a
cornerstone in DIY electronics and IoT communities.
1
OLED display (128*64) :-
An OLED display with a resolution of 128x64 is a type of display panel
utilizing organic compounds to emit light. It features 128 pixels horizontally
and 64 pixels vertically. Renowned for low power consumption and high
contrast, it's commonly employed in wearable tech, portable devices, and IoT
projects. Interfaced with microcontrollers, it displays graphical or textual
information, offering versatility for diverse applications.
Wires :-
Jumper wires are short, insulated wires with connectors at both ends used in
electronics and prototyping. They come in different types, including male-to-
male, male-to-female, and female-to-female, with various lengths and colors.
Jumper wires are designed for quick and temporary connections between
electronic components like sensors, microcontrollers, and breadboards. They
are flexible, reusable, and an essential tool for circuit building, testing, and
experimentation in electronics and educational projects.
1
5.2 Software :-
Arduino ide :–
The Arduino IDE (Integrated Development Environment) is a pivotal
component of the Arduino platform, offering an open-source, user-friendly,
and versatile environment for programming Arduino microcontroller boards.
It simplifies coding with a straightforward interface, extensive code libraries,
and compatibility with a wide range of Arduino boards. The IDE fosters open
collaboration and is available on multiple operating systems. Its active
community provides support, making it a powerful tool for both beginners
and experienced developers. With continuous updates and extensibility, the
Arduino IDE has become a gateway to innovative projects and educational
endeavors in the realm of embedded systems.
1
5.3 Source Code :-
#include <SPI.h>
#include <Wire.h>
#include
<WiFiClient.h>
#include <ESP8266WiFi.h>
#include <SoftwareSerial.h>
#include <ESP8266WebServer.h>
#include <ESP8266HTTPClient.h>
#include <Adafruit_GFX.h>
#define Finger_Rx 0 // D3
#define Finger_Tx 2 // D4
#define SCREEN_WIDTH
128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1 // SH1106 does not require a reset pin
String link =
"http://192.168.6.77/biometricattendance/getdata.php"; int
FingerID = 0;
uint8_t id;
#define Wifi_start_width 54
#define Wifi_start_height 49
1
,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x1f,0xf0,0x00,0x00,0x00
,0x00,0x03,0xff,0xff,0x80,0x00,0x00
,0x00,0x1f,0xf0,0x1f,0xf0,0x00,0x00
,0x00,0x7e,0x00,0x00,0xfc,0x00,0x00
,0x01,0xf0,0x00,0x00,0x1f,0x00,0x00
,0x03,0xc0,0x00,0x00,0x07,0xc0,0x00
,0x0f,0x00,0x00,0x00,0x01,0xe0,0x00
,0x1c,0x00,0x00,0x00,0x00,0x70,0x00
,0x38,0x00,0x07,0xc0,0x00,0x38,0x00
,0x70,0x00,0xff,0xfe,0x00,0x1e,0x00
,0xe0,0x03,0xfc,0x7f,0xc0,0x0e,0x00
,0x00,0x1f,0x80,0x03,0xf0,0x00,0x00
,0x00,0x3c,0x00,0x00,0x78,0x00,0x00
,0x00,0xf0,0x00,0x00,0x1c,0x00,0x00
,0x01,0xe0,0x00,0x00,0x0c,0x00,0x00
,0x03,0x80,0x00,0x00,0x00,0x00,0x00
,0x03,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x3f,0xf8,0x07,0x1e,0x00
,0x00,0x00,0xff,0xfe,0x1f,0xbf,0x80
,0x00,0x03,0xe0,0x04,0x7f,0xff,0xc0
,0x00,0x07,0x80,0x00,0xff,0xff,0xe0
,0x00,0x0e,0x00,0x00,0xff,0xff,0xe0
,0x00,0x0c,0x00,0x00,0x7f,0xff,0xc0
,0x00,0x00,0x00,0x00,0xfe,0x07,0xe0
,0x00,0x00,0x00,0x03,0xf8,0x03,0xf8
,0x00,0x00,0x07,0xe7,0xf9,0xf1,0xfc
,0x00,0x00,0x1f,0xe7,0xf1,0xf9,0xfc
,0x00,0x00,0x1f,0xe7,0xf3,0xf9,0xfc
,0x00,0x00,0x3f,0xe7,0xf3,0xf9,0xfc
,0x00,0x00,0x3f,0xe7,0xf1,0xf1,0xfc
,0x00,0x00,0x3f,0xe3,0xf8,0xe3,0xfc
,0x00,0x00,0x3f,0xf3,0xfc,0x07,0xf8
,0x00,0x00,0x1f,0xf0,0x7f,0x0f,0xc0
,0x00,0x00,0x0f,0xe0,0x7f,0xff,0xe0
,0x00,0x00,0x07,0xc0,0xff,0xff,0xe0
1
,0x00,0x00,0x00,0x00,0x7f,0xff,0xe0
,0x00,0x00,0x00,0x00,0x3f,0xff,0x80
,0x00,0x00,0x00,0x00,0x1f,0xbf,0x00
,0x00,0x00,0x00,0x00,0x03,0x18,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
#define Wifi_connected_width 63
#define Wifi_connected_height 49
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x03,0xff,0xff,0x80,0x00,0x00
,0x00,0x00,0x3f,0xff,0xff,0xf8,0x00,0x00
,0x00,0x01,0xff,0xff,0xff,0xff,0x00,0x00
,0x00,0x0f,0xff,0xff,0xff,0xff,0xe0,0x00
,0x00,0x3f,0xff,0xc0,0x07,0xff,0xf8,0x00
,0x00,0xff,0xf8,0x00,0x00,0x3f,0xfe,0x00
,0x03,0xff,0x80,0x00,0x00,0x03,0xff,0x80
,0x07,0xfe,0x00,0x00,0x00,0x00,0xff,0xc0
,0x1f,0xf8,0x00,0x00,0x00,0x00,0x3f,0xf0
,0x3f,0xe0,0x01,0xff,0xff,0x00,0x0f,0xf8
,0x7f,0x80,0x0f,0xff,0xff,0xe0,0x03,0xfc
,0xff,0x00,0x7f,0xff,0xff,0xfc,0x01,0xfe
,0xfc,0x01,0xff,0xff,0xff,0xff,0x00,0x7e
,0x78,0x07,0xff,0xc0,0x07,0xff,0xc0,0x3c
,0x00,0x0f,0xfc,0x00,0x00,0x7f,0xe0,0x00
,0x00,0x1f,0xf0,0x00,0x00,0x1f,0xf0,0x00
1
,0x00,0x3f,0xc0,0x00,0x00,0x07,0xf8,0x00
,0x00,0x7f,0x00,0x01,0x00,0x01,0xfc,0x00
,0x00,0x7e,0x00,0x7f,0xfc,0x00,0xfc,0x00
,0x00,0x3c,0x03,0xff,0xff,0x80,0x78,0x00
,0x00,0x00,0x07,0xff,0xff,0xc0,0x00,0x00
,0x00,0x00,0x1f,0xff,0xff,0xf0,0x00,0x00
,0x00,0x00,0x3f,0xf0,0x1f,0xf8,0x00,0x00
,0x00,0x00,0x3f,0x80,0x03,0xf8,0x00,0x00
,0x00,0x00,0x3f,0x00,0x01,0xf8,0x00,0x00
,0x00,0x00,0x1c,0x00,0x00,0x70,0x00,0x00
,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x0f,0xe0,0x00,0x00,0x00
,0x00,0x00,0x00,0x1f,0xf0,0x00,0x00,0x00
,0x00,0x00,0x00,0x3f,0xf8,0x00,0x00,0x00
,0x00,0x00,0x00,0x3f,0xf8,0x00,0x00,0x00
,0x00,0x00,0x00,0x3f,0xf8,0x00,0x00,0x00
,0x00,0x00,0x00,0x3f,0xf8,0x00,0x00,0x00
,0x00,0x00,0x00,0x1f,0xf0,0x00,0x00,0x00
,0x00,0x00,0x00,0x0f,0xe0,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
#define FinPr_start_width 64
#define FinPr_start_height 64
{ 0x00,0x00,0x00,0x1f,0xe0,0x00,0x00,0x00
,0x00,0x00,0x01,0xff,0xfe,0x00,0x00,0x00
,0x00,0x00,0x03,0xff,0xff,0x80,0x00,0x00
,0x00,0x00,0x0f,0xc0,0x0f,0xe0,0x00,0x00
,0x00,0x00,0x1f,0x00,0x01,0xf8,0x00,0x00
,0x00,0x00,0x3c,0x00,0x00,0x7c,0x00,0x00
1
,0x00,0x00,0x78,0x00,0x00,0x3e,0x00,0x00
,0x00,0x00,0xf0,0x3f,0xf8,0x0f,0x00,0x00
,0x00,0x01,0xe0,0xff,0xfe,0x07,0x80,0x00
,0x00,0x03,0xc3,0xff,0xff,0x03,0x80,0x00
,0x00,0x03,0x87,0xc0,0x07,0xc3,0xc0,0x00
,0x00,0x07,0x0f,0x00,0x03,0xe1,0xc0,0x00
,0x00,0x0f,0x0e,0x00,0x00,0xe0,0xe0,0x00
,0x00,0x0e,0x1c,0x00,0x00,0xf0,0xe0,0x00
,0x00,0x0c,0x3c,0x1f,0xe0,0x70,0xe0,0x00
,0x00,0x00,0x38,0x3f,0xf0,0x38,0x70,0x00
,0x00,0x00,0x78,0x78,0xf8,0x38,0x70,0x00
,0x00,0x00,0x70,0x70,0x3c,0x18,0x70,0x00
,0x00,0x00,0xe0,0xe0,0x1e,0x1c,0x70,0x00
,0x00,0x03,0xe1,0xe0,0x0e,0x1c,0x70,0x00
,0x00,0x0f,0xc1,0xc3,0x0e,0x1c,0x70,0x00
,0x00,0x3f,0x03,0xc3,0x8e,0x1c,0x70,0x00
,0x00,0x3e,0x03,0x87,0x0e,0x1c,0x70,0x00
,0x00,0x30,0x07,0x07,0x0e,0x18,0xe0,0x00
,0x00,0x00,0x0e,0x0e,0x0e,0x38,0xe0,0x00
,0x00,0x00,0x3e,0x1e,0x1e,0x38,0xe0,0x00
,0x00,0x00,0xf8,0x1c,0x1c,0x38,0xe0,0x00
,0x00,0x03,0xf0,0x38,0x3c,0x38,0xe0,0x00
,0x00,0x3f,0xc0,0xf8,0x78,0x38,0xe0,0x00
,0x00,0x7f,0x01,0xf0,0x70,0x38,0xf0,0x00
,0x00,0x78,0x03,0xe0,0xe0,0x38,0x70,0x00
,0x00,0x00,0x0f,0x81,0xe0,0x38,0x7c,0x00
,0x00,0x00,0x3f,0x03,0xc0,0x38,0x3e,0x00
,0x00,0x00,0xfc,0x0f,0x80,0x38,0x1e,0x00
,0x00,0x07,0xf0,0x1f,0x1c,0x1c,0x04,0x00
,0x00,0x3f,0xc0,0x3e,0x3f,0x1e,0x00,0x00
,0x00,0x7f,0x00,0xf8,0x7f,0x0f,0x00,0x00
,0x00,0x38,0x01,0xf0,0xf7,0x07,0xc0,0x00
,0x00,0x00,0x07,0xe1,0xe3,0x83,0xf8,0x00
,0x00,0x00,0x3f,0x87,0xc3,0xc0,0xfc,0x00
,0x00,0x01,0xfe,0x0f,0x81,0xe0,0x3c,0x00
,0x00,0x0f,0xf8,0x1f,0x00,0xf0,0x00,0x00
1
,0x00,0x1f,0xc0,0x7c,0x00,0x7c,0x00,0x00
,0x00,0x1e,0x01,0xf8,0x00,0x3f,0x00,0x00
,0x00,0x00,0x07,0xe0,0x78,0x0f,0xc0,0x00
,0x00,0x00,0x3f,0x81,0xfe,0x07,0xf0,0x00
,0x00,0x01,0xfe,0x07,0xff,0x01,0xf0,0x00
,0x00,0x07,0xf8,0x0f,0x87,0x80,0x30,0x00
,0x00,0x07,0xc0,0x3f,0x03,0xe0,0x00,0x00
,0x00,0x06,0x00,0xfc,0x01,0xf8,0x00,0x00
,0x00,0x00,0x03,0xf0,0x00,0x7e,0x00,0x00
,0x00,0x00,0x0f,0xc0,0x00,0x3f,0x80,0x00
,0x00,0x00,0x7f,0x00,0xf8,0x0f,0x80,0x00
,0x00,0x00,0xfc,0x03,0xfe,0x01,0x80,0x00
,0x00,0x00,0xf0,0x1f,0xff,0x80,0x00,0x00
,0x00,0x00,0x00,0x7f,0x07,0xe0,0x00,0x00
,0x00,0x00,0x00,0xfc,0x03,0xf8,0x00,0x00
,0x00,0x00,0x03,0xf0,0x00,0x78,0x00,0x00
,0x00,0x00,0x0f,0xc0,0x00,0x18,0x00,0x00
,0x00,0x00,0x0f,0x01,0xf8,0x00,0x00,0x00
,0x00,0x00,0x00,0x07,0xfe,0x00,0x00,0x00
,0x00,0x00,0x00,0x1f,0xfe,0x00,0x00,0x00
,0x00,0x00,0x00,0x1e,0x0e,0x00,0x00,0x00
,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00
};
#define FinPr_valid_width 64
#define FinPr_valid_height 64
,0x00,0x00,0x7f,0xff,0xf8,0x00,0x00,0x00
,0x00,0x00,0xfc,0x00,0xfe,0x00,0x00,0x00
,0x00,0x03,0xe0,0x00,0x1f,0x00,0x00,0x00
,0x00,0x07,0xc0,0x00,0x07,0x80,0x00,0x00
,0x00,0x0f,0x80,0x00,0x03,0xe0,0x00,0x00
,0x00,0x0e,0x03,0xff,0x01,0xe0,0x00,0x00
,0x00,0x1c,0x1f,0xff,0xe0,0xf0,0x00,0x00
,0x00,0x3c,0x3f,0xff,0xf0,0x78,0x00,0x00
1
,0x00,0x78,0x7c,0x00,0xf8,0x3c,0x00,0x00
,0x00,0x70,0xf0,0x00,0x3c,0x1c,0x00,0x00
,0x00,0xe1,0xe0,0x00,0x1e,0x1c,0x00,0x00
,0x00,0xe1,0xc0,0x00,0x0f,0x0e,0x00,0x00
,0x00,0xc3,0x81,0xfc,0x07,0x0e,0x00,0x00
,0x00,0x03,0x83,0xff,0x07,0x8e,0x00,0x00
,0x00,0x07,0x07,0x8f,0x83,0x87,0x00,0x00
,0x00,0x0f,0x0f,0x03,0xc3,0x87,0x00,0x00
,0x00,0x1e,0x0e,0x01,0xc3,0x87,0x00,0x00
,0x00,0x3c,0x1c,0x00,0xe1,0x87,0x00,0x00
,0x00,0xf8,0x1c,0x30,0xe1,0x87,0x00,0x00
,0x07,0xf0,0x38,0x70,0xe1,0x86,0x00,0x00
,0x07,0xc0,0x78,0x70,0xe3,0x8e,0x00,0x00
,0x02,0x00,0xf0,0xf0,0xe3,0x8e,0x00,0x00
,0x00,0x01,0xe0,0xe0,0xe3,0x8e,0x00,0x00
,0x00,0x03,0xc1,0xe1,0xc3,0x8e,0x00,0x00
,0x00,0x0f,0x83,0xc3,0xc3,0x8e,0x00,0x00
,0x00,0x7f,0x07,0x83,0x83,0x0e,0x00,0x00
,0x07,0xfc,0x0f,0x07,0x83,0x0e,0x00,0x00
,0x07,0xf0,0x1e,0x0f,0x03,0x0e,0x00,0x00
,0x07,0x80,0x7c,0x1e,0x03,0x07,0x00,0x00
,0x00,0x00,0xf8,0x3c,0x03,0x87,0x80,0x00
,0x00,0x03,0xf0,0x78,0x03,0x83,0xc0,0x00
,0x00,0x1f,0xc0,0xf0,0x02,0x00,0x00,0x00
,0x00,0xff,0x01,0xe1,0xc0,0x0c,0x00,0x00
,0x07,0xfc,0x03,0xc3,0xe1,0xff,0xc0,0x00
,0x07,0xe0,0x0f,0x87,0xc7,0xff,0xf0,0x00
,0x07,0x00,0x3f,0x0f,0x0f,0xff,0xfc,0x00
,0x00,0x00,0x7c,0x3e,0x3f,0xff,0xfe,0x00
,0x00,0x03,0xf8,0x7c,0x3f,0xff,0xff,0x00
,0x00,0x1f,0xe0,0xf0,0x7f,0xff,0xff,0x80
,0x00,0xff,0x83,0xe0,0xff,0xff,0xff,0x80
,0x01,0xfc,0x07,0xc1,0xff,0xff,0xe3,0xc0
,0x01,0xe0,0x1f,0x01,0xff,0xff,0xc3,0xc0
,0x00,0x00,0xfe,0x01,0xff,0xff,0x87,0xe0
,0x00,0x03,0xf8,0x13,0xff,0xff,0x0f,0xe0
2
,0x00,0x1f,0xe0,0x73,0xff,0xfe,0x1f,0xe0
,0x00,0x7f,0x81,0xf3,0xff,0xfc,0x1f,0xe0
,0x00,0xfc,0x03,0xe3,0xef,0xf8,0x3f,0xe0
,0x00,0x60,0x0f,0xc3,0xc7,0xf0,0x7f,0xe0
,0x00,0x00,0x3f,0x03,0xc3,0xe0,0xff,0xe0
,0x00,0x00,0xfc,0x03,0xc1,0xc1,0xff,0xe0
,0x00,0x07,0xf0,0x13,0xe0,0x83,0xff,0xe0
,0x00,0x0f,0xc0,0x7b,0xf8,0x07,0xff,0xe0
,0x00,0x0f,0x01,0xf9,0xfc,0x0f,0xff,0xc0
,0x00,0x00,0x07,0xf1,0xfe,0x1f,0xff,0xc0
,0x00,0x00,0x1f,0xc0,0xff,0x3f,0xff,0x80
,0x00,0x00,0x7e,0x00,0xff,0xff,0xff,0x80
,0x00,0x00,0xfc,0x00,0x7f,0xff,0xff,0x00
,0x00,0x00,0xf0,0x1f,0x3f,0xff,0xfe,0x00
,0x00,0x00,0x00,0x7f,0x1f,0xff,0xfc,0x00
,0x00,0x00,0x01,0xff,0x8f,0xff,0xf8,0x00
,0x00,0x00,0x03,0xe0,0xe3,0xff,0xe0,0x00
,0x00,0x00,0x01,0x80,0x00,0x7f,0x00,0x00
};
#define FinPr_invalid_width 64
#define FinPr_invalid_height 64
,0x00,0x00,0x1f,0xff,0xe0,0x00,0x00,0x00
,0x00,0x00,0x7f,0xff,0xf8,0x00,0x00,0x00
,0x00,0x00,0xfc,0x00,0xfe,0x00,0x00,0x00
,0x00,0x03,0xe0,0x00,0x1f,0x00,0x00,0x00
,0x00,0x07,0xc0,0x00,0x07,0x80,0x00,0x00
,0x00,0x0f,0x80,0x00,0x03,0xe0,0x00,0x00
,0x00,0x0e,0x03,0xff,0x01,0xe0,0x00,0x00
,0x00,0x1c,0x1f,0xff,0xe0,0xf0,0x00,0x00
,0x00,0x3c,0x3f,0xff,0xf0,0x78,0x00,0x00
,0x00,0x78,0x7c,0x00,0xf8,0x3c,0x00,0x00
,0x00,0x70,0xf0,0x00,0x3c,0x1c,0x00,0x00
,0x00,0xe1,0xe0,0x00,0x1e,0x1c,0x00,0x00
,0x00,0xe1,0xc0,0x00,0x0f,0x0e,0x00,0x00
2
,0x00,0xc3,0x81,0xfc,0x07,0x0e,0x00,0x00
,0x00,0x03,0x83,0xff,0x07,0x8e,0x00,0x00
,0x00,0x07,0x07,0x8f,0x83,0x87,0x00,0x00
,0x00,0x0f,0x0f,0x03,0xc3,0x87,0x00,0x00
,0x00,0x1e,0x0e,0x01,0xc3,0x87,0x00,0x00
,0x00,0x3c,0x1c,0x00,0xe1,0x87,0x00,0x00
,0x00,0xf8,0x1c,0x30,0xe1,0x87,0x00,0x00
,0x07,0xf0,0x38,0x70,0xe1,0x86,0x00,0x00
,0x07,0xc0,0x78,0x70,0xe3,0x8e,0x00,0x00
,0x02,0x00,0xf0,0xf0,0xe3,0x8e,0x00,0x00
,0x00,0x01,0xe0,0xe0,0xe3,0x8e,0x00,0x00
,0x00,0x03,0xc1,0xe1,0xc3,0x8e,0x00,0x00
,0x00,0x0f,0x83,0xc3,0xc3,0x8e,0x00,0x00
,0x00,0x7f,0x07,0x83,0x83,0x0e,0x00,0x00
,0x07,0xfc,0x0f,0x07,0x83,0x0e,0x00,0x00
,0x07,0xf0,0x1e,0x0f,0x03,0x0e,0x00,0x00
,0x07,0x80,0x7c,0x1e,0x03,0x07,0x00,0x00
,0x00,0x00,0xf8,0x3c,0x03,0x87,0x80,0x00
,0x00,0x03,0xf0,0x78,0x03,0x83,0xc0,0x00
,0x00,0x1f,0xc0,0xf0,0x02,0x00,0x00,0x00
,0x00,0xff,0x01,0xe1,0xc0,0x00,0x00,0x00
,0x07,0xfc,0x03,0xc3,0xe1,0xff,0xc0,0x00
,0x07,0xe0,0x0f,0x87,0xc7,0xff,0xf0,0x00
,0x07,0x00,0x3f,0x0f,0x0f,0xff,0xf8,0x00
,0x00,0x00,0x7c,0x3e,0x1f,0xff,0xfe,0x00
,0x00,0x03,0xf8,0x7c,0x3f,0xff,0xff,0x00
,0x00,0x1f,0xe0,0xf0,0x7f,0xff,0xff,0x00
,0x00,0xff,0x83,0xe0,0xfe,0xff,0xbf,0x80
,0x01,0xfc,0x07,0xc0,0xfc,0x7f,0x1f,0xc0
,0x01,0xe0,0x1f,0x01,0xf8,0x3e,0x0f,0xc0
,0x00,0x00,0xfe,0x01,0xf8,0x1c,0x07,0xe0
,0x00,0x03,0xf8,0x13,0xf8,0x00,0x0f,0xe0
,0x00,0x1f,0xe0,0x73,0xfc,0x00,0x1f,0xe0
,0x00,0x7f,0x81,0xf3,0xfe,0x00,0x3f,0xe0
,0x00,0xfc,0x03,0xe3,0xff,0x00,0x7f,0xe0
,0x00,0x60,0x0f,0xc3,0xff,0x80,0xff,0xe0
2
,0x00,0x00,0x3f,0x03,0xff,0x00,0x7f,0xe0
,0x00,0x00,0xfc,0x03,0xfe,0x00,0x3f,0xe0
,0x00,0x07,0xf0,0x13,0xfc,0x00,0x1f,0xe0
,0x00,0x0f,0xc0,0x79,0xf8,0x08,0x0f,0xe0
,0x00,0x0f,0x01,0xf9,0xf8,0x1c,0x0f,0xc0
,0x00,0x00,0x07,0xf1,0xfc,0x3e,0x1f,0xc0
,0x00,0x00,0x1f,0xc0,0xfe,0x7f,0x3f,0x80
,0x00,0x00,0x7e,0x00,0xff,0xff,0xff,0x80
,0x00,0x00,0xfc,0x00,0x7f,0xff,0xff,0x00
,0x00,0x00,0xf0,0x1f,0x3f,0xff,0xfe,0x00
,0x00,0x00,0x00,0x7f,0x1f,0xff,0xfc,0x00
,0x00,0x00,0x01,0xff,0x8f,0xff,0xf8,0x00
,0x00,0x00,0x03,0xe0,0xe3,0xff,0xe0,0x00
,0x00,0x00,0x01,0x80,0x00,0x7f,0x00,0x00
};
#define FinPr_failed_width 64
#define FinPr_failed_height 64
{ 0x00,0x00,0x3f,0xe0,0x00,0x00,0x00,0x00
,0x00,0x01,0xff,0xfe,0x00,0x00,0x00,0x00
,0x00,0x0f,0xc0,0x1f,0x80,0x00,0x00,0x00
,0x00,0x1e,0x00,0x03,0xc0,0x00,0x00,0x00
,0x00,0x78,0x00,0x00,0xf0,0x00,0x00,0x00
,0x00,0xe0,0x00,0x00,0x38,0x00,0x00,0x00
,0x01,0xc0,0x00,0x00,0x1c,0x00,0x00,0x00
,0x03,0x80,0x00,0x00,0x0e,0x00,0x00,0x00
,0x07,0x00,0x7f,0xe0,0x07,0x00,0x00,0x00
,0x06,0x01,0xff,0xf8,0x03,0x00,0x00,0x00
,0x0c,0x03,0xc0,0x3c,0x03,0x80,0x00,0x00
,0x1c,0x0f,0x00,0x0e,0x01,0x80,0x00,0x00
,0x18,0x0c,0x00,0x03,0x00,0xc0,0x00,0x00
,0x18,0x18,0x00,0x01,0x80,0xc0,0x00,0x00
,0x30,0x38,0x00,0x01,0xc0,0xe0,0x00,0x00
,0x30,0x30,0x0f,0x00,0xc0,0x60,0x00,0x00
,0x30,0x30,0x3f,0xc0,0xe0,0x60,0x00,0x00
,0x70,0x60,0x78,0xe0,0x60,0x60,0x00,0x00
2
,0x60,0x60,0x60,0x60,0x60,0x70,0x00,0x00
,0x60,0x60,0x60,0x60,0x60,0x30,0x00,0x00
,0x60,0x60,0x60,0x60,0x30,0x30,0x00,0x00
,0x60,0x60,0x60,0x30,0x30,0x20,0x00,0x00
,0x60,0x60,0x60,0x30,0x30,0x01,0xe0,0x00
,0x60,0x60,0x60,0x30,0x30,0x0f,0xfc,0x00
,0x60,0x60,0x60,0x30,0x30,0x3f,0xff,0x00
,0x60,0x60,0x60,0x30,0x18,0x78,0x03,0x80
,0x60,0x60,0x60,0x30,0x1c,0x60,0x01,0x80
,0x60,0x60,0x30,0x38,0x0c,0xc0,0x00,0xc0
,0x00,0x60,0x30,0x18,0x00,0xc0,0x00,0xc0
,0x00,0x60,0x30,0x18,0x00,0xc0,0x00,0xc0
,0x00,0xe0,0x30,0x0c,0x01,0xc0,0x00,0xe0
,0x00,0xc0,0x18,0x0e,0x01,0xc0,0x00,0xe0
,0x60,0xc0,0x18,0x07,0x01,0xc0,0x00,0xe0
,0x01,0xc0,0x1c,0x03,0x81,0xc0,0x00,0xe0
,0x01,0x80,0x0c,0x01,0xc1,0xc0,0x00,0xe0
,0x03,0x80,0x0e,0x00,0xf1,0xc0,0x00,0xe0
,0x0f,0x00,0x06,0x00,0x01,0xc0,0x00,0xe0
,0x3e,0x01,0x03,0x00,0x01,0xc0,0x00,0xe0
,0x30,0x03,0x83,0x80,0x1f,0xff,0xff,0xfe
,0x00,0x03,0x81,0xc0,0x3f,0xff,0xff,0xff
,0x00,0x07,0xc0,0xe0,0x30,0x00,0x00,0x03
,0x00,0x0e,0xc0,0x78,0x30,0x00,0x00,0x03
,0x00,0x3c,0x60,0x1e,0x30,0x00,0x00,0x03
,0x00,0x78,0x70,0x0f,0x30,0x00,0x00,0x03
,0x03,0xe0,0x38,0x03,0x30,0x00,0x00,0x03
,0x07,0x80,0x1c,0x00,0x30,0x00,0x00,0x03
,0xc0,0x00,0x0f,0x00,0x30,0x00,0x00,0x03
,0xc0,0x00,0x03,0x80,0x30,0x01,0xe0,0x03
,0x00,0x18,0x01,0xe0,0x30,0x03,0xf0,0x03
,0x00,0x18,0x00,0x7c,0x30,0x07,0x38,0x03
,0x00,0x0c,0x00,0x1f,0x30,0x06,0x18,0x03
,0x18,0x0e,0x00,0x07,0x30,0x06,0x18,0x03
,0x0c,0x07,0x80,0x00,0x30,0x07,0x38,0x03
,0x0e,0x03,0xc0,0x00,0x30,0x03,0x30,0x03
2
,0x07,0x00,0xf0,0x00,0x30,0x03,0x30,0x03
,0x03,0x00,0x7e,0x00,0x30,0x03,0x30,0x03
,0x01,0x80,0x1f,0xc0,0x30,0x03,0x30,0x03
,0x01,0xc0,0x03,0xe1,0x30,0x07,0xf8,0x03
,0x00,0xf0,0x00,0x01,0x30,0x03,0xf0,0x03
,0x00,0x38,0x00,0x00,0x30,0x00,0x00,0x03
,0x00,0x1e,0x00,0x00,0x30,0x00,0x00,0x03
,0x00,0x07,0xc0,0x00,0x30,0x00,0x00,0x03
,0x00,0x01,0xff,0x80,0x3f,0xff,0xff,0xff
,0x00,0x00,0x3f,0x80,0x1f,0xff,0xff,0xfe
};
#define FinPr_scan_width 64
#define FinPr_scan_height 64
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x1f,0xf8,0x00,0x00,0x00
,0x00,0x00,0x00,0x7f,0xff,0x00,0x00,0x00
,0x00,0x00,0x01,0xfc,0x7f,0xc0,0x00,0x00
,0x00,0x00,0x03,0xc0,0x03,0xe0,0x00,0x00
,0x00,0x00,0x07,0x80,0x00,0xf0,0x00,0x00
,0x00,0x00,0x0e,0x00,0x00,0x3c,0x00,0x00
,0x00,0x00,0x1c,0x1f,0xfc,0x1c,0x00,0x00
,0x00,0x00,0x38,0x7f,0xfe,0x0e,0x00,0x00
,0x00,0x00,0x78,0xf8,0x0f,0x87,0x00,0x00
,0x00,0x00,0x71,0xe0,0x03,0xc7,0x00,0x00
,0x00,0x00,0xe3,0x80,0x01,0xc3,0x80,0x00
,0x00,0x00,0xc3,0x83,0xc0,0xe3,0x80,0x00
,0x00,0x00,0xc7,0x0f,0xf0,0x71,0x80,0x00
,0x00,0x00,0x06,0x1f,0xf8,0x71,0xc0,0x00
,0x00,0x00,0x0e,0x1c,0x3c,0x31,0xc0,0x00
,0x00,0x00,0x1c,0x38,0x1c,0x31,0xc0,0x00
,0x00,0x00,0x38,0x70,0x0e,0x39,0xc0,0x00
2
,0x00,0x01,0xf0,0x71,0x8e,0x39,0xc0,0x00
,0x00,0x03,0xe0,0xe1,0x86,0x31,0xc0,0x00
,0x00,0x03,0x81,0xe3,0x8e,0x31,0x80,0x00
,0x00,0x00,0x03,0xc3,0x8e,0x33,0x80,0x00
,0x00,0x00,0x07,0x87,0x0c,0x73,0x80,0x00
,0x00,0x00,0x1f,0x0e,0x1c,0x73,0x80,0x00
,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xfe
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xfe
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x03,0xf0,0x1e,0x3e,0x1c,0x00,0x00
,0x00,0x03,0x80,0x7c,0x77,0x0f,0x00,0x00
,0x00,0x00,0x01,0xf0,0xe3,0x07,0xc0,0x00
,0x00,0x00,0x07,0xe3,0xc3,0x81,0xf0,0x00
,0x00,0x00,0x3f,0x87,0x81,0xc0,0x60,0x00
,0x00,0x01,0xfc,0x1f,0x00,0xf0,0x00,0x00
,0x00,0x01,0xe0,0x3c,0x00,0x7c,0x00,0x00
,0x00,0x00,0x00,0xf8,0x78,0x1f,0x00,0x00
,0x00,0x00,0x07,0xe0,0xfc,0x0f,0xc0,0x00
,0x00,0x00,0x3f,0x83,0xef,0x03,0xc0,0x00
,0x00,0x00,0xfc,0x0f,0x87,0x80,0x00,0x00
,0x00,0x00,0x70,0x1f,0x03,0xe0,0x00,0x00
,0x00,0x00,0x00,0x7c,0x00,0xf8,0x00,0x00
,0x00,0x00,0x01,0xf0,0x00,0x3e,0x00,0x00
,0x00,0x00,0x0f,0xc0,0xf8,0x0f,0x00,0x00
,0x00,0x00,0x1f,0x03,0xfe,0x02,0x00,0x00
,0x00,0x00,0x0c,0x0f,0x8f,0x80,0x00,0x00
,0x00,0x00,0x00,0x3f,0x03,0xe0,0x00,0x00
,0x00,0x00,0x00,0xf8,0x00,0xf0,0x00,0x00
,0x00,0x00,0x01,0xe0,0x00,0x30,0x00,0x00
,0x00,0x00,0x01,0xc0,0xf8,0x00,0x00,0x00
,0x00,0x00,0x00,0x07,0xfe,0x00,0x00,0x00
,0x00,0x00,0x00,0x0f,0x8e,0x00,0x00,0x00
2
,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
void setup() {
Serial.begin(115200);
display.display();
display.clearDisplay();
connectToWiFi();
f
inger.begin(57600); Serial.println("\n\
nAdafruit finger detect test"); if
(finger.verifyPassword()) {
Serial.println("Found fingerprint sensor!");
display.clearDisplay();
display.display();
} else {
("); display.clearDisplay();
SH110X_WHITE);
display.display();
while (1) { delay(1);
}
}
f
inger.getTemplateCount();
2
Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" templates");
Serial.println("Waiting for valid finger...");
}
void loop() {
{ connectToWiFi();
}
FingerID = getFingerprintID();
delay(50);
DisplayFingerprintID();
ChecktoAddID();
ChecktoDeleteID();
void DisplayFingerprintID(){
display.clearDisplay();
SH110X_WHITE);
display.display();
SendFingerprintID( FingerID );
}
else if (FingerID == 0)
{ display.clearDisplay()
SH110X_WHITE);
display.display();
//-
SH110X_WHITE);
display.display();
{ WiFiClient client;
HTTPClient http;
postData = "FingerID=" +
String(finger); http.begin(client,link);
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
ID if (payload.substring(0, 5) == "login") {
// Serial.println(user_name);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(SH110X_WHITE);
display.setCursor(15,0);
// Draw white text
// Start at top-left corner
display.print(F("Welcome"));
display.setCursor(0,20);
display.print(user_name);
display.display();
2
// Serial.println(user_name);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(SH110X_WHITE);
display.setCursor(10,0);
// Draw white text
display.print(F("Good Bye"));
display.setCursor(0,20);
display.print(user_name);
display.display();
}
delay(1000);
postData = "";
uint8_t p =
finger.getImage(); switch (p)
{
case FINGERPRINT_OK:
//Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
case FINGERPRINT_PACKETRECIEVEERR:
//Serial.println("Communication error");
return -2;
case FINGERPRINT_IMAGEFAIL:
//Serial.println("Imaging error");
return -2;
default:
//Serial.println("Unknown error");
3
return -2;
// OK success!
p=
finger.image2Tz();
switch (p) {
case FINGERPRINT_OK:
//Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
return -1;
case FINGERPRINT_PACKETRECIEVEERR:
//Serial.println("Communication error");
return -2;
case FINGERPRINT_FEATUREFAIL:
default:
//Serial.println("Unknown error");
return -2;
// OK converted!
p = finger.fingerFastSearch();
if (p == FINGERPRINT_OK) {
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
//Serial.println("Communication error");
return -2;
} else if (p == FINGERPRINT_NOTFOUND) {
//Serial.println("Unknown error");
3
return -2;
// found a match!
void ChecktoDeleteID(){
WiFiClient client;
postData = "DeleteID=check"; // Add the Fingerprint ID to the Post array in order to send it
// Post methode
http.begin(client,link); //initiate HTTP request, put your Website URL or Your Computer IP
header
if (payload.substring(0, 6) == "del-id") {
String del_id =
payload.substring(6);
Serial.println(del_id);
deleteFingerprint( del_id.toInt() );
}
http.end(); //Close connection
uint8_t p = -1;
p = finger.deleteModel(id);
if (p == FINGERPRINT_OK) {
//Serial.println("Deleted!");
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(SH110X_WHITE);
3
display.setCursor(0,0);
display.print(F("Deleted!\n"));
display.display();
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
//Serial.println("Communication error");
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SH110X_WHITE);
display.setCursor(0,0);
// Draw white text
display.print(F("Communication error!\n"));
display.display();
return p;
} else if (p == FINGERPRINT_BADLOCATION) {
display.setTextSize(1);
display.setTextColor(SH110X_WHITE);
display.setCursor(0,0);
// Draw white text
return p;
} else if (p == FINGERPRINT_FLASHERR) {
//Serial.println("Error writing to
flash"); display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SH110X_WHITE);
display.setCursor(0,0);
3
// Draw white text
display.display();
return p;
} else {
display.setTextSize(2);
display.setTextColor(SH110X_WHITE);
display.setCursor(0,0);
// Draw white text
display.print(F("Unknown error:\n"));
display.display();
return p;
} return p;
void ChecktoAddID(){
WiFiClient client;
//Post Data
postData = "Get_Fingerid=get_id"; // Add the Fingerprint ID to the Post array in order to send it
// Post methode
http.begin(client,link); //initiate HTTP request, put your Website URL or Your Computer IP
header
if (payload.substring(0, 6) == "add-id")
Serial.println(add_id);
id = add_id.toInt();
3
getFingerprintEnroll();
uint8_t getFingerprintEnroll() {
int p = -1;
display.clearDisplay();
display.display();
while (p != FINGERPRINT_OK) {
p=
finger.getImage();
switch (p) {
case FINGERPRINT_OK:
//Serial.println("Image taken");
display.clearDisplay();
display.drawBitmap( 34, 0, FinPr_valid_bits, FinPr_valid_width, FinPr_valid_height,
SH110X_WHITE);
display.display();
break;
case FINGERPRINT_NOFINGER:
//Serial.println(".");
display.display();
break;
case FINGERPRINT_PACKETRECIEVEERR:
display.clearDisplay();
display.display();
break;
case FINGERPRINT_IMAGEFAIL:
3
Serial.println("Imaging error");
break;
default:
Serial.println("Unknown error");
break;
// OK success!
p=
finger.image2Tz(1);
switch (p) {
case FINGERPRINT_OK:
display.clearDisplay();
SH110X_WHITE);
display.display();
break;
case FINGERPRINT_IMAGEMESS:
display.clearDisplay();
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
case FINGERPRINT_INVALIDIMAGE:
default:
Serial.println("Unknown error");
return p;
3
}
display.clearDisplay();
display.print(F("Remove"));
display.setCursor(0,20);
display.print(F("finger"));
display.display();
//Serial.println("Remove finger");
delay(2000);
p = 0;
while (p != FINGERPRINT_NOFINGER) {
p = finger.getImage();
while (p != FINGERPRINT_OK) {
p=
finger.getImage();
switch (p) {
case FINGERPRINT_OK:
//Serial.println("Image taken");
display.clearDisplay();
case FINGERPRINT_NOFINGER:
//Serial.println(".");
display.print(F("scanning"));
3
display.display();
break;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
break;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
break;
default:
Serial.println("Unknown error");
break;
}
// OK success!
p=
finger.image2Tz(2);
switch (p) {
case FINGERPRINT_OK:
//Serial.println("Image converted");
display.clearDisplay();
SH110X_WHITE);
display.display();
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
default:
3
Serial.println("Unknown error");
return p;
}
// OK converted!
p = finger.createModel();
if (p == FINGERPRINT_OK) {
//Serial.println("Prints matched!");
display.clearDisplay();
SH110X_WHITE);
display.display();
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_ENROLLMISMATCH) {
} else {
Serial.println("Unknown error");
return p;
}
p = finger.storeModel(id);
if (p == FINGERPRINT_OK) {
//Serial.println("Stored!");
display.clearDisplay();
display.drawBitmap( 34, 0, FinPr_valid_bits, FinPr_valid_width, FinPr_valid_height,
SH110X_WHITE);
display.display();
confirmAdding();
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_BADLOCATION) {
3
return p;
} else if (p == FINGERPRINT_FLASHERR) {
Serial.println("Error writing to
flash"); return p;
} else {
Serial.println("Unknown error");
return p;
}
return p;
WiFiClient client;
//Post Data
postData = "confirm_id=" + String(id); // Add the Fingerprint ID to the Post array in order to send it
// Post methode
http.begin(client,link); //initiate HTTP request, put your Website URL or Your Computer IP
header
display.clearDisplay();
display.setTextSize(1.5);
4
//********************connect to the WiFi******************
void connectToWiFi(){
WiFi.mode(WIFI_OFF);
delay(1000);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SH110X_WHITE);
display.setCursor(0, 0);
// Draw white text
// Start at top-left corner
display.print(F("Connecting to \n"));
display.setCursor(0, 50);
display.setTextSize(2);
display.print(ssid);
{ delay(500);
Serial.print(".");
Serial.println("");
Serial.println("Connected");
display.clearDisplay();
display.setTextSize(2);
display.print(F("Connected \n"));
4
display.drawBitmap( 33, 15, Wifi_connected_bits, Wifi_connected_width, Wifi_connected_height,
SH110X_WHITE);
display.display();
Serial.print("IP address:
");
Serial.println(WiFi.localIP()); //IP address assigned to your ESP
6.Troubleshooting:-
4
6.2 Steps to solve problems/faults in the project :-
Regular Maintenance and Calibration: Schedule routine maintenance to clean
and calibrate sensors, ensuring accuracy and durability.
Enrollment Procedures: Properly train personnel responsible for fingerprint
enrollment, document the process well, and perform multiple scans to account
for fingerprint quality variations.
Quality Fingerprint Sensors: Invest in high-quality sensors with anti-spoofing
features to reduce false acceptance rates.
4
7) FUTURESCOPE :-
Biometric technology is effective for identity verification and fraud
detection.
It can set and confirm the user's identity, making it valuable for various
applications.
Expanding the use of biometrics can enhance fraud detection in
educational institutions and organizations.
It offers efficiency and performance benefits compared to traditional
attendance systems.
Data is well-structured and stored using flash memory.
The system is user-friendly and highly reliable.
It can be implemented in both organizations and educational institutions.
Future enhancements can include features to indicate if employees or
students are late.
Expanding flash memory for storing complete details of students is a
potential improvement.
Tracking arrival and exit times for additional monitoring is another
enhancement option.
4
8) PROJECT PRICE :-
SR COMPONENTS PRICE
1 ESP8266 240/-
4 WIRES 60/-
4
9) ADVANTAGES :-
1. Accuracy: Highly precise identification through fingerprint recognition.
2. Efficiency: Real-time data capture and transmission reduce administrative
workload.
3. Convenience: Employees easily clock in/out with a simple fingerprint scan.
4. Security: Fingerprint uniqueness provides robust authentication,
minimizing fraud.
5. Cost-effectiveness: Long-term savings through reduced paperwork and
improved efficiency.
6. Remote Access: Managers can monitor attendance from anywhere with
internet access.
7. Integration: Seamless integration with HR and payroll software for
streamlined processes.
8. Scalability: Easily adapts to organizational growth or changes in workforce
size.
9. Compliance: Helps meet labor regulations and audit requirements
through accurate record-keeping.
10.Analytics: Insights into attendance patterns and productivity trends
inform decision-making.
10) DISADVANTAGES :-
1. Hygiene Concerns: Sharing scanners can raise hygiene issues.
2. False Rejection Rates: Some users may struggle with consistent
recognition.
3. Privacy Concerns: Biometric data storage raises privacy issues.
4. System Vulnerabilities: Susceptible to hacking or spoofing attacks.
5. Costs: Initial setup and ongoing maintenance can be expensive.
6. Environmental Factors: Dust, moisture, or extreme temperatures can
affect performance.
7. Legal Compliance: Regulations around biometric data may pose
challenges.
8. Dependency on Electricity and Connectivity: Reliance on power and
network connectivity.
9. Integration Challenges: Difficulty in integrating with existing systems.
4
11) APPLICATIONS :-
1. Workplaces: Track employee attendance.
2. Schools: Monitor student attendance.
3. Healthcare: Manage staff attendance.
4. Government Offices: Record government employee attendance.
5. Construction Sites: Monitor worker attendance.
6. Events: Track attendee participation.
7. Gyms: Record member attendance.
8. Research Facilities: Track researcher attendance.
9. Prisons: Monitor inmate and staff movements.
10.Financial Institutions: Ensure secure access and track employee
attendance.
12) RESULT :-
1. Accuracy: Provides precise tracking of attendance due to the uniqueness
of fingerprints.
2. Efficiency: Streamlines attendance recording, reducing administrative
workload and errors.
3. Accountability: Holds individuals accountable for their attendance,
discouraging tardiness or absenteeism.
4. Security: Enhances security by restricting access to authorized personnel
only.
5. Data Insights: Generates data for analysis, enabling better workforce
management and resource allocation.
6. Compliance: Helps in meeting regulatory requirements for attendance
tracking.
7. Cost Savings: Optimizes resource utilization and reduces costs associated
with manual attendance tracking.
8. Transparency: Promotes transparency in attendance management,
fostering trust within the organization.
9. Productivity: Encourages punctuality and discipline, potentially boosting
overall productivity.
10.Automation: Automates attendance processes, freeing up time for more
strategic tasks.
4
13) CONCLUSION :-
In conclusion, the implementation of a fingerprint attendance system offers
numerous benefits including enhanced accuracy, efficiency, and security in
tracking attendance. Through the utilization of biometric technology, the
system ensures accountability, promotes transparency, and facilitates
compliance with regulatory requirements. Additionally, it provides valuable
data insights for better workforce management and resource allocation. While
there may be some challenges such as initial setup costs and privacy concerns,
the overall advantages outweigh the drawbacks. Ultimately, the fingerprint
attendance system represents a valuable tool for organizations seeking to
streamline attendance management processes and optimize operational
efficiency.
REFERENCES :-
4
4