李成笔记网

专注域名、站长SEO知识分享与实战技巧

什么是RFID以及如何制作基于Arduino的RFID门锁

今天我们来介绍一下RFID,以及如何去制作一个简单的RFID门锁。

RFID的全称是Radio Frequency IDentification,中文名叫做射频识别,是自动识别技术的一种,通过无线射频方式进行非接触双向数据通信,利用无线射频方式对记录媒体(电子标签或射频卡)进行读写,从而达到识别目标和数据交换的目的,广泛应用与访问控制,供应链管理,图书馆中的书籍跟踪,门禁等项目。

RFID是如何工作的?

RFID系统由两个主要组件组成:位于我们要识别的对象上的应答器或标签,以及收发器或读取器。

RFID阅读器包括一个射频模块,一个控制单元和一个产生高频电磁场的天线线圈。另一方面,标签通常是无源元件,仅由天线和电子微芯片组成,因此当标签靠近收发器的电磁场时,由于感应,其天线线圈中会产生电压,并用作微芯片的电源。

现在,在为标签供电时,它可以从阅读器中提取所传输的消息,然后将消息发送回阅读器,它使用一种称为负载操纵的技术。打开和关闭标签天线的负载会影响阅读器天线的功耗,该功耗可以通过压降来衡量。电压的这种变化将被捕获为一和零,这就是将数据从标签传输到读取器的方式。

阅读器和标签之间还有另一种数据传输方式,称为反向散射耦合。在这种情况下,标签将接收到的功率的一部分用于产生另一个电磁场,该电磁场将被阅读器的天线拾取。

RFID和Arduino开发板

以上就是RFID基本的工作原理,现在我们来看看如何使用RFID和Arduino开发板构建我们自己的RFID门锁。我们将使用基于MIFARE协议和MFRC522 RFID读卡器的标签

这些标签具有1kb的内存,并具有可以进行算术运算的微芯片。根据天线的几何形状,它们的工作频率为13.56 MHz,最大工作距离为10 cm。如果我们将这些标签其中一个放在光源前面,我们会注意到我们之前讨论过的天线和微芯片

至于RFID阅读器模块,它使用了SPI协议与Arduino开发板进行通信,这就是我们需要连接它们的方式。请注意,我们必须将模块的VCC连接到3.3V,而对于其他引脚,我们不必太过担心,它们都是5V耐压的。

连接模块后,我们需要从GitHub下载MFRC522库。该库附带了几个很好的例子,我们可以从中学习如何使用该模块。

首先,我们可以先上传“ DumpInfo”这个示例,测试我们的系统是否可以正常运行。现在,当我们运行串行监视器并将标签放在模块附近,读取器将开始读取标签,并且标签中的所有信息都将显示在串行监视器上。

这里我们可以注意到标签的UID号以及1 KB的内存,实际上分为16个扇区,每个扇区分成4个块,每个块可以存储2个字节的数据。在本篇文章中,我们不会使用任何标记的内存,我们只使用标记的UID编号。

基于Arduino的RFID门锁控制


在阅读RFID门锁项目的代码之前,让我们看一下该项目的组件和电路原理图。

除RFID模块外,我们还将使用一个接近传感器来检测门是否关闭或打开、以及锁定机构的伺服电机和字符显示器。

此示例所需的组件如下:

● MFRC522 RFID模块

● 伺服电机

● 液晶显示屏

● Arduino开发板

● 面包板和跳线

● 接近传感器CNY70

示例的工作流程如下:首先,我们必须设置主标签,然后系统进入正常模式。如果我们扫描未知标签,访问将被拒绝,但如果我们扫描主设备,我们将进入程序模式,我们可以从中添加和授权未知标签。所以,现在如果我们再次扫描标签,将授予访问权限,以便我们可以打开门。


我们关上门后,门将自动锁定。如果我们要从系统中删除标签,我们只需要再次进入程序模式,请扫描已知标签即可将其删除。

源代码


现在让我们来看看代码。首先,我们需要包括RFID模块、显示屏和伺服电机的库,定义下面程序所需的一些变量,以及创建库的示例

在setup函数部分,首先我们初始化模块,并将伺服电机的初始值设置到锁定位置。然后我们将初始消息打印到显示屏,然后使用以下“while”循环,我们等待扫描主标签。getID()自定义函数获取标记UID,我们将其放入myTags [0]数组的第一个位置。

我们来看看getID()自定义函数。首先,它检查读卡器附近是否有新标签,如果有,我们将继续“for”循环,这将获得标签的UID。我们使用的标签有4个字节的UID编号,这就是我们需要用这个循环进行4次迭代的原因,并且使用concat()函数我们将4个字节添加到单个String变量中。我们还将字符串的所有字符设置为大写字母,最后我们停止读取。

在我们进入主循环之前,在setup函数部分的末尾,我们还调用printNormalModeMessage()自定义函数,该函数在显示器上打印“Access Control”消息。

因此,如果门是关着的,使用与我们在getID()自定义函数中描述的相同的行,我们将扫描并获取新标记的UID。我们在这里可以注意到,由于“if”语句中的“return”行,在我们扫描标签之前代码将不再继续。

一旦我们扫描了标签,我们检查该标签是否是我们之前注册的主标签,如果确实如此,我们将进入程序模式。在此模式下,如果我们扫描已经授权的标签,它将从系统中删除,或者如果标签未知,它将被授权添加到系统中。

在程序模式之外,通过下一个“for”循环,我们检查扫描的标签是否与任何已注册的标签相同,我们要么解锁门,要么拒绝访问。在“else”语句的最后,我们等到门关闭,然后我们锁门并再次打印正常模式消息。

好了,现在一个RIFD智能门锁就做好了

关注风火轮,技术之路常相伴,我们下期见!


标签:rfid系统由哪三部分组成 

作者:lichen , 分类:站长日记 , 浏览:24 , 评论:0

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言