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

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索