Биометрический сканер отпечатков пальцев
- Войдите на сайт для отправки комментариев
Пнд, 23/11/2015 - 13:51
Помогите пожалуйста сделать так, чтобы сканер отпечатков пальцев сохранял отпечатки на микроконтроллере а не в своей памяти, и чтобы можно было записать несколько отпечатков а не один. С моим скетчем только 1 отпечаток можно сохранить. Вот скетч:
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
uint8_t getFingerprintEnroll(int id);
// pin #2 is IN from sensor (GREEN wire)
// pin #3 is OUT from arduino (WHITE wire)
SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
void setup()
{
Serial.begin(9600);
Serial.println("fingertest");
// 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);
}
}
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;
}
}
За пожалуста непомогу. Для обсуждения проека и бюджета мнужен ваш емейл/скайп.
Помогите пожалуйста сделать так, чтобы сканер отпечатков пальцев сохранял отпечатки на микроконтроллере а не в своей памяти, и чтобы можно было записать несколько отпечатков а не один. С моим скетчем только 1 отпечаток можно сохранить.
Сигнатура отпечатка занимает 256 байт. Это значит, что без доп информации о носителе отпечатка (а это неправильно) в еепром Уно поместится 4 сигнатуры (с доп. инфо - 3 сигнатуры). В Мегу можно впихнуть 16 (14-15) сигнатур.
У вас какая плата?
у меня уно. получается для сохранения большего количества отпечатко мне будет необходима плата Мега а в Уно только 3 отпечатка поместятся да?
вот маил kasumali@mail.ru
у меня уно. получается для сохранения большего количества отпечатко мне будет необходима плата Мега а в Уно только 3 отпечатка поместятся да?
Вы заставляете повторять. Да.
Можно добавить SD карточку - тогда дофига.
а что же тогда в коде нужно изменить для этого? хотя бы 4 отпечатка чтобы сохранить
За пожалуста непомогу. Для обсуждения проека и бюджета мнужен ваш емейл/скайп.
kasumali@mail.ru
Ответил на емейл.
а что же тогда в коде нужно изменить для этого? хотя бы 4 отпечатка чтобы сохранить
Повторю, 4 - это абсолютный максимум, если использовать еепром. Но какой вам смысл в этих отпечатках, если информацию о них хранить негде?
Чтобы записать информации в еепром, нужно, как бы странно это не звучало - записать ее в еепром.
Вам поступила куча предложений. Если ни с кем не договоритесь - напишите
StudioGippopotan@gmail.com
а что же тогда в коде нужно изменить для этого? хотя бы 4 отпечатка чтобы сохранить
Повторю, 4 - это абсолютный максимум, если использовать еепром. Но какой вам смысл в этих отпечатках, если информацию о них хранить негде?
Чтобы записать информации в еепром, нужно, как бы странно это не звучало - записать ее в еепром.
Вам поступила куча предложений. Если ни с кем не договоритесь - напишите
StudioGippopotan@gmail.com
а что же тогда в коде нужно изменить для этого? хотя бы 4 отпечатка чтобы сохранить
Повторю, 4 - это абсолютный максимум, если использовать еепром. Но какой вам смысл в этих отпечатках, если информацию о них хранить негде?
Чтобы записать информации в еепром, нужно, как бы странно это не звучало - записать ее в еепром.
Вам поступила куча предложений. Если ни с кем не договоритесь - напишите
StudioGippopotan@gmail.com
Да, вы правы.
StudioGippopotam@gmail.com