Arduino Fingerprint scanner project
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
-
- Posts: 11
- Joined: Tue Feb 05, 2013 12:58 pm
Arduino Fingerprint scanner project
Hello, I was wondering is there a kit for the Fingerprint scanner project? If not which type of Arduino board do i need and what other components do I need to buy in order to do the project?
- adafruit_support_bill
- Posts: 88096
- Joined: Sat Feb 07, 2009 10:11 am
Re: Arduino Fingerprint scanner project
Are you referring to this tutorial? http://learn.adafruit.com/adafruit-opti ... th-arduino
On the right side of the screen there are links to the Fingerprint Sensor, Arduino UNO, and jumper wires used in the tutorial.
The Lock-Box project has a parts list here, with links to the parts available from our store: http://learn.adafruit.com/biometric-security-box/parts
On the right side of the screen there are links to the Fingerprint Sensor, Arduino UNO, and jumper wires used in the tutorial.
The Lock-Box project has a parts list here, with links to the parts available from our store: http://learn.adafruit.com/biometric-security-box/parts
-
- Posts: 11
- Joined: Tue Feb 05, 2013 12:58 pm
Re: Arduino Fingerprint scanner project
Thank you very much that is what I needed. If I wanted to connect a cell phone to the same project to be able to unlock the box via text is that possible by using only one Arduino board? Or do you all already have a kit similar as such?
- adafruit_support_bill
- Posts: 88096
- Joined: Sat Feb 07, 2009 10:11 am
Re: Arduino Fingerprint scanner project
That sounds like a great project! You would probably need something like a GPRS/GSM shield. We don't have any firsthand experience with that shield so we don't have a tutorial for that. There is some good information on it here: http://labs.arduino.cc/GPRS/Index
-
- Posts: 11
- Joined: Tue Feb 05, 2013 12:58 pm
Re: Arduino Fingerprint scanner project
Thanks last questions here, I looked at the suggested Arduino board for the lock box project could I instead use the Arduino Uno R3? If not, if I order the suggested one could It come assembled already?
- adafruit_support_bill
- Posts: 88096
- Joined: Sat Feb 07, 2009 10:11 am
Re: Arduino Fingerprint scanner project
An UNO-R3 will work fine for that project. If you are going to add the GPRS/GSM shield, I'd suggest using a larger box than the one in the example. There isn't enough room to stack a shield inside the false-lid on the 4x6 card file. But Vaultz and similar boxes come in a variety of sizes.
-
- Posts: 11
- Joined: Tue Feb 05, 2013 12:58 pm
Re: Arduino Fingerprint scanner project
Finally starting to try and do the fingerprint scanner project but currently running into a few problems. One problem is when I hook up the fingerprint scanner directly into the Arduino board the red light of the scanner comes on for only a fraction of a second. i have the Red wire-5V pin, Black wire- Gnd, White wire- Pin 3 and Green wire to Pin 2.
The second problem have encountred is loading the correct library i guess. The libary i loaded was the Adafruit_fingerprint.cpp but when i try and upload it to my Arduino Uno board i recieve this error:
core.a(main.cpp.o): In function `main':
C:\Users\Guest\Downloads\arduino-1.0.3-windows\arduino-1.0.3\hardware\arduino\cores\arduino/main.cpp:11: undefined reference to `setup'
C:\Users\Guest\Downloads\arduino-1.0.3-windows\arduino-1.0.3\hardware\arduino\cores\arduino/main.cpp:14: undefined reference to `loop'
The second problem have encountred is loading the correct library i guess. The libary i loaded was the Adafruit_fingerprint.cpp but when i try and upload it to my Arduino Uno board i recieve this error:
core.a(main.cpp.o): In function `main':
C:\Users\Guest\Downloads\arduino-1.0.3-windows\arduino-1.0.3\hardware\arduino\cores\arduino/main.cpp:11: undefined reference to `setup'
C:\Users\Guest\Downloads\arduino-1.0.3-windows\arduino-1.0.3\hardware\arduino\cores\arduino/main.cpp:14: undefined reference to `loop'
- adafruit_support_bill
- Posts: 88096
- Joined: Sat Feb 07, 2009 10:11 am
Re: Arduino Fingerprint scanner project
Does the SFGDemo utility connect to the scanner?
You don't want to load the library. It wont compile by itself. You want to load one of the example sketches that uses it.The libary i loaded was the Adafruit_fingerprint.cpp but when i try and upload it to my Arduino Uno board i recieve this error:
-
- Posts: 11
- Joined: Tue Feb 05, 2013 12:58 pm
Re: Arduino Fingerprint scanner project
I am unfamiliar with the SFGdemo. This is my first time doing an Arduino project. Had gotten a little lost with the fingerprint enrolment video from adafruit at the part it instructs about the library.
- adafruit_support_bill
- Posts: 88096
- Joined: Sat Feb 07, 2009 10:11 am
Re: Arduino Fingerprint scanner project
The SFGDemo utility is the windows download on the downloads tab by the product description. Unfortunately, the instructions for it seem to have been dropped from the new tutorial.
If you open File->Examples, there should be an entry for the fingerprint library and the example sketches. If you can compile one of those, your library is installed properly.
If you open File->Examples, there should be an entry for the fingerprint library and the example sketches. If you can compile one of those, your library is installed properly.
- atulpatidar
- Posts: 2
- Joined: Mon Sep 21, 2015 11:45 am
Re: Arduino Fingerprint scanner project
I am trying the use this finger print scanner with teensy 3.1 and getting the following error---
enroll.ino: In function 'uint8_t getFingerprintEnroll(int)':
enroll.ino:199:1: warning: control reaches end of non-void function [-Wreturn-type]
I am trying to make some changes to the library of arduino to work with teensy 3.1. Please provide some suggestions for where to start making changes in the library.
Thanks
enroll.ino: In function 'uint8_t getFingerprintEnroll(int)':
enroll.ino:199:1: warning: control reaches end of non-void function [-Wreturn-type]
I am trying to make some changes to the library of arduino to work with teensy 3.1. Please provide some suggestions for where to start making changes in the library.
Thanks
- atulpatidar
- Posts: 2
- Joined: Mon Sep 21, 2015 11:45 am
Re: Arduino Fingerprint scanner project
I was able to solve the previous problem; also now the error is --Did not find fingerprint sensor :( while using the teensy3.1. I am using the following code. I tried using all the serial pins on teensy still was not able to connect. Let me know if I am doing any mistake in the code. Thank you
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
#define rxPin 9
#define txPin 10
uint8_t getFingerprintEnroll(int id);
// pin #0 is IN from sensor (GREEN wire)
// pin #1 is OUT from arduino (WHITE wire)
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
byte pinState = 0;
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
void setup()
{
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
Serial.begin(9600);
Serial.println("fingertest");
// set the data rate for the sensor serial port
finger.begin(9600);
if (finger.verifyPassword()) {
Serial.println("Found fingerprint sensor!");
} else {
Serial.println("Did not find fingerprint sensor :(");
while (1);
}
}
void loop() // run over and over again
{
Serial.println("Type in the ID # you want to save this finger as...");
int id = 0;
while (true) {
while (! Serial.available());
char c = Serial.read();
if (! isdigit(c)) break;
id *= 10;
id += c - '0';
}
Serial.print("Enrolling ID #");
Serial.println(id);
while (! getFingerprintEnroll(id) );
}
uint8_t getFingerprintEnroll(int id) {
int p = -1;
Serial.println("Waiting for valid finger to enroll");
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.println(".");
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(1);
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("Unknown error");
return p;
}
Serial.println("Remove finger");
delay(2000);
p = 0;
while (p != FINGERPRINT_NOFINGER) {
p = finger.getImage();
}
p = -1;
Serial.println("Place same finger again");
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.print(".");
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");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("Unknown error");
return p;
}
// OK converted!
p = finger.createModel();
if (p == FINGERPRINT_OK) {
Serial.println("Prints matched!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_ENROLLMISMATCH) {
Serial.println("Fingerprints did not match");
return p;
} else {
Serial.println("Unknown error");
return p;
}
Serial.print("ID "); Serial.println(id);
p = finger.storeModel(id);
if (p == FINGERPRINT_OK) {
Serial.println("Stored!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_BADLOCATION) {
Serial.println("Could not store in that location");
return p;
} else if (p == FINGERPRINT_FLASHERR) {
Serial.println("Error writing to flash");
return p;
} else {
Serial.println("Unknown error");
return p;
}
}
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
#define rxPin 9
#define txPin 10
uint8_t getFingerprintEnroll(int id);
// pin #0 is IN from sensor (GREEN wire)
// pin #1 is OUT from arduino (WHITE wire)
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
byte pinState = 0;
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
void setup()
{
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
Serial.begin(9600);
Serial.println("fingertest");
// set the data rate for the sensor serial port
finger.begin(9600);
if (finger.verifyPassword()) {
Serial.println("Found fingerprint sensor!");
} else {
Serial.println("Did not find fingerprint sensor :(");
while (1);
}
}
void loop() // run over and over again
{
Serial.println("Type in the ID # you want to save this finger as...");
int id = 0;
while (true) {
while (! Serial.available());
char c = Serial.read();
if (! isdigit(c)) break;
id *= 10;
id += c - '0';
}
Serial.print("Enrolling ID #");
Serial.println(id);
while (! getFingerprintEnroll(id) );
}
uint8_t getFingerprintEnroll(int id) {
int p = -1;
Serial.println("Waiting for valid finger to enroll");
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.println(".");
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(1);
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("Unknown error");
return p;
}
Serial.println("Remove finger");
delay(2000);
p = 0;
while (p != FINGERPRINT_NOFINGER) {
p = finger.getImage();
}
p = -1;
Serial.println("Place same finger again");
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.print(".");
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");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("Unknown error");
return p;
}
// OK converted!
p = finger.createModel();
if (p == FINGERPRINT_OK) {
Serial.println("Prints matched!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_ENROLLMISMATCH) {
Serial.println("Fingerprints did not match");
return p;
} else {
Serial.println("Unknown error");
return p;
}
Serial.print("ID "); Serial.println(id);
p = finger.storeModel(id);
if (p == FINGERPRINT_OK) {
Serial.println("Stored!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_BADLOCATION) {
Serial.println("Could not store in that location");
return p;
} else if (p == FINGERPRINT_FLASHERR) {
Serial.println("Error writing to flash");
return p;
} else {
Serial.println("Unknown error");
return p;
}
}
- sfrase
- Posts: 7
- Joined: Thu Feb 16, 2017 1:22 pm
Re: Arduino Fingerprint scanner project
I have a FPS that is returning 128 from createModel( )
That is not defined and I have tried another identical sensor and get the same error.
Any idea how to solve this?
That is not defined and I have tried another identical sensor and get the same error.
Any idea how to solve this?
- adafruit_support_bill
- Posts: 88096
- Joined: Sat Feb 07, 2009 10:11 am
Re: Arduino Fingerprint scanner project
@sfrase - Please start a new thread for your question - here: viewforum.php?f=22
Please be positive and constructive with your questions and comments.