该项目演示了如何使用 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(如身份证等)。
-
库文件引用:
- 使用
MFRC522
库与 RFID 模块进行交互。 - 使用
SPI
库进行 Arduino 与 RFID 模块之间的 SPI 通信。
- 使用
-
初始化设置:
- 使用
SPI.begin()
初始化 SPI 通信。 - 使用
mfrc522.PCD_Init()
初始化 RFID 模块。 - 使用
Serial.begin(BAUD_RATE)
初始化串口通信,以便输出调试信息。
- 使用
-
卡片检测:
- 程序不断检测是否有新卡片通过
mfrc522.PICC_IsNewCardPresent()
。 - 检测到新卡片后,读取卡片的序列号并输出。
- 程序不断检测是否有新卡片通过
-
标签验证:
- 每个检测到的 RFID 卡片会与预定义的标签 ID 进行比较。
- 如果卡片与 MASTER_TAG 匹配,则允许访问,输出成功信息。
- 如果卡片与 MASTER_TAG_PROHIBITED 匹配,则拒绝访问,输出警告信息。
- 其他卡片则直接拒绝访问。
-
蜂鸣器反馈:
- 通过
tone(PIEZO_PIN, RFID_TONE, DURATION)
播放音调,给出音频反馈。
- 通过
-
日志输出:
- 使用
log()
函数将相关信息输出到串口监视器。
- 使用
- 按照“硬件配置”中的接线图,将 RFID RC522 模块连接到 Arduino UNO。
- 将提供的代码上传到 Arduino UNO。
- 打开串口监视器查看 RFID 标签 ID。
- 将 RFID 标签靠近读取器,系统会根据预定义的标签 ID 验证卡片并提供访问权限。
- 通过蜂鸣器听取反馈:
- 滴:成功(允许访问)。
- 哔:拒绝访问。
- 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_TAG 和 MASTER_TAG_PROHIBITED 在代码中已定义,可以根据需要修改为实际使用的卡片 ID。
如果您认为该项目对您有所帮助,并且愿意个人捐赠以支持其持续发展和维护,🥰我非常感激您的慷慨。 您的捐赠将帮助我继续改进和添加新功能到该项目中。 通过财务捐赠,您将有助于确保该项目保持免 费和对所有人开放。即使是一小笔捐款也能产生巨大的影响,也是对我个人的鼓励。
以下是我的支付宝二维码,您可以扫描二维码进行个人捐赠:
微信支付 | 支付宝支付 |
---|---|
![]() |