首页 > 解决方案 > 如何使用 Adafruit_Fingerprint.h 验证指纹是否存在并注册?

问题描述

我有一个问题,我需要在注册之前验证指纹,我的问题是我必须将手指放在指纹上 3 次,我宁愿只做两次这是正常的。验证是好的,就是不知道为什么要移开手指才能继续注册这个,getFingerprintEnroll ()方法里就是这样。

我的期望是第一次将手指放在传感器上,这里我验证指纹不存在,如果它没有注册,首先捕获它进行注册,而无需将手指从传感器上移开并且其余的不再重要了。

在我的loop我有类似的东西:

id = readnumber();
// ...
while ((huella = finger.getImage()) != FINGERPRINT_OK);
if (getFingerprintIDez() != -1) {
    Serial.println("exist");
    return;  
} else {
    Serial.println("no_exist");  
    while (!  getFingerprintEnroll() );
}

我使用的方法是:

int getFingerprintIDez() {
    uint8_t p = huella;
    if (p != FINGERPRINT_OK)  return -1;
    p = finger.image2Tz();
    if (p != FINGERPRINT_OK)  return -1;
    p = finger.fingerFastSearch();
    if (p != FINGERPRINT_OK)  return -1;
    return finger.fingerID; 
}

uint8_t getFingerprintEnroll() {
  int p = -1;
  while (p != FINGERPRINT_OK) {
    p = finger.getImage(); // Here it is paused until I remove my finger
  }
  //...
}

最初以西班牙语发布在这里

标签: arduinofingerprint

解决方案


为了在匹配指纹(FRR 和 FAR)上有良好的性能,注册过程需要多次捕获相同的手指以合并细节列表(例如在 iOS 或 Android 上工作)。

在 adafruit SDK 上,您可以设置安全级别: 错误接受率:<0.001%(安全级别 3) 错误拒绝率:<1.0%(安全级别 3)也许这会改变注册所需的时间(取决于 SDK )。

在你的情况下,我建议你:

  1. 注册前捕获手指检查不已存在
  2. 通过多次捕获开始注册

推荐阅读