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

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

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

指纹传感器模块介绍

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

fingerprint-sensor-module-f

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

规格

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

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

传感器引脚排列

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

arduino-fingerprint-pins-labeled-1

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

  • DNC——白线
  • VCC——红线
  • TX——蓝线
  • RX——绿线
  • GND – 黑线
wires-soldered

下表显示了如何将传感器连接到 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,然后单击发送按钮。

enroll-serial-monitor

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

enroll-finger

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

enroll-serial-monitor-match-f

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

寻找匹配

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

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

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

fingerprint-match-1

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

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

fingerprint-match-2

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

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

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

所需零件

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

parts-required
  • Arduino UNO  
  • 指纹传感器模块
  • 0.96英寸OLED显示屏
  • 面包板
  • 连接线

 

示意图

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

fingerprint_OLED_schematic_bb

安装0.96英寸OLED库

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

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

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

install-ssd1306-adafruit-library

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

install-gfx-library-adafruit

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() 函数,

示范

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

demonstration

给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

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索