Skip to content
/ RFID Public

该项目演示了如何使用 RFID RC522 模块读取和验证 RFID 卡片。系统旨在允许访问特定的 RFID 标签(卡片),同时根据预定义的标签 ID 拒绝其他卡片的访问。RFID 项目

License

Notifications You must be signed in to change notification settings

ctkqiang/RFID

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RFID RC522 卡片读取器 - Arduino 项目

该项目演示了如何使用 RFID RC522 模块读取和验证 RFID 卡片。系统旨在允许访问特定的 RFID 标签(卡片),同时根据预定义的标签 ID 拒绝其他卡片的访问。

作者

  • 姓名: 钟智强

功能特性

  • RFID 标签识别: 使用 MFRC522 模块读取并识别 RFID 标签。
  • 标签验证: 基于预定义的标签 ID 允许或拒绝访问。
  • 蜂鸣器反馈: 通过蜂鸣器提供成功或失败的访问反馈。
  • 禁止标签: 阻止某些 RFID 标签的访问。
  • 串口输出: 通过串口监视器显示 RFID 标签 ID 及其他相关信息。

硬件组件

  • RFID RC522 模块
  • Arduino UNO
  • 蜂鸣器 / 压电扬声器
  • 跳线
  • 面包板

硬件配置

以下是 Arduino UNO 与 RFID RC522 模块之间的连接配置:

RFID RC522 引脚 Arduino UNO 引脚
SDA 10
SCK 13
MOSI 11
MISO 12
IRQ 未使用
GND GND
RST 9
3.3V 3.3V

引脚定义

  • PIN_RST: RFID 模块的复位引脚。
  • PIN_SDA: SPI 数据引脚。
  • BUZZER: 连接蜂鸣器的引脚,用于反馈。
  • PIEZO_PIN: 连接压电扬声器的引脚,用于播放音调。
  • BAUD_RATE: 串口通信的波特率(9600)。
  • RFID_TONE: RFID 卡片检测时播放的音调。
  • DURATION: 播放音调的持续时间。
  • MASTER_TAG: 授权 RFID 卡片的 ID(主卡)。
  • MASTER_TAG_ALT: 备用授权卡片 ID。
  • MASTER_TAG_PROHIBITED: 禁用的 RFID 卡片 ID(如身份证等)。

代码概述

  1. 库文件引用:

    • 使用 MFRC522 库与 RFID 模块进行交互。
    • 使用 SPI 库进行 Arduino 与 RFID 模块之间的 SPI 通信。
  2. 初始化设置:

    • 使用 SPI.begin() 初始化 SPI 通信。
    • 使用 mfrc522.PCD_Init() 初始化 RFID 模块。
    • 使用 Serial.begin(BAUD_RATE) 初始化串口通信,以便输出调试信息。
  3. 卡片检测:

    • 程序不断检测是否有新卡片通过 mfrc522.PICC_IsNewCardPresent()
    • 检测到新卡片后,读取卡片的序列号并输出。
  4. 标签验证:

    • 每个检测到的 RFID 卡片会与预定义的标签 ID 进行比较。
    • 如果卡片与 MASTER_TAG 匹配,则允许访问,输出成功信息。
    • 如果卡片与 MASTER_TAG_PROHIBITED 匹配,则拒绝访问,输出警告信息。
    • 其他卡片则直接拒绝访问。
  5. 蜂鸣器反馈:

    • 通过 tone(PIEZO_PIN, RFID_TONE, DURATION) 播放音调,给出音频反馈。
  6. 日志输出:

    • 使用 log() 函数将相关信息输出到串口监视器。

使用方法

  1. 按照“硬件配置”中的接线图,将 RFID RC522 模块连接到 Arduino UNO。
  2. 将提供的代码上传到 Arduino UNO。
  3. 打开串口监视器查看 RFID 标签 ID。
  4. 将 RFID 标签靠近读取器,系统会根据预定义的标签 ID 验证卡片并提供访问权限。
  5. 通过蜂鸣器听取反馈:
    • :成功(允许访问)。
    • :拒绝访问。

函数说明

  • playTone(int rfidTone, int duration): 播放指定频率和持续时间的音调。
  • getCardIdentification(): 读取 RFID 卡片的唯一 ID,并将其存储在 tagID 变量中。
  • verification(): 比较读取的 RFID 标签 ID 与允许和禁止的标签 ID。
  • log(String input): 将日志信息输出到串口监视器,用于调试或信息显示。
  • getCurrentState(): 如果有新的卡片读取,则返回 true,否则返回 false

示例输出

请放置卡片
RFID 标签 ID -> D7 43 AF 7B
访问允许
卡片 ID: D743AF7B

其他注意事项

  • 确保正确为 RFID 模块供电(3.3V),并检查接线是否正确。
  • MASTER_TAGMASTER_TAG_PROHIBITED 在代码中已定义,可以根据需要修改为实际使用的卡片 ID。

个人捐赠支持

如果您认为该项目对您有所帮助,并且愿意个人捐赠以支持其持续发展和维护,🥰我非常感激您的慷慨。 您的捐赠将帮助我继续改进和添加新功能到该项目中。 通过财务捐赠,您将有助于确保该项目保持免 费和对所有人开放。即使是一小笔捐款也能产生巨大的影响,也是对我个人的鼓励。

以下是我的支付宝二维码,您可以扫描二维码进行个人捐赠:


微信支付 支付宝支付

ko-fi

爱心捐款

关注我

About

该项目演示了如何使用 RFID RC522 模块读取和验证 RFID 卡片。系统旨在允许访问特定的 RFID 标签(卡片),同时根据预定义的标签 ID 拒绝其他卡片的访问。RFID 项目

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published