RFID无线射频读卡器使用,程序示例教程

2020-7-31 18:12 2324 60

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

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

RFID无线射频读卡器使用,程序示例

描述

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

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

RFID系统使用:

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

技术指标

  • 输入电压: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无线射频读卡器使用,程序示例

    从RFID标签读取数据

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

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

    RFID无线射频读卡器使用,程序示例

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

    RFID无线射频读卡器使用,程序示例

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

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

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

    上载以下代码。

    #include <SPI.h>

    #include <MFRC522.h>

    #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 < 0x10 ? " 0" : " ");

    Serial.print(mfrc522.uid.uidByte, HEX);

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

    content.concat(String(mfrc522.uid.uidByte, 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,然后打开串行监视器。

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

    RFID无线射频读卡器使用,程序示例

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

    RFID无线射频读卡器使用,程序示例

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

    推荐阅读
    华为p40Pro深度评测:拍照、影像、后期处理 2020-06-03 16:11
    口罩机、手套机、护目镜生产、酒精自动灌装等内部资料、行业概况分析 2020-04-16 11:37
    中兴AX5400Pro深度评测:十二核自研芯片表现如何 2021-11-11 14:53
    知识共享轨迹对临时在线群体创新结果的影响 2020-03-05 16:37
    消防应急灯电路工作原来是怎样的?电路图分析 2020-03-05 16:41