射频读卡器(未检测到钥匙,请将钥匙靠近射频读卡器)

Mark wiens

发布时间:2022-12-09

射频读卡器(未检测到钥匙,请将钥匙靠近射频读卡器)

 

使用MFRC522 RFID阅读器和Arduino进行安全访问

这篇文章详细说明了有关如何使用MFRC522 RFID阅读器的简单示例。我将对规格进行快速概述,并使用Arduino演示项目示例。

描述

RFID表示射频识别。RFID使用电磁场在短距离内传输数据。RFID可用于识别人员,物品进行交易等。

您可以使用RFID系统打开一扇门。例如,仅允许其卡上具有正确信息的人进入。

RFID系统使用:

标签附加到要识别的对象上,在此示例中,我们具有钥匙串和电磁卡。每个标签都有自己的标识(UID)。双向无线电收发器,即读取器,它将信号发送到标签并读取其响应。

技术指标

输入电压:3.3V价格:约3元频率:13.56MHz

资料下载

这是此项目所需的库:

1. 下载RFID库

2. 解压缩RFID库

3. 在您的Arduino IDE中安装RFID库

4. 重新启动您的Arduino IDE

引脚接线

引脚 接线到Arduino Uno

SDA 数字10

SCK 数字13

MOSI 数字11

MISO 数字12

IRQ 未连接

地线 地线

RST 数字9

3.3伏 3.3伏

注意:您必须将此设备供电至3.3V!

电路图

从RFID标签读取数据

准备好电路后,转到文件>示例> MFRC522> DumpInfo并上传代码。该代码将在您的Arduino IDE中可用(安装RFID库之后)。

然后,打开串行监视器。您应该看到类似下图的内容:

将RFID卡或钥匙串近似到阅读器。让阅读器和标签靠近,直到显示所有信息。

这是您可以从卡中读取的信息,包括以黄色突出显示的卡UID。如上图所示,该信息存储在内存中,该内存分为段和块。

您有1024个字节的数据存储空间,分为16个扇区,每个扇区由两个不同的键A和B保护。

记下您的UID 卡,因为以后需要它。

上载以下代码。

include

include

define SS_PIN 10

define RST_PIN 9

MFRC522 mfrc522(SS_PIN, RST_PIN);

void setup()

{

Serial.begin(9600);

SPI.begin();

mfrc522.PCD_Init();

Serial.println("Approximate your card to the reader...");

互联网小常识:高端路由器一般用作主干路由器,企业级路由器一般用作汇聚级路由器,低端路由器一般用于接入路由器。从内部结构分类,可以分为固定端口交换机与模块式交换机。

Serial.println();

}

void loop()

{

if ( ! mfrc522.PICC_IsNewCardPresent())

{

return;

}

if ( ! mfrc522.PICC_ReadCardSerial())

{

return;

}

Serial.print("UID tag :");

互联网小常识:应用代理与应用级网关不同之处在于:应用代理完全接管了用户与服务器的访问,隔离了用户与被访问的服务器之间的数据包的交换通道。而应用级网关采用的是存储转发的方式。

String content= "";

byte letter;

for (byte i = 0; i < mfrc522.uid.size; i++)

{

Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");

Serial.print(mfrc522.uid.uidByte[i], HEX);

content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));

content.concat(String(mfrc522.uid.uidByte[i], HEX));

}

Serial.println();

Serial.print("Message : ");

content.toUpperCase();

if (content.substring(1) == "BD 31 15 2B") //change here the UID of the card/cards that you want to give access

{

Serial.println("Authorized access");

Serial.println();

delay(3000);

}

else {

Serial.println(" Access denied");

delay(3000);

}

}

在上面的代码中,您需要更改if(content.substring(1)=="用您的UID替换")并键入您之前编写的UID卡。

示范

现在,将代码上传到Arduino,然后打开串行监视器。

如果选择了您要授予访问权限的卡,您会看到:

如果您用另一个UID近似另一个标签,则会显示拒绝消息:

希望本教程对您有所帮助。

也希望喜欢电子产品的朋友分享这篇文章!喜欢的朋友记得关注,我会分享更多的项目示例。

互联网小常识:集线器是对“共享介质”的一种改革,并且没有破坏CSMA/CD方法。它仍工作在物理层,所有的结点都在一个冲突域中。从结点和集线器的无屏蔽双绞线的最大长度为100m。

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186