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

释放双眼,带上耳机,听听看~!

这篇文章主要讲解的是关于如何使用 MFRC522 RFID 卡,或者说阅读器的的简单示例。我将快速概述规格并演示一个使用 Arduino 的项目示例。

描述

RFID是射频识别的意思。RFID 使用电磁场在短距离内传输数据。RFID 可用于识别人员、进行交易等……

您可以使用 RFID 系统打开门。例如,只有在他的卡上有正确信息的人才能进入。RFID 系统使用:

  • 附加到要识别的对象上的标签,在这个例子中,我们有一个钥匙链和一张电磁卡。每个标签都有自己的标识 (UID)。

tags

  • 双向无线电收发器,即阅读器,可向标签发送信号并读​​取其响应。

reader

规格

  • 输入电压:3.3V
  • 价格:可以在某宝看看,不贵
  • 频率:13.56MHz

库下载

这是这个项目所需的库:

  1. 在此处下载 由 miguelbalboa 创建的RFID 库:
  2. 解压 RFID 库
  3. 在您的 Arduino IDE 中安装 RFID 库
  4. 重启你的 Arduino IDE

引脚接线

引脚 连接到 Arduino Uno
SDA 数字10
SCK 数字13
莫西 数字11
味噌 数字12
中断请求 未连接
GND GND
RST 数字9
3.3V 3.3V

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

电路

Mifare_bb

从 RFID 标签读取数据

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

然后,打开串行监视器。您应该会看到如下图所示的内容:

serial-monitor1

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

serial-monitor2

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

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

记下您的 UID 卡,因为您稍后会用到它。

上传以下代码:

/*
 *  
 * Created by FILIPEFLOP
 * 
 */
 
#include <SPI.h>
#include <MFRC522.h>
 
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.
 
void setup() 
{
  Serial.begin(9600);   // Initiate a serial communication
  SPI.begin();      // Initiate  SPI bus
  mfrc522.PCD_Init();   // Initiate MFRC522
  Serial.println("Approximate your card to the reader...");
  Serial.println();

}
void loop() 
{
  // Look for new cards
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  {
    return;
  }
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  {
    return;
  }
  //Show UID on serial monitor
  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) == “REPLACE WITH YOUR UID”)并键入您之前编写的 UID 卡。

示范

现在,将代码上传到您的 Arduino 并打开串行监视器。

近似于您选择授予访问权限的卡,您将看到:

serial-monitor3

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

serial-monitor4

写的比较潦草,希望本教程对大家有用。

给TA打赏
共{{data.count}}人
人已打赏
ArduinoArduino-进阶免费项目

使用 Arduino 的指纹传感器模块指南 (FPM10A)

2021-5-31 13:21:09

ArduinoArduino-进阶

Arduino 薄膜键盘教程

2021-6-1 22:53:02

10 条回复 A文章作者 M管理员
  1. ifairyhan

    赞!!!

  2. hahaha

    赞!!!

  3. Xiaobai

  4. chansey

    zan!

  5. 55555

    赞!!!

  6. AllenGao

    赞!!!

  7. 饭统

    多谢 学习了

  8. 秦6673

    赞!!!

  9. 文又七

    ZAIKAN

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索