这篇文章是关于如何在 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 – 黑线
下表显示了如何将传感器连接到 Arduino。
指纹感应器 | 阿杜诺 |
电压互感器 | 5V (它也适用于 3.3V) |
TX | RX(数字引脚 2, 软件序列号) |
RX | TX(数字引脚3, 软件序列号) |
GND | GND |
安装 Adafruit 指纹传感器库
使用 Arduino 控制指纹传感器模块的最简单方法是使用该传感器的 Adafruit 库。按照以下说明安装库:
- 首先下载Adafruit 指纹传感器库。您的下载文件夹中应该有一个 .zip 文件夹,下载地址:
- 解压缩.zip文件夹,您应该获得Adafruit-Fingerprint-Sensor-Library-master文件夹
- 重命名您的文件夹 Adafruit-Fingerprint-Sensor-Library-master文件夹到 Adafruit_Fingerprint_Sensor_Library 文件夹
- 将文件夹移动到您的 Arduino IDE 安装库文件夹
- 最后,重新打开您的 Arduino IDE
注册新指纹
将指纹传感器模块连接到Arduino,按照以下步骤注册新的指纹。确保您之前已安装 Adafruit 指纹传感器库。
1.在 Arduino IDE 中,转到文件>示例> Adafruit Fingerprint Sensor Library > Enroll
2.上传代码,以9600的波特率打开串口监视器。
3.您应该为指纹输入一个 ID。由于这是您的第一个指纹,请在左上角输入 1,然后单击发送按钮。
4.将手指放在扫描仪上并按照串行监视器上的说明进行操作。
系统会要求您将同一根手指放在扫描仪上两次。如果你得到“打印匹配!”消息,如下图,您的指纹存储成功。如果没有,请重复该过程,直到成功。
使用此方法存储任意数量的指纹。
寻找匹配
您现在应该在不同的 ID 上保存了几个指纹。要查找与指纹传感器的匹配项,请按照以下说明进行操作。
1.在 Arduino IDE 中,转到文件>示例> Adafruit Fingerprint Sensor Library > Fingerprint并将代码上传到您的 Arduino 板。
2. 以 9600 的波特率打开串行监视器。您应该看到以下消息:
3. 将要识别的手指放在扫描件上。
4.在串行监视器上,您可以看到与指纹匹配的ID。它还显示了相似度——相似度越高,指纹与存储的指纹越相似。
项目示例 – 在 OLED 显示屏上显示指纹匹配
在这个项目示例中,我们将登记来自两个不同人的两个指纹。然后,我们将在 OLED 显示屏上根据找到的匹配显示一条问候消息。
要了解有关 OLED 显示器的更多信息,可以在网站搜索oled相关的arduino教程进行学习。
所需零件
对于此示例,您将需要以下部分:
- Arduino UNO
- 指纹传感器模块
- 0.96英寸OLED显示屏
- 面包板
- 连接线
示意图
这是为该项目制作电路时应遵循的接线图。
安装0.96英寸OLED库
要控制 OLED 显示器,您需要 adafruit_SSD1306.h 和 adafruit_GFX.h 库。按照以下说明安装这些库。
1. 打开您的 Arduino IDE 并转到 Sketch > Include Library > Manage Libraries。库管理器应该打开。
2.在搜索框中输入“ SSD1306 ”并安装来自 Adafruit 的 SSD1306 库。
3.从Adafruit安装SSD1306库后,在搜索框中输入“ GFX ”并安装该库。
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 和 IDname。
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() 函数,
示范
现在,当保存指纹的人将手指放在传感器上时,它会显示一条问候消息。
大佬有没有联系方式,带带我
有问题可以直接留言,看到了会回复你的。
谢谢大佬
谢谢大佬
谢谢大佬
谢谢大佬
谢谢
谢谢大佬
666
来学习研究
谢谢大佬
谢谢大佬
666
谢谢大佬
看了似乎有用,好像又没用
大佬有没有联系方式,带带我
谢谢大佬
感谢