生物识别技术作为一种可靠的认证系统已经被使用很长一段时间了。现今存在很多复杂的生物识别系统,它可以通过他的心跳节奏甚至是他的DNA来识别一个人。其他可行的方法包括语音识别、人脸识别、虹膜扫描和指纹识别。其中指纹识别是最广泛使用的方法,从简单的考勤系统到智能手机到安全检查等等,我们都可以看到它的影子。
在本篇文章中,我们将学习如何基于Aduino开发板使用流行的GT511C3指纹传感器(FPS)。指纹传感器有很多种型号,我们已经学会了如何使用它们来构建出勤系统、投票机、安全系统等设计。但GT511C3更先进,具有高精度和更快的响应时间,因此我们将学习如何在Arduino开发板使用该指纹传感器,在Arduino上注册指纹,然后在需要时检测指纹。所以让我们开始吧。
所需的组件
● Arduino Nano / UNO
● GT511C3指纹传感器
● 1602液晶屏
● 按钮
● 连接线
● 面包板
GT511C3指纹传感器(FPS)模块
在深入了解项目之前,让我们了解GT511C3指纹传感器模块及其工作原理。这种传感器与我们的智能手机中常用的电容式和超声波指纹传感器非常不同。 GT511C3是一款光学指纹传感器,这意味着它依赖于指纹图像来识别其图案。是的,你猜的不错,传感器实际上有一个摄像头,它可以拍摄指纹,然后使用功能强大的内置ARM Cortex M3 IC处理这些图像。下图显示了带有引脚分布的传感器的正面和背面。
GT511C3指纹传感器(FPS)模块
如您所见,传感器有一个由蓝色LED环绕的摄像头(黑点),这些LED必须点亮才能拍出清晰的指纹图像。然后使用与EEPROM配合的ARM微控制器处理这些图像并将其转换为二进制值。该模块还有一个绿色SMD LED指示电源。每个指纹图像为202x258像素,分辨率为450dpi。传感器最多可以注册200个指纹,每个指纹模板都会分配0到199的ID格式。然后在检测过程中,它会自动将扫描的指纹与所有200个模板进行比较,如果找到匹配,则会给出该特定的ID号。 ARM微控制器上使用Smack Finger 3.0算法的指纹。传感器可以在3.3V至6V的电压下工作,并通过9600的串行通信进行通信。通信引脚(Rx和Tx)据说只能承受3.3V的电压,但是数据表没有详细说明。 GT511C3 FPS的引脚输出如下所示。
除了串行通信之外,模块还可以使用上一张图片中所示的引脚通过USB连接直接连接到计算机。连接到计算机后,可以使用SDK_DEMO.exe应用程序控制模块,该应用程序可以从链接下载。该应用程序允许用户注册/验证/删除指纹以及识别指纹。该软件还可以帮助您读取传感器捕获的图像,值得一试。或者,即使传感器与Arduino连接,您也可以使用此软件,我们将在本文后面讨论。
关于传感器的另一个有趣特征是传感区域周围的金属外壳。正如我之前所说,必须打开蓝色LED才能让传感器工作。但在传感器应主动等待指纹的应用中,不可能始终保持LED开启,因为它会加热传感器并因此损坏传感器。因此,在这些情况下,金属外壳可以连接到MCU的电容式触摸输入引脚,以检测它是否被触摸。如果是,则可以打开LED并且可以开始感测过程。此方法未在此处演示,因为它超出了本文的范围。
传感器在3.3V下工作时,消耗约130mA电流。注册手指需要将近3秒,识别它需要1秒。但是,如果登记的模板计数较少,则识别速度将很高。有关传感器的更多详细信息,请参阅ADH-Tech的数据表,该数据表是该模块的官方制造商。
将GT511C3指纹传感器与Arduino连接
GT511C3 FPS有两个电源引脚,可以通过Arduino的+ 5V引脚和两个通信引脚Rx和Tx供电,可以连接到Arduino的任何数字引脚进行串行通信。此外,我们还添加了一个按钮和一个LCD来显示传感器状态。 GT511C3 FPS与Arduino连接的完整电路图如下所示。
由于Rx和Tx引脚是3.3V电平,我们在Rx侧使用了一个分压器将5V转换为3.3V。 10k电阻和22k电阻将来自Arduino Tx引脚的5V信号转换为3.3V,然后到达FPS的Rx引脚。传感器也可以通过3.3V供电,但要确保您的Arduino可以为传感器提供足够的电流。我们已将4位模式的LCD连接到由Arduino的5V引脚供电。按钮连接到引脚D2,当按下该按钮时,程序将进入注册模式,用户可以在其中注册新手指。注册后,程序将保持扫描模式,扫描任何触摸传感器的手指。
Arduino与GT511C3
如前所述,GT511C3 FPS通过串行通信进行通信,传感器理解十六进制代码,并且对于每个十六进制代码执行特定操作。如果您感兴趣,可以查看数据表以了解所有十六进制值及其相应的功能。但是,幸运的是我们bboyho已经创建了一个库,可以直接与Arduino一起使用来注册和检测指纹。可以从以下链接下载GT511C3 FPS的Github库:GT511C3 Arduino Library
该链接将下载ZIP文件,然后您必须按照Sketch - > Include Library - > Add .ZIP Library命令将其添加到Arduino IDE中。添加库后重新启动IDE,您应该能够在File - > Example - > Fingerprint Scanner TTL下找到GT511C3 FSP的示例程序,如下所示
您应该看到四个示例程序,闪烁程序将闪烁FPS上的蓝色LED,注册和ID指针程序可用于相应地注册和识别手指。请注意,即使已关闭电源,一旦注册了手指,模块将始终记住该手指。
Serial Pass-through程序可以上传到Arduino以使用我们在本文前面讨论过的Demo_SDK.exe应用程序。要删除任何指纹模板或在计算机上保存副本,可以使用此SDK应用程序。