Биометрический сканер отпечатков пальцев
- Войдите на сайт для отправки комментариев
Пнд, 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