这篇文章是有关如何在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

#include

#include

#define OLED_RESET 4

Adafruit_SSD1306 display(OLED_RESET);

#include

#include

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

#include

#include

#define OLED_RESET 4

Adafruit_SSD1306 display(OLED_RESET);

#include

#include

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

示范

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

写到最后

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

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

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

arduino使用oled代码_Arduino指纹传感器模块使用方法(FPM10A)相关推荐

  1. arduino使用oled代码_Arduino提高篇06—温湿度OLED显示

    关注.星标公众号,不错过精彩内容 本篇结合温湿度传感器DHT11和OLED,将采集到的温湿度显示到OLED屏幕上. DHT11使用上篇介绍的「DHT sensor library」库,OLED使用U8 ...

  2. arduino使用oled代码_Arduino提高篇04—U8g2库驱动OLED

    OLED显示屏的驱动库非常多,本篇介绍强大的U8g2库,通过使用U8g2库来驱动OLED屏. 1. U8g2库介绍 U8g2库是嵌入式设备单色图形库,支持非常多的嵌入式设备平台,如单片机,STM32, ...

  3. arduino使用oled代码_Arduino提高篇14—摇杆按键操作OLED

    关注. 星标公众号,不错过精彩内容 摇杆按键操作OLED 摇杆在很多应用场合被用来替代轻触按键,不但操作上方便,而且一个摇杆可替代多个按键,这使得电路设计得到简化.本篇演示如何将摇杆扭转的四个方向作为 ...

  4. arduino使用oled代码_如何做一个Arduino无线气象站

    今天我们来介绍如何利用DHT22传感器测量室外温度和湿度,并使用NRF24L01收发器模块将该数据无线发送到室内单元.在室内单元中,还有一个用于测量室内温度和湿度的DHT22传感器,以及一个DS323 ...

  5. 深入学习Arduino u8g2 OLED库 MAX7219_32X8点阵模块

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... 快速导航 单片机菜鸟的博客快速索引(快速找到你 ...

  6. arduino使用oled代码_【教程】在ESP32上使用E32433T LoRa模块

    [点击上方「蓝字」关注我们,一起成为技术颜控!] 正文共:2020字11图 预计阅读时间:6分钟 (为方便阅读,已标注重点) ESP32简介 ESP-WROOM-32(ESP32)是乐鑫最新发布的新一 ...

  7. arduino使用oled代码_【惊不?】Arduino改造古董卡西欧计算器为作弊神器

    一台朴实无华的计算器,卡西欧牌. 看起来和千万学子们所使用的计算器一样,没什么特别的,还带着一些陈旧的使用痕迹. 但如果你用磁铁碰一下: 咦,简直像打开了探险电影里的神秘机关,右上角的太阳能电池板部分 ...

  8. arduino使用oled代码_用 Arduino 制造一台 FM 调频收音机

    这是一个基于 Arduino 的开源的收音机项目,它具备一台标准收音机的全部功能,从控制部分到外壳都可以自己 DIY.在项目中,我们将介绍让 FM 收音机调谐器的 RDA5807 模块与 I2C 协议 ...

  9. arduino使用oled代码_实用!Arduino平台最强大的“显卡”驱动:Adafruit GFX 图形库8000字详细使用指南...

    概述 Arduino的Adafruit_GFX库为我们所有的LCD和OLED显示屏提供了通用语法和图形功能集.这使得Arduino示例程序可以很容易地在不同类型的显示屏之间进行调整,并且任何新特性.性 ...

最新文章

  1. CVPR 2022官方发布重要通知,禁止审稿期公开传播论文,静默期4个多月
  2. 技术方案——可控组播
  3. Flex Box的技巧合集 #css布局
  4. mysql 换行_教你如何用Python 连接 MySQL
  5. 计算机应用技术的创新
  6. python 清空文件夹_别这样直接运行Python命令,否则电脑等于“裸奔”
  7. 几种关系型数据库比较
  8. 单片机常用外设驱动电路
  9. 电脑有必要安装杀毒软件吗?
  10. PHP、Java、Python、C、C++ 这几种编程语言都各有什么特点或优点
  11. Tenor 和numpy array 相互转换
  12. 做事的态度与工作态度
  13. 详解谷歌VR平台Daydream:有手柄就是不一样
  14. 这篇文章有毒《持续更新中。。。》
  15. 「转」中文文案排版指北
  16. mac系统安装Anaconda后再打开终端自动进入Anaconda环境
  17. LDA与QDA分类数据的简单应用(python)
  18. PHP网站怎么放谷歌广告,如何在wordpress中加入google adsense广告(百度联盟)
  19. void __declspec(naked)解释
  20. AutoSAR的入门知识

热门文章

  1. h5页面的写法_H5如何布局?这个才是入门篇…
  2. Java+MySQL基于springboot校园博客系统#毕业设计
  3. CUDA入门教程;Transformer太火不是好事?;探求GPU极限性能的利器|AI系统前沿动态...
  4. java实现微信小程序客服功能开发
  5. python识别麻将牌_图像识别之麻将识别源码( 三 )
  6. 你的好帮手,优质chatgpt镜像网站
  7. 云服务器、虚拟主机、VPS的区别与差异(超详细解说)
  8. 中小水库中的水情遥测系统如何实现远程监控和自动报警?
  9. Tomcat : 修改Tomcat端口号
  10. 如何设置无线路由器,实现WIFI上网?