电子说
电路图和说明
首先,将指纹传感器连接到Arduino UNO。确保通过串行通信获得与Arduino配合使用的指纹传感器。
Arduino UNO上串行通信的默认引脚是电路板的引脚0(RXD)和引脚1(TXD),但我们将使用其他引脚进行串行通信。对于这个项目,我们将在代码中使用SoftwareSerial库。
以下是指纹传感器和UNO之间所需的连接:
然后将I2C LCD模块连接到UNO。连接如下:
然后,将继电器模块连接到Arduino UNO,如下面的电路图所示。
指纹门锁电路图。
为了控制门锁,你需要一个7到12V的电池 - 我使用了三个18650电池。
下载项目库
指纹传感器和I2C LCD的库很容易获得。
要安装Adafruit指纹库,请打开在Arduino Library Manager中输入“fingerprint”,你会看到Adafruit Fingerprint库弹出。单击安装。
键入“指纹“进入Arduino库管理器找到正确的库。
你可以安装LiquidCrystal I2C图书馆以同样的方式。搜索“LiquidCrystal I2C”,您将能够看到此库:
在Arduino库管理器中输入“liquidcrystal I2C”以找到正确的库。
代码演练和解释
让我们看一下代码的各个部分以及它们在项目中的用途。为方便起见,本文末尾可以下载该项目的完整代码。
软件串行库允许我们使用除默认0,1引脚之外的其他引脚进行串行通信。复制以下部分的代码并上传。
#include
#include
#include
#include
SoftwareSerial mySerial(2, 3);
在设置功能中,设置指纹传感器工作的波特率。然后,检查指纹传感器是否正在与Arduino通信。
finger.begin(57600);
if (finger.verifyPassword()) {
lcd.setCursor(0, 0);
lcd.print(“ FingerPrint ”);
lcd.setCursor(0, 1);
lcd.print(“Sensor Connected”);
}
else {
lcd.setCursor(0, 0);
lcd.print(“Unable to found”);
lcd.setCursor(0, 1);
lcd.print(“Sensor”);
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“Check Connections”);
while (1) {
delay(1);
}
}
现在我们需要设置你的实际指纹!以下代码部分供用户将手指放在将指纹转换为图像的指纹扫描仪上。
uint8_t p = finger.getImage();
if (p != FINGERPRINT_OK) {
lcd.setCursor(0, 0);
lcd.print(“ Waiting For”);
lcd.setCursor(0, 1);
lcd.print(“ Valid Finger”);
return -1;
}
p = finger.image2Tz();
if (p != FINGERPRINT_OK) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“ Messy Image”);
lcd.setCursor(0, 1);
lcd.print(“ Try Again”);
delay(3000);
lcd.clear();
return -1;
}
p = finger.fingerFastSearch();
if (p != FINGERPRINT_OK) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“Not Valid Finger”);
delay(3000);
lcd.clear();
return -1;
}
如果图像混乱,它会要求再次扫描你的手指为了获得良好的指纹图像,将与您系统中所有指纹的保存图像进行比较。在匹配图像后,门将打开。否则,门将保持关闭。
将手指放在传感器上,以便系统可以创建指纹图片。
一旦系统收到明确的指纹,您的门锁就可以使用了!
全部0条评论
快来发表一下你的评论吧 !