Arduino Optical Fingerprint Sensor (AS608)
“As an Amazon Associates Program member, clicking on links may result in Maker Portal receiving a small commission that helps support future projects.”
Optical fingerprint sensors take low-resolution snapshots of the tip of a finger and create arrays of identifiers that are then used to uniquely identify a given fingerprint. The AS608 is capable of storing up to 128 individual fingerprints. This tutorial will introduce the AS608 Arduino-compatible fingerprint sensor and how to validate and reject fingerprints based on the enrolled fingerprint information that will be given to the sensor. The fingerprint algorithm is handled by the AS608 and Arduino, so this tutorial will focus on implementation and putting the pieces together to make a working fingerprint sensor with Arduino.
The primary components used in this tutorial are the Arduino board and the appropriate fingerprint module. The full parts list required for replicating the process outlined here is given below:
Wiring the fingerprint module to the Arduino uses the UART, which we will use in software (SoftwareSerial() in Arduino). The wiring diagram (including wiring of the accept and deny LEDs) is shown below:
Adafruit has a library that is simple and easy to understand. In order to download the library, open the Library Manager and type in ‘fingerprint;’ the library is shown below as the “Adafruit Fingerprint Sensor Library by Adafruit.”
The Adafruit library has multiple examples, two of which will be the basis for the rest of this tutorial. The two examples are named:
The enroll example should be uploaded before testing the other algorithms. This process is outlined below.
Before we can test the accept and deny algorithms, we need to first train the fingerprint sensor to recognize the fingerprints that we want to accept. The ‘enroll fingerprint’ code is shown below. The simplest method for understanding the code below is to simply upload it to the Arduino board, then follow the instructions.
The example code above requires the user to input an integer, which will identify a specific fingerprint.
The user will allow the user to create up to 128 unique fingerprints that can be recalled later. The general process for enrolling a fingerprint is as follows:
Place finger on sensor
Remove finger when instructed
Place finger on sensor again
Wait for the sensor to verify the print and printout “Stored!”
Below is a screenshot of the example output onto the Serial Port using 127 as the fingerprint index.
At this point, the assumption is that one or more fingerprints have been enrolled into the AS608 sensor. Now, we can test if the Arduino and fingerprint module can re-identify those enrolled fingerprints and deny unfamiliar fingerprints. The full code is shown below, which will light up one LED on pin 8 if the fingerprint is recognized, and blink an LED on pin 9 five times if the fingerprint is not recognized.
This algorithm can be used in security scenarios as seen in television and film for door locks etc.
And video demonstration of this code is shown below:
In this tutorial, I introduced the basic principles of working with the AS608 fingerprint module with the Arduino platform. Specifically, the Adafruit library was used, which handles a lot of the interaction involved with identifying and enrolling fingerprints. The simplest implementation of the fingerprint sensor was explored, first by enrolling a unique fingerprint, and then verifying the print later. In the video demonstration, the acceptance of recognized fingerprints and the denial of unrecognized fingerprints was illustrated by the different LEDs. The applications in fingerprint identification are numerous and, at the least, fun and interesting. The introduction given here is meant as a stepping stone for getting involved with fingerprint identification with Arduino, and with the inexpensive and easy-to-use hardware and libraries available, the possibilities are endless from here!
See More in Arduino: