风筝
发表于: 2019-1-22 14:48:07 | 显示全部楼层

使用FPM10A指纹模块、Arduino UNO和Arduino IDE制作一个指纹扫描仪。


虽然您可以使用密码和密钥访问安全系统,但这两个方法都很不方便,并且容易忘记。在本篇文章中,我们将主要学习如何将FPM10A与Adafruit Arduino库一起使用来制作生物识别指纹系统。

biometric fingerprint system.jpg


所需的组件

●    FPM10A指纹模块

●    Arduino Uno开发板

●    Arduino IDE


安装和使用库

使用FPM10A的第一步是安装Adafruit指纹库,可以使用库管​​理器(Library Manager)完成。打开Arduino IDE,然后导航到Sketch> Include Library> Manage Libraries

Manage Libraries.jpg


当库管理器加载“Fingerprint”的搜索结果时,第一个结果应该是Adafruit指纹传感器库(Adafruit Fingerprint Sensor Library)。然后安装该库。

Fingerprint.jpg

安装库后,就可以创建一个新的Arduino项目了。单击File > New,然后将项目保存在自己的文件夹中。此时,打开项目文件夹并将“fingerprint.h”文件复制到其中。

project folder.jpg


这是我写的一个特殊的头文件,使指纹库更容易使用。头文件只有三个函数:

●    fingerprint_setup() - 将串行端口配置为9600波特并连接到模块

●    readFingerprint() - 一个轮询函数,如果发生任何无效事件则返回-1,如果找到成功的打印则返回其他返回值

●    enrollFingerprint(int id) - 为系统添加指纹ID为“id”的指纹。


要在项目中包含此文件,只需使用include命令,如下所示:

  1. #include "fingerprint.h"
复制代码

您需要在setup()函数中调用的第一个函数是fingerprint_setup(),它会自动连接到模块并确认一切正常。

  1. void setup()
  2. {
  3.   fingerprint_setup();
  4. }
复制代码

要添加新指纹,请调用enrollFingerprint(id)函数。如果发生错误,该函数将返回-1,但其他值表示指纹注册成功。传递给此函数的ID是指向扫描指纹的链接,每个指纹都有唯一的ID号。

  1. enrollFingerprint(0x01);
复制代码

制作和使用指纹扫描仪

由于它使用串行端口进行通信,因此使该模块工作非常容易。但是,由于Arduino Uno只有一个硬件串口,因此需要使用软件串口使用引脚2和3与指纹模块通信(硬件串口保留用于PC通信)。

hardware serial port.jpg


FPM10A模块附带的带状电缆不适合业余爱好者使用,因为它采用1.27mm间距封装,因此我将一侧切断,然后将导线暴露出来,连接到跳线。

connected to jumpers.jpg

connected to jumpers-2.jpg

Image courtesy.jpeg


当您启动此项目时,它将首先要求您将手指放在扫描仪上。如果扫描仪能够读取您的指纹,它将要求您移除然后更换扫描仪上的手指。这会导致扫描仪成功将指纹添加到ID 1,将手指放在扫描仪上会导致系统授予访问权限。

project.jpg


该项目可以轻松扩展,包括电磁锁和继电器,只允许授权用户进行更改和解锁系统。准备好后,将新的扫描仪安装到门、橱柜、保险箱、窗户、电气系统、计算机等等!


该项目的完整代码如下所示:

  1. #include "fingerprint.h"

  2. void setup()
  3. {
  4.   fingerprint_setup();
  5. }

  6. void loop()
  7. {
  8.   // Create a new fingerprint entry
  9.   enrollFingerprint(0x01);
  10.   delay(1000);

  11.   // Request entry
  12.   Serial.println(" \nUSER LOGIN REQUEST...PLACE FINGER ONTO SENSOR  \n");
  13.   while(readFingerprint() == -1);
  14.   Serial.println(" \nACCESS GRANTED \n");
  15.   Serial.println(" \nFingerprint confidence : " + String(confidence) + " \n");  
  16.   delay(3000);
  17. }
复制代码

跳转到指定楼层
cyrs
发表于: 2019-5-14 12:40:05 | 显示全部楼层

FPM10也可以吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 705 | 回复: 1492



手机版|

GMT+8, 2024-11-24 11:12 , Processed in 0.039804 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表