Arduino指纹传感器模块使用方法(FPM10A)

Arduino指纹传感器模块使用方法(FPM10A)

首页角色扮演代号指纹更新时间:2024-06-04

这篇文章是有关如何在Arduino上使用指纹传感器模块的入门指南。我们将向您展示如何注册新的指纹ID,以及如何找到指纹匹配项。

指纹传感器模块介绍

(如下图所示)使指纹识别更易于访问,并且易于添加到您的项目中。这意味着超级容易进行指纹收集,注册,比较和搜索。

这些模块带有闪存以存储指纹,并可以与任何具有TTL串行的微控制器或系统一起使用。这些模块可以添加到安全系统,门锁,考勤系统等中。

技术指标

这是我们正在使用的的规格(您应该检查传感器数据表或供应商提供的规格-它们应该与这些没有太大不同):

· 电源电压:DC 3.6至6.0V

· 电流供应:<120mA

· 背光颜色:绿色

· 接口:UART

· 不良率:9600

· 安全级别:五(从低到高:1,2,3,4,5)

· 错误接受率(FAR):<0.001%(安全级别3)

· 错误拒绝率(FRR):<1.0%(安全级别3)

· 能够存储127种不同的指纹

传感器引脚排列

传感器有六个引脚,如下图所示。

该项目中使用的指纹传感器模块的导线非常细,因此需要焊接面包板连接的导线。我们建议根据引脚功能使用不同的颜色。在我们的情况下:

· DNC –白线

· VCC –红线

· TX –蓝线

· RX –绿线

· GND –黑线

安装Adafruit指纹传感器库

使用Arduino控制指纹传感器模块的最简单方法是使用该传感器的Adafruit库。按照以下说明安装库:

1. 您应先下载库文件Adafruit库,您的下载文件夹中应该有一个.zip文件夹

2. 解压缩.zip文件夹,您应该获得Adafruit-fingerprint-Sensor-Library-master文件夹

3. 重命名文件夹 到 Adafruit_Fingerprint_Sensor_Library文件夹

4. 将文件夹移到Arduino IDE安装库文件夹

5. 最后,重新打开您的Arduino IDE

注册新指纹

将指纹传感器模块连接到Arduino,按照以下步骤注册新的指纹。确保之前已安装Adafruit指纹传感器库。

1.在Arduino IDE中,转到文件 > 示例 > Adafruit 指纹 传感器 > 。

2.上载代码,然后以9600的波特率打开串行监视器。

3.您应该输入指纹的ID。因为这是您的第一个指纹,所以在左上角键入1,然后单击" 发送"按钮。

4.将手指放在扫描仪上,然后按照串行监视器上的说明进行操作。

系统会要求您将同一根手指两次放在扫描仪上。如果您得到" 输出匹配!"消息,如下所示,您的指纹已成功存储。如果没有,请重复该过程,直到成功。

使用此方法可以存储尽可能多的指纹。

寻找比赛

现在,您应该在不同的ID上保存了多个指纹。要与指纹传感器匹配,请遵循以下说明。

1.在Arduino IDE中,转到文件 > 示例 > Adafruit 指纹 传感器 > 然后将代码上传到Arduino板。

2. 以9600的波特率打开串行监视器。您应该看到以下消息:

3. 将要识别的手指放在扫描上。

4.在串行监视器上,您可以看到与指纹匹配的ID。它还显示置信度–置信度越高,指纹与存储的指纹相似。

项目示例–在OLED显示屏上显示指纹匹配

在此项目示例中,我们将注册来自两个不同人员的两个指纹。然后,我们将在OLED显示屏上显示与找到的匹配项相对应的问候消息。

所需零件

对于此示例,您将需要以下部分:

  • Arduino UNO
  • 指纹传感器模块
  • 0.96英寸OLED显示屏
  • 面包板
  • 跳线
  • 原理图

    这是您为该项目制作电路时应遵循的接线图。

    安装0.96英寸OLED库

    1.打开您的Arduino IDE并转到 草图 > 包含库 > 管理库。库管理器应打开。

    2. 在搜索框中键入" SSD1306 ",然后从Adafruit安装SSD1306库。

    3.从Adafruit安装SSD1306库后,在搜索框中键入" GFX "并安装该库。

    4.安装库之后,重新启动Arduino IDE。

    程序代码

    在上传代码之前,您需要注册来自不同人员的不同指纹。转到上方的" 注册新指纹"部分,上传给定代码,然后按照说明注册两个指纹。

    然后,修改代码,以使指纹ID与注册人员的姓名匹配–向下滚动至页面以获取代码说明。最后,您可以上传提供的代码。

    #include <Wire.h>

    #include <Adafruit_GFX.h>

    #include <Adafruit_SSD1306.h>

    #define OLED_RESET 4

    Adafruit_SSD1306 display(OLED_RESET);

    #include <Adafruit_Fingerprint.h>

    #include <SoftwareSerial.h>

    SoftwareSerial mySerial(2, 3);

    Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

    int fingerprintID = 0;

    String IDname;

    void setup(){

    //Fingerprint sensor module setup

    Serial.begin(9600);

    // 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); }

    }

    //OLED display setup

    Wire.begin();

    display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

    //displays main screen

    displayMainScreen();

    }

    void loop(){

    displayMainScreen();

    fingerprintID = getFingerprintIDez();

    delay(50);

    if(fingerprintID == 1 || fingerprintID == 3 || fingerprintID == 4 || fingerprintID == 5){

    IDname = "Sara";

    displayUserGreeting(IDname);

    }

    else if(fingerprintID == 2){

    IDname = "Rui";

    displayUserGreeting(IDname);

    }

    }

    // returns -1 if failed, otherwise returns ID #

    int getFingerprintIDez() {

    uint8_t p = finger.getImage();

    if (p != FINGERPRINT_OK) return -1;

    p = finger.image2Tz();

    if (p != FINGERPRINT_OK) return -1;

    p = finger.fingerFastSearch();

    if (p != FINGERPRINT_OK) return -1;

    // found a match!

    Serial.print("Found ID #");

    Serial.print(finger.fingerID);

    Serial.print(" with confidence of ");

    Serial.println(finger.confidence);

    return finger.fingerID;

    }

    void displayMainScreen(){

    display.clearDisplay();

    display.setTextSize(1);

    display.setTextColor(WHITE);

    display.setCursor(7,5);

    display.println("Waiting fingerprint");

    display.setTextSize(1);

    display.setTextColor(WHITE);

    display.setCursor(52,20);

    display.println("...");

    display.display();

    delay(2000);

    }

    void displayUserGreeting(String Name){

    display.clearDisplay();

    display.setTextColor(WHITE);

    display.setTextSize(2);

    display.setCursor(0,0);

    display.print("Hello");

    display.setCursor(0,15);

    display.print(Name);

    display.display();

    delay(5000);

    fingerprintID = 0;

    }

    导入库

    该代码首先导入所需的库以在OLED显示器中编写,然后创建一个称为display 的Adafruit_SSD1306对象。

    #include <Wire.h>

    #include <Adafruit_GFX.h>

    #include <Adafruit_SSD1306.h>

    #define OLED_RESET 4

    Adafruit_SSD1306 display(OLED_RESET);

    #include <Adafruit_Fingerprint.h>

    #include <SoftwareSerial.h>

    SoftwareSerial mySerial(2, 3);

    然后,我们在之前设置的串行引脚上创建一个名为finger的Adafruit_Fingerprint对象。

    Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

    接下来的两行创建变量以保存指纹ID和IDname。

    int fingerprintID = 0;

    String IDname;

    设定()

    在setup()中,指纹传感器和OLED显示屏均被初始化。我们还将在串行监视器上打印一条消息,以便知道是否成功找到了指纹传感器。

    void setup(){

    //Fingerprint sensor module setup

    Serial.begin(9600);

    // 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); }

    }

    //OLED display setup

    Wire.begin();

    display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

    //displays main screen

    displayMainScreen();

    }

    循环()

    在loop()中,代码在OLED显示屏上显示主屏幕-这是通过displayMainScreen()函数完成的。然后,代码将连续检查传入的指纹。如果传感器找到保存的指纹,则Arduino将相应的ID保存在FingerprintID变量中。

    然后,该代码具有if / else语句,以检查指纹对应的ID。您应使用相应的ID和名称编辑以下代码行。

    if(fingerprintID == 1 || fingerprintID == 3 || fingerprintID == 4 || fingerprintID == 5){

    IDname = "Sara";

    displayUserGreeting(IDname);

    }

    else if(fingerprintID == 2){

    IDname = "Rui";

    有时,如果将指纹以不同的ID多次保存,则传感器会更好地识别指纹。识别ID名称后,OLED会显示问候语-这是通过displayUserGreeting()函数完成的,

    示范

    现在,当保存了指纹的人将手指放在传感器上时,它会显示一条问候消息。

    写到最后

    在这篇文章中,我们向您展示了如何使用指纹传感器模块:注册指纹并找到匹配项。

    有时,如果您的手指放置与保存时的手指不太相似,尤其是女性的指纹,则传感器很难识别指纹。我们注意到,如果将手指慢慢放在扫描仪上,传感器会更好地工作。

    我们认为,指纹传感器模块可以很好地工作,这是一种为项目添加生物识别功能的经济实惠的方法。

    查看全文
    大家还看了
    也许喜欢
    更多游戏

    Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved