电子产品世界 » 论坛首页 » 综合技术 » 智能硬件与可穿戴 » 如何使用Arduino UNO创建指纹传感器门锁


共1条 1/1 1 跳转至

如何使用Arduino UNO创建指纹传感器门锁

助工
2018-11-16 10:04:25    评分

在本教程中,我将向您展示如何构建使用指纹传感器和Arduino UNO的门锁。当用户扫描系统上记录的正确指纹时,此门锁仅打开门,但在进入错误的指纹时门将保持关闭。

电路图和说明

首先,将指纹传感器连接到Arduino UNO。确保通过串行通信获得与Arduino配合使用的指纹传感器。 

Arduino UNO上串行通信的默认引脚是电路板的引脚0(RXD)和引脚1(TXD),但我们将使用其他引脚进行串行通信。对于这个IC项目,我们将在代码中使用SoftwareSerial库。

以下是指纹传感器和UNO之间所需的连接:

指纹传感器和arduino connections.jpg


然后将I2C LCD模块连接到UNO。连接如下:

arduino i2c连接指纹sensor.jpg


然后,将继电器模块连接到Arduino UNO,如下面的电路图所示。 

image3.png

指纹门锁电路图。

为了控制门锁,你需要一个7到12V的电池 - 我使用了三个18650电池。

下载项目库

指纹传感器和I2C LCD的库很容易获得。

要安装Adafruit Fingerprint库,打开Arduino Library Manager并输入“fingerprint”,您将看到Adafruit Fingerprint库弹出。单击安装。

指纹库_arduino_adafruit.png

在Arduino Library Manager中键入“fingerprint”以找到正确的库。

您可以以相同的方式安装LiquidCrystal I2C库。搜索“LiquidCrystal I2C”,您将能够看到此库:

liquidcrystal_library_arduino_adafruit.png

在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);

在设置功能中,设置指纹传感器工作的波特率。然后,检查指纹传感器是否正在与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比较。在匹配图像后,门将打开。否则,门将保持关闭状态。

image2.png

将手指放在传感器上,以便系统可以创建指纹图片。

一旦系统收到清晰的指纹,您的门锁就可以使用了!






关键词: Arduino     传感器     lcd.setCursor    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]