使用 Arduino 的指纹传感器模块指南 (FPM10A)

释放双眼,带上耳机,听听看~!

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

指纹传感器模块介绍

指纹传感器模块,如下图所示,使指纹识别更易于访问并易于添加到您的项目中。这意味着进行指纹采集、注册、比较和搜索是非常容易的。

使用 Arduino 的指纹传感器模块指南 (FPM10A)

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

规格

这是我们正在使用的指纹传感器模块的规格:

  • 供电电压:DC 3.6~6.0V
  • 电流供应:<120mA
  • 背光颜色:绿色
  • 接口:UART
  • 不良率:9600
  • 安全等级:五级(从低到高:1、2、3、4、5)
  • 错误接受率 (FAR):<0.001%(安全级别 3)
  • 错误拒绝率 (FRR):<1.0%(安全级别 3)
  • 能够存储127个不同的指纹

传感器引脚排列

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

使用 Arduino 的指纹传感器模块指南 (FPM10A)

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

  • DNC——白线
  • VCC——红线
  • TX——蓝线
  • RX——绿线
  • GND – 黑线
使用 Arduino 的指纹传感器模块指南 (FPM10A)

下表显示了如何将传感器连接到 Arduino。

指纹感应器 阿杜诺
电压互感器 5V (它也适用于 3.3V)
TX RX(数字引脚 2, 软件序列号)
RX TX(数字引脚3, 软件序列号)
GND GND

安装 Adafruit 指纹传感器库

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

  1. 首先下载Adafruit 指纹传感器库。您的下载文件夹中应该有一个 .zip 文件夹,下载地址:

  1. 解压缩.zip文件夹,您应该获得Adafruit-Fingerprint-Sensor-Library-master文件夹
  2. 重命名您的文件夹  Adafruit-Fingerprint-Sensor-Library-master文件夹到  Adafruit_Fingerprint_Sensor_Library 文件夹
  3. 将文件夹移动到您的 Arduino IDE 安装库文件夹
  4. 最后,重新打开您的 Arduino IDE

注册新指纹

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

1.在 Arduino IDE 中,转到文件>示例> Adafruit Fingerprint Sensor Library > Enroll

2.上传代码,以9600的波特率打开串口监视器。

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

使用 Arduino 的指纹传感器模块指南 (FPM10A)

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

使用 Arduino 的指纹传感器模块指南 (FPM10A)

系统会要求您将同一根手指放在扫描仪上两次。如果你得到“打印匹配!”消息,如下图,您的指纹存储成功。如果没有,请重复该过程,直到成功。

使用 Arduino 的指纹传感器模块指南 (FPM10A)

使用此方法存储任意数量的指纹。

寻找匹配

您现在应该在不同的 ID 上保存了几个指纹。要查找与指纹传感器的匹配项,请按照以下说明进行操作。

1.在 Arduino IDE 中,转到文件>示例> Adafruit Fingerprint Sensor Library > Fingerprint并将代码上传到您的 Arduino 板。

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

使用 Arduino 的指纹传感器模块指南 (FPM10A)

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

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

使用 Arduino 的指纹传感器模块指南 (FPM10A)

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

在这个项目示例中,我们将登记来自两个不同人的两个指纹。然后,我们将在 OLED 显示屏上根据找到的匹配显示一条问候消息。

要了解有关 OLED 显示器的更多信息,可以在网站搜索oled相关的arduino教程进行学习。

所需零件

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

使用 Arduino 的指纹传感器模块指南 (FPM10A)
  • Arduino UNO  
  • 指纹传感器模块
  • 0.96英寸OLED显示屏
  • 面包板
  • 连接线

 

示意图

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

使用 Arduino 的指纹传感器模块指南 (FPM10A)

安装0.96英寸OLED库

要控制 OLED 显示器,您需要 adafruit_SSD1306.h 和 adafruit_GFX.h 库。按照以下说明安装这些库。

1. 打开您的 Arduino IDE 并转到 Sketch  >  Include Library  >  Manage Libraries。库管理器应该打开。

2.在搜索框中输入“ SSD1306 ”并安装来自 Adafruit 的 SSD1306 库。

使用 Arduino 的指纹传感器模块指南 (FPM10A)

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

使用 Arduino 的指纹传感器模块指南 (FPM10A)

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

代码

在上传代码之前,您需要从不同的人那里注册不同的指纹。转到上面的“注册新指纹”部分,上传给定的代码并按照说明注册两个指纹。

然后,修改代码,使指纹 ID 与登记人员的姓名相匹配 – 向下滚动到页面以查看代码说明。最后,您可以上传提供的代码:

 

导入库

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

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

我们还需要导入指纹传感器所需的库: Adafruit_Fingerprint.h 和 软件序列号.

#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>

以下行在引脚 2 和 3 上设置软件串行。 引脚 2 作为 RX,和 引脚 3 作为TX。

SoftwareSerial mySerial(2, 3);

然后,我们创建一个 Adafruit_Fingerprint 被调用的对象 手指 在我们之前设置的串行引脚上。

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

接下来的两行创建变量来保存指纹 ID 和 IDn​​ame。

int fingerprintID = 0;
String IDname;

setup()

在  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()

在  loop() 里面,代码在 OLED 显示屏上显示主屏幕——这是在 displayMainScreen() 函数。然后,代码会不断检查传入的指纹。如果传感器发现保存的指纹,则 Arduino 将相应的 ID 保存在指纹ID variable。

然后,该代码具有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() 函数,

示范

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

使用 Arduino 的指纹传感器模块指南 (FPM10A)

给TA打赏
共{{data.count}}人
人已打赏
ESP32-CAM免费项目

使用ESP32-CAM将图像发布到本地或云服务器-PHP(Photo Manager)

2021-5-31 12:58:14

ArduinoArduino-进阶免费项目

Arduino使用 MFRC522 RFID 阅读器进行安全访问

2021-6-1 22:44:14

17 条回复 A文章作者 M管理员
  1. z4166

    大佬有没有联系方式,带带我

    • Luca

      有问题可以直接留言,看到了会回复你的。

  2. Hong雅

    谢谢大佬

  3. 康康

    谢谢大佬

  4. Runningman

    谢谢大佬

  5. Runningman

    谢谢

  6. 一只岩浆?

    谢谢大佬

  7. 左手上阵

    谢谢大佬

  8. jiangjun

    看了似乎有用,好像又没用

  9. fairsky

    大佬有没有联系方式,带带我

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
'); })();