当前位置:首页 > 文章中心 > 正文内容

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

dgx6662个月前 (05-26)文章中心20


这篇文章是有关如何在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()函数完成的,

    示范

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

    写到最后

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

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

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

    扫描二维码推送至手机访问。

    版权声明:本文由第六芝士网发布,如需转载请注明出处。

    本文链接:http://www.dgx666.com/post/1920.html

    标签: arduino下载
    分享给朋友:

    “Arduino指纹传感器模块使用方法(FPM10A)” 的相关文章

    公文印制版式标准

    ××××局文件(空 6 行,文号在第 7 行,文号下沿与红线距离 4mm,年份括号为六角括号)字〔2021〕X 号(抬头空两行)关于规范公文印制版式标准的通知(空一行) (正文标题方正小标宋简体 2 号,34 磅)局机关各科室:一、排版标准(一)版式1.页眉 1.5,页脚 2.3;页边距上 3.7,...

    安卓手机QQ5.9.1发布下载:修复部分机型兼容问题

    IT之家讯 9月24日消息,安卓版QQ5.9迎来小幅升级版本,本次更新修复了部分机型系统兼容性问题。手机QQ5.9对群通话管理进行了改进,做到有序发言,掌控全场;另外群文件搜索支持模糊查找,以快速搜索目标。安卓手机QQ5.9.1发布日志:o 群通话管理,有序发言,掌握全场; o 群文件搜索:模糊查找...

    在安装Auto CAD时出现Allied product not found错误时怎么办

    朋友在安装AutoCAD时不慎误删了一个文件夹,结果导致安装AutoCAD时总是跳出”allied product not found”的错误。如果在安装Auto CAD时出现Allied product not found错误时怎么办?请您先不要着急哦 奋斗的雷 来帮您解决目前遇到的问题.今天就已...

    AutoCAD 软件介绍、软件安装

    第一章 AutoCAD入门必读本章目标& 了解AutoCAD的含义、应用领域及发展历程& 实操软件安装与注册& 掌握界面组成及应用& 掌握命令操作方法& 熟记选取图形的几种方式并应用& 实操坐标输入与动态输入内容讲解:第1天——兴趣启发,原来黑底白线的CAD可以这样有意思。今天,展英飞来找老师补习功...

    《魔兽争霸III》官方对战平台1.2.0版本更新公告

    《魔兽争霸III》官方对战平台1.2.0版本更新完毕,备受期待的RPG游戏大厅也随之正式上线。以下是本次更新的具体内容:房间列表入口调整:房间列表的入口被调整到标签页的右侧,与游戏大厅互相独立开放RPG游戏大厅,大厅新增功能如下:新增地图分类及搜索功能:玩家可以在游戏大厅内通过地图类型或地图名快速搜...

    CAD2007怎么安装?CAD2007中文版的安装教程

    CAD2007是很多从事建筑设计,尤其是结构设计最经常使用的一款专业绘图软件。不少网友下载了CAD2007安装包之后,却不会安装CAD2007,因为他下载的CAD2007的英文版,而一些网友下载了CAD2007中文版的网友,却因为不是在NET2.0以上的安装环境而安装失败。今天,小编就给大家演示一下...