如何制作带Arduino和RFID的智能锁

电子说

1.2w人已加入

描述

您将走到一个只有钥匙才能看到的隐形锁,然后甚至不动它就打开它。听起来不错?今天,我们将以Arduino为骨干和一些便宜的组件来构建基于RFID的简单智能锁。

该项目背后的技术已在许多行业中使用。在现代化的办公室工作或使用公共交通工具的任何人都可能每天都会使用它。 RFID(射频识别)可以识别存储在卡或加密狗中芯片上的数据,并将其与已扫描的标签列表进行比较。

我们将建立一个测试电路,以控制使用Mifare MFRC522阅读器模块,用于打开和关闭锁。我们将使用主钥匙卡添加或删除对不同标签的访问,并创建一个简单的LED读数以告诉我们系统中正在发生什么。

最后,我们将添加一个螺线管来充当

MFRC522读取器可以将数据读取和写入RC522芯片,并将这些数据存储在Arduino的EEPROM中。

这将是对任何DIY设置的重要补充,尤其与任何基本的家庭安全系统有关。它可以与DIY警报系统或DIY安全监控系统一起使用。

您将需要

Arduino。我们使用了Uno,尽管任何Arduino电路板或克隆都足够。

3 x 220欧姆电阻

1 x 10k欧姆电阻

逻辑级N通道Mosfet

MFRC522模块,至少要读取两个卡/卡。大多数都带有一个,并且可以不到2美元的价格购买,但是您可能已经以公共旅行卡的形式在钱包中放了一个。

红色,蓝色和绿色的LED li》

12v电磁阀($ 2)

12v电源

面包板和连接线

MFRC522模块

此设置的关键是便宜的MFRC522模块,该卡同时带有包含 s50 芯片的卡和密钥卡,每个模块都存储有自己的唯一永久标识号(UID)。它们在功能上都是相同的,只是形状不同。

从库管理器中搜索 MFRC522 库开始并安装它。或者,您可以下载库并手动将其安装到库文件夹。如果您是Arduino的新手,您可能会觉得入门入门很有用!

该库还包含一个Fritzing图,我已注释了该图,指示如何将模块连接到Arduino。

《图id =“ attachment_636607” aria- describeby =“ caption-attachment-636607” class =“ wp-caption aligncenter”》

Arduino

图片来源:通过Github的Miguel Balboa

请注意:该评估板的工作电压为3.3V,而不是5V,因此请务必将其连接至

要测试设置,请从文件》示例》 MFRC522》 DumpInfo 中打开 DumpInfo 草图并将其上传到Arduino板上。打开串行监视器,然后将其中一个RFID对象放在读取器上。您应该看到以下内容:

如果读取时出现错误,提示MIFARE_Read() failed: Timeout in communication或PCD_Authenticate() failed: Timeout in communication,请不要不用担心这很可能意味着您没有将标签放在读取器上的时间太长,无法读取所有数据。只要您获得卡的UID(只要标签在读取器的范围内,就会读取该卡),它将与该项目一起使用。如果您根本无法阅读,请检查接线,然后重试。

电路的其余部分

现在,我们已经验证了我们模块的功能,请添加其余部分的组件。像这样连接您的组件:

Arduino

我们的12v电源(目前未插入)连接到面包板的导轨。将Arduino GND引脚和MFRC522 GND引脚连接到接地轨。

LED通过220欧姆电阻连接到引脚2、3和4以及接地轨。

我们的MOSFET的栅极脚(图左)连接到引脚5,并通过10k欧姆电阻接地。漏极脚(中间)连接到12v螺线管的负极,源极脚(右边)连接到接地轨。

连接12v电磁阀的正极和VIN。 Arduino连接到试验板上的12v导轨。

使用此设置,每当我们从Arduino向MOSFET发送HIGH信号时,它将允许电流流到电磁阀。尽管您需要一个降压变压器来为Arduino提供高于12V的电压,但是并没有阻止您使用功率更高或功率更大的螺线管的功能。还要密切注意MOSFET的数据表,以确保不会使它过载。

一旦将它们放在一起,它应该看起来像这样:

虽然没有必要,但我创建了一个小装备来模拟废木门锁。

修改草图

电路已建立,是时候设置我们的Arduino Sketch了。方便的是,MFRC522库附带了一个名为访问控制的示例草图,该草图几乎完全可以完成我们想要做的事情。将您的Arduino连接到计算机,然后在Arduino IDE中打开文件》示例》 MFRC522》 AccessControl 。

示例草图以及相关内容中均提供了大量信息。库的GitHub页面。我们只需要修改几行。或者,您可以从此Github Gist下载我们的修改后的代码。

首先,该草图是为具有单个RGB LED且使用共阳极的电路设计的。我们将不会使用它,因此只需注释掉本节。

//#define COMMON_ANODE

现在,将我们的LED引脚与草图中定义的引脚匹配。

#define redLed 3 // Set Led Pins

#define greenLed 4

#define blueLed 2

我们需要更改继电器引脚(尽管在这种情况下使用MOSFET)以匹配我们的设置。

#define relay 5 // Set MOSFET Pin

要为了更轻松地更改锁稍后保持打开状态的时间,我们将为其创建一个变量。

int lockDelay=10000; // lock stays open for 10 seconds.

我们只需要再进行一次更改。在 loop 方法的底部,埋在if语句中的是方法调用 granted(300)。我们需要更改它,以便它使用我们的 lockDelay 变量。

granted(lockDelay); // Open the door lock for lockDelay duration

以新名称保存草图,并将其上传到您的Arduino 。完成后,打开串行监视器。第一次执行此操作时,它将要求您扫描某些内容以用作主卡。将您的卡放在读卡器上,卡的UID应该会显示在串行监视器上,并显示消息一切就绪

就是这样!您的主密钥已设置完毕。从计算机上拔下Arduino开发板。即使关闭电源,您的主密钥详细信息也将保存在Arduino的EEPROM中。

测试完整设置

最后仔细检查一下接线,检查是否一切就绪,然后连接12v电源。在这一点上,值得一提的是,您应该警惕螺线管的占空比。我为此测试使用的便宜的螺线管没有100%的占空比,因此不应将其长时间放置在锁定位置。要使其成为永久设置,请使用占空比为100%的螺线管。更好的是常闭(NC)电磁阀,在不通电时仍保持锁定状态。这也意味着任何想绕过系统的人都不能简单地拔掉它的电源!

电路上电时,蓝色LED应该亮起,以表明该设备可以运行。将主卡放在读卡器上,使其处于管理模式,这将导致所有三个LED闪烁。当它们闪烁时,您可以将其他卡或卡片放在读卡器上,以添加或取消访问权限。它将闪烁绿色以提供访问权限,并闪烁蓝色以取走。再次使用主卡退出管理模式。

现在,当您手持可访问读卡器的卡或密钥卡时,它应呈绿色闪烁并打开锁。如果它闪烁红色,则表示访问被拒绝!

全部完成!

该项目只是使用RFID的简单开始DIY设置中的设备,这不是最安全的设置。我们不建议陪审团索要这个玩具前门。

您可以将整个机构组装到一个盒子中,然后使用螺线管将其锁定。在包装盒中填入Cookie,然后使用您的主密钥来确定哪些人可以访问,哪些人没有访问权限。成为Cookie的主人!

您可以完全取消螺线管,并在其中安装一个LED灯条,并使用RFID激活灯。当可以将具有访问权限的卡或便携式计算机拿到阅读器时,您可以使用相同的想法将Wi-Fi密码之类的数据显示在小屏幕上。

责任编辑:wv

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

全部0条评论

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

×
20
完善资料,
赚取积分