目录
第1步:获取所有零件
构建此项目所需的部件如下:
Arduino Nano(uno也一样)
光学指纹传感器
1.44“彩色TFT显示屏
面包板
线若干
电源
第2步:1.44英寸液晶显示器
这个显示非常快。它使用ILI9163C驱动程序。它的分辨率为128×128像素,最多可显示260.000种颜色。它与Arduino一起使用非常方便
显示器使用SPI协议与Arduino板通信。我们只需连接8根电线即可使其工作。开始吧。
与Arduino连接
Vcc▶Arduino的5V引脚
GND▶Arduino GND引脚
CS▶数字引脚10
RST▶数字销9
A0▶数字引脚8
SDA▶数字引脚11
SCK▶数字引脚13
LED▶Arduino的3.3V引脚
第3步:指纹传感器模块
指纹传感器模块体积小,构造精美,内部采用了一些先进的DSP(数字信号处理)芯片。
传感器的工作原理如下。它是一种光学传感器,意味着它可以分析手指的照片。然后,它渲染图像,进行一些计算,找到该手指的特征,然后在其内存中搜索具有相同特征的指纹。它可以在不到一秒的时间内实现所有这一切!
该模块可在其内存中存储多达1000个指纹,其错误接受率低于0.001%,这使其非常安全!大!
第4步:连接部件
首先,我们必须连接指纹传感器模块。我们插入模块背面的电缆。请查看附带的照片。
指纹传感器连接
黑线▶Arduino GND
红线▶Arduino 5V
绿线▶数字引脚2
白线▶数字引脚3
我们现在准备将显示器连接到Arduino。
显示连接
Vcc▶Arduino的5V引脚
GND▶Arduino GND引脚
CS▶数字引脚10
RST▶数字销9
A0▶数字引脚8
SDA▶数字引脚11
SCK▶数字引脚13
LED▶Arduino的3.3V引脚
第5步:项目代码
现在让我们看一下,项目的软件方面以及如何将指纹登记到模块的嵌入式存储器中以识别它们。
我们需要下载一些库。首先,我们需要Adafruit指纹库,Adafruit GFX库和Sumotoy的库来显示。
https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/sumotoy/TFT_ILI9163C
首先,我们必须将注册示例上传到我们的Arduino板。我们转到文件 – >示例 – > Adafruit指纹传感器库 – >注册。通过这个示例程序,我们可以将指纹存储在模块的FLASH存储器中。我们上传草图,然后打开串行监视器。该程序要求我们输入要注册的ID。然后我们按照指示将指头放在传感器上两次并存储指纹!您可以通过这种方式存储多达1000个指纹!
现在,让我们加载我开发的代码。感谢Adafruit的图书馆,项目代码非常简单。让我们看一下代码的一小部分。
void loop() { fingerprintID = getFingerprintID(); //We scan the fingerprint here
delay(50);
if(fingerprintID == 1) //We have found a valid fingerprint with the id 1
{
display.drawBitmap(30,35,icon,60,60,GREEN);
delay(2000);
displayUnlockedScreen();
displayIoanna();
delay(5000);
display.fillScreen(BLACK);
displayLockScreen();
} if(fingerprintID == 2) //We have found a valid fingerprint with the id 2 {
display.drawBitmap(30,35,icon,60,60,GREEN);
delay(2000);
displayUnlockedScreen();
displayNick();
delay(5000);
display.fillScreen(BLACK);
displayLockScreen();
}
}
我们启动传感器和显示器,每50ms检查传感器上的手指。如果传感器上有手指,我们会要求模块搜索手指是否已注册到其内存中。如果它在内存中找到指纹,则返回该指纹的ID。接下来,它会显示欢迎消息,并在几秒钟后再次锁定屏幕。
完整的代码:
[content_hide][zrz_file link="https://static.qutaojiao.com/wp-content/uploads/2018/10/2452bcd5699b1a7.zip" name="Fingerprint" code=""]