在本教程中,我将向您展示如何构建使用指纹传感器和Arduino UNO的门锁。当用户扫描系统上记录的正确指纹时,此门锁仅打开门,但在进入错误的指纹时门将保持关闭。
电路图和说明首先,将指纹传感器连接到Arduino UNO。确保通过串行通信获得与Arduino配合使用的指纹传感器。
Arduino UNO上串行通信的默认引脚是电路板的引脚0(RXD)和引脚1(TXD),但我们将使用其他引脚进行串行通信。对于这个IC项目,我们将在代码中使用SoftwareSerial库。
以下是指纹传感器和UNO之间所需的连接:
然后将I2C LCD模块连接到UNO。连接如下:
然后,将继电器模块连接到Arduino UNO,如下面的电路图所示。
为了控制门锁,你需要一个7到12V的电池 - 我使用了三个18650电池。
下载项目库指纹传感器和I2C LCD的库很容易获得。
要安装Adafruit Fingerprint库,打开Arduino Library Manager并输入“fingerprint”,您将看到Adafruit Fingerprint库弹出。单击安装。
您可以以相同的方式安装LiquidCrystal I2C库。搜索“LiquidCrystal I2C”,您将能够看到此库:
代码演练和解释软件串行库允许我们使用除默认0,1引脚之外的其他引脚进行串行通信。复制以下部分的代码并上传。
#include <Adafruit_Fingerprint.h>
#include <LiquidCrystal_I2C.h>
#include <SPI.h>
#include <SoftwareSerial.h>
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;
}
如果图像混乱,它会要求再次扫描您的手指,以便获得一个良好的指纹图像,该图像将与系统中所有指纹的保存图像进行IC比较。在匹配图像后,门将打开。否则,门将保持关闭状态。
一旦系统收到清晰的指纹,您的门锁就可以使用了!