×

RFID和生物识别PC登录/退出界面

消耗积分:2 | 格式:zip | 大小:0.07 MB | 2022-10-19

张秀兰

分享资料个

描述

介绍

这是我为我在大学的微处理器编程实验室制作的一个项目。项目目标是使用 RFID 卡或指纹扫描登录和退出我的 PC。

我非常重视隐私,因此无需输入密码即可在几秒钟内登录和退出,这对我来说是救命稻草。该接口完全开源,您可以随意使用和修改。

这里有两件非常重要的事情:

您可以仅将这个项目与 RFID 阅读器一起使用,而代码绝对不会发生任何变化,但仅将其与指纹扫描仪一起使用则需要完整的代码重建。

接线

接线,尽管它看起来非常简单,并在下面解释。最重要的注意事项:

  • 大多数 RC522 模块由 3、3 V 电源供电,并且非常敏感,所以请绝对确定,您使用正确的电压连接它,Leonardo 有专用引脚,提供 3、3 V
  • 在您的 RC522 上,您留下 2 个引脚未连接到任何东西 - IRQ 和 RST
  • 您将 LCD 的 LED 阳极连接到 Arduino 数字引脚,而不是 5 V 电源
pYYBAGNOSEyAO-DAAAJK57YyzEA023.png
 

该项目的 Arduino Leonardo 引脚分配:

  • D0 (RX) - Z70 的 TD 引脚
  • D1 (TX) - Z70 的 RD 引脚
  • D2 - LCD 的 RS 引脚
  • D3 - LCD 的使能引脚
  • D4-D7 - LCD 的数据 4-7 引脚
  • D8 - LCD 阳极
  • D9 - 空白
  • D10 - RC522 的 SDA/NSS 引脚
  • D11 - 注销/LCD 开启按钮
  • ICSP SCK (9) - RC522 的 SCK 引脚
  • ICSP MOSI (10) - RC522 的 MOSI 引脚
  • ICSP MISO (11) - RC522 的 MISO 引脚
  • 3、3 V 输出 - 为 RC522 供电
  • 5 V 输出 - 为 LCD、按钮和 Z70 传感器供电

 

代码-在你开始之前

首先,您需要将 5 个库添加到您的 Arduino IDE(如果您还没有):

  • 键盘.h
  • SPI.h
  • MFRC522.h
  • LiquidCrystal.h
  • Adafruit_Fingerprint.h

您可以在通过 Ctrl+Shift+I 访问的库管理器中执行此操作。然后将此项目代码复制到您的 IDE。

接下来,您要转到第 128 行并注释掉 logOut() 函数标注(这样您就不会在调试期间注销系统),并对第 190 行中的 passwd() 函数标注执行相同的操作。

 
 
 
poYBAGNOSFCAfsCLAAAMZf2hnZ0972.png
 
1 / 2
 

完成后不要忘记取消注释这些,否则您将无法登录或退出!

最后一件事是在代码中设置您的密码,这样 Arduino 可以在登录时将其记下。您在第 23 行执行此操作,更改密码字符串变量。

poYBAGNOSFKAIX8AAAAI-CQ3EqI601.png
 

代码

所以首先要做的是确定你的RFID卡ID。为此,如下所示连接所有内容,并在 IDE 中打开该项目的代码。在第 184 行中,您已注释掉调试行,它将读取的卡 ID 转储到串行监视器。只需取消注释,上传到 Arduino,打开串行监视器并将卡靠近读卡器。

pYYBAGNOSFWAFd4CAAAOhcFk-hQ806.png
 

将 ID 复制到第 22 行的“logCard”字符串变量。

poYBAGNOSFeAStxtAAAN_Tckxqc041.png
 

如果您只使用 RFID 阅读器,请注释掉第 184 行,取消注释第 128 和 190 行,将代码上传到 Arduino,就完成了。如果您使用指纹读取器,只需注释掉第 184 行,然后继续阅读。

 

CODE -使用Z70指纹读取器任何Adafruit_Fingerprint支持的)

所以现在您需要将您的手指保存到 Z70 内存中。为此,请在 IDE 中打开新项目,然后从文件 -> 示例 -> Adafruit 指纹传感器库打开“注册”示例。将其上传到 Arduino,打开串行监视器,然后按照说明进行操作。该示例非常不言自明,它将引导您添加任意数量的指纹扫描,并将它们分配给从 1 到 999 的 ID。

添加手指后,返回此项目的代码。现在你有两个选择:

  • 保持原样,您保存到 Z70 内存中的每根手指都会解锁您的 PC
  • 对代码进行一些更改,只让特定的手指 ID 解锁 PC

 

CODE -仅用特定手指解锁PC _

好的,所以您让您的姐姐、妈妈、爸爸、奶奶和狗将手指保存到传感器中,并且不想清空整个内存,您还希望只有手指能够解锁 PC。太好了,所以您需要在代码中挖掘更多内容。在第 47 行和第 48 行(在 FingerID() 函数中)有更多注释掉的调试选项,您想取消注释。这些将读取手指的 ID 转储到串行监视器。与 RFID 卡 ID 非常相似,取消注释,上传,放置手指,然后从串行监视器读取其 ID。

poYBAGNOSGCAWgAbAAAXByNX8no233.png
 

现在你一直向下切换,从第 176 行开始。在那里你有“案例 0”,用 RFID 解锁你的 PC 和“默认”,用 Z70 内存中的任何手指解锁它。您要做的是添加另一个带有手指ID(从串行监视器读取)的案例,例如“案例1:”,将“默认”的内容复制到其中,并清空“默认”。

 
 
 
pYYBAGNOSGKAGcpGAADGVoGQ0ig624.png
 
1 / 3
 

您可以根据需要添加任意数量的新案例,带有个性化的 LCD 消息,用于每个人的登录,例如“你好妈妈!”、“嗨爸爸!”、“拿出你的小...

不管怎样,现在注释掉第 47 行和第 48 行,你就完成了这个项目。

 

CODE -调整、提示忘记事情尽管多次提醒

首先 - 确保第 128 和 190 行未注释,第 47、48、184 行已注释掉!

现在进行不太重要的调整。我的电脑启动时间很长,所以我在第一个循环开始之前添加了 7 秒的延迟。它位于 setup() 中的第 110 和 116 行。当然,如果您的系统启动时间更长或更短,您可以更改它。请记住,它只会在出现锁定屏幕后将您记录到 Windows 10(如果您在启动过程中放置​​卡/手指,则必须单击按钮并重试)。

pYYBAGNOSGaAG2IYAAAqhN2AQlU788.png
 

另一个调整。为了节省一点液晶显示器而不是让我因指纹扫描仪闪烁 LED 屏幕而发疯,Z70 会在 15 秒后关闭。发生这种情况时,您仍然可以使用 RFID 卡解锁,但要使用手指,您需要按下按钮来激活传感器。

您可以通过调整第 147 行中的 if 语句来更改关闭它们需要多长时间。为了完美测量,您需要转到第 160 行,取消注释,然后查看所需时间后的数字有多高(每个迭代次数屏幕上会增加,所以对我来说 15 秒后是 90)。有了号码后,只需将其粘贴到第 147 行而不是第 90 行,然后注释掉第 160 行。

 
 
 
poYBAGNOSGqAG0dJAAAFYNmKgoc559.png
 
1 / 2
 

3D打印案例

这是 Thingiverse 的链接,其中包含用于打印我的案例的 STL。要组装它,您需要氰基丙烯酸酯胶(如强力胶)和四个小家具螺丝。还有很大的耐心,打印需要永远,然后固化胶水。另外,您只想将胶水放在外壳内部,因为 CA 胶水会在 PLA 上留下令人讨厌的白色东西。

 
 
 
pYYBAGNOSHKAFSyOABV6FOD0ke4631.jpg
 
1 / 4
 

我将它打印在 Tevo Tarantula Pro 的玻璃加热床上。以下是参数(它们也在 Thingiverse 上):

正面、正面元素(针脚和指纹/按钮槽)和顶部:

挤出机/床温 200/50;层 0.2 毫米; 填充 10% 蜂窝;熨烫;速度 60 毫米/秒;Z 跳上

底部、背面、侧面:

挤出机/床温 200/50;层 0.3 毫米;填充 10% 蜂窝;熨烫;速度 60 毫米/秒;Z 跳上

我花了14个多小时才把它全部打印出来。

此外,在你把所有东西放在一起之后,在 LCD、RFID 阅读器和按钮后面的每个引脚上滴一滴热胶,将它们固定在适当的位置。您可以使用扎带或热胶将指纹传感器锁定到位。

就是这样感谢阅读本文希望能够自己完成_ _ _ _


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !