|
了解如何使用传感器模块、I2C LCD和Arduino UNO开发板制作指纹控制的门锁。
在本篇文章中,我将向您展示如何使用指纹传感器和Arduino UNO制作一个智能门锁。只有当用户扫描的指纹与系统上记录的指纹匹配时,该门锁才会打开,如果输入的指纹错误时,门仍将保持关闭状态。
所需的硬件 ● Arduino UNO开发板 ● 指纹传感器模块 ● I2C LCD显示屏 ● 继电器模块 ● 门锁 ● 7至12V电源 ● 跳线电缆
电路图和说明 首先,将指纹传感器连接到Arduino UNO开发板。请确保您使用的指纹传感器能够通过串行通信与Arduino配合使用。
Arduino UNO上串行通信的默认引脚是电路板的引脚0(RXD)和引脚1(TXD),但我们将使用其他引脚进行串行通信。本文中,我们将在代码中使用SoftwareSerial库。
以下是指纹传感器和UNO开发板之间所需的连接:
然后将I2C LCD模块连接到UNO。连接如下:
然后,将继电器模块连接到Arduino UNO,如下面的电路图所示。
指纹门锁电路图。
为了控制门锁,你需要一个7到12V的电池 - 我使用了三节18650电池。
下载项目库 指纹传感器和I2C LCD的库很容易在网上下载到。
要安装Adafruit Fingerprint库,打开Arduino Library Manager并输入“fingerprint”,您将看到Adafruit Fingerprint库弹出。单击安装。
在Arduino Library Manager中键入“fingerprint”以找到正确的库。
您可以以相同的方式安装LiquidCrystal I2C库。搜索“LiquidCrystal I2C”,您将能够看到此库:
在Arduino Library Manager中输入“liquidcrystal I2C”以找到正确的库。
代码演练和解释 让我们看一下代码的各个部分以及它们在项目中的用途。为方便起见,在本文末尾处提供了完整代码。
软件串口库允许我们使用除默认0、1引脚之外的其他引脚进行串行通信。复制以下部分的代码并上传。 - #include <Adafruit_Fingerprint.h>
- #include <LiquidCrystal_I2C.h>
- #include <SPI.h>
- #include <SoftwareSerial.h>
- SoftwareSerial mySerial(2, 3);
复制代码
在setup()函数中,设置指纹传感器工作的波特率。 然后,检查指纹传感器是否正在与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;
- }
复制代码
如果图像比较模糊,它会要求再次扫描您的手指,以便获得一个良好的指纹图像,该图像将与系统中所有指纹的保存图像进行比较。 在匹配图像后,门将打开。 否则,门将保持关闭状态。
将手指放在传感器上,以便系统可以制作指纹图片。
一旦系统收到明确的指纹,您的门锁就可以使用了!
以下是本文使用的完整代码:
Fingerprint_Sensor_door_Lock_ArduinoUNO.zip
(1.67 KB, 下载次数: 521)
|