Skip to content

Instantly share code, notes, and snippets.

@Gabrimarin
Created June 22, 2021 15:33
Show Gist options
  • Save Gabrimarin/49caa3e9295e0c220407aa50b7a69080 to your computer and use it in GitHub Desktop.
Save Gabrimarin/49caa3e9295e0c220407aa50b7a69080 to your computer and use it in GitHub Desktop.
#include <Adafruit_Fingerprint.h>
const int led_pin_accept = 8;
const int led_pin_deny = 9;
volatile int finger_status = -1;
SoftwareSerial mySerial(2, 3); // TX/RX on fingerprint sensor
Adafruit_Fingerprint finger = Adafruit_Fingerprint( & mySerial);
void setup() {
Serial.begin(9600);
pinMode(led_pin_accept, OUTPUT);
pinMode(led_pin_deny, OUTPUT);
while (!Serial); // For Yun/Leo/Micro/Zero/...
delay(100);
Serial.println("\n\nAdafruit finger detect test"); // 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) {
delay(1);
}
}
finger.getTemplateCount();
Serial.print("Sensor contains ");
Serial.print(finger.templateCount);
Serial.println(" templates");
Serial.println("Waiting for valid finger...");
}
void loop() // run over and over again
{
finger_status = getFingerprintIDez();
if (finger_status != -1 and finger_status != -2) {
digitalWrite(led_pin_accept, HIGH);
delay(1000);
} else {
if (finger_status == -2) {
for (int ii = 0; ii < 5; ii++) {
digitalWrite(led_pin_deny, HIGH);
delay(50);
digitalWrite(led_pin_deny, LOW);
delay(50);
}
}
digitalWrite(led_pin_accept, LOW);
}
delay(50); //don't ned to run this at full speed.
} // returns -1 if failed, otherwise returns ID#
int getFingerprintIDez() {
uint8_t p = finger.getImage();
if (p != 2) {
Serial.println(p);
}
if (p != FINGERPRINT_OK) return -1;
p = finger.image2Tz();
if (p != 2) {
Serial.println(p);
}
if (p != FINGERPRINT_OK) return -1;
p = finger.fingerFastSearch();
if (p != FINGERPRINT_OK) return -2; // found a match!
Serial.print("Found ID #");
Serial.print(finger.fingerID);
Serial.print(" with confidence of ");
Serial.println(finger.confidence);
return finger.fingerID;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment