当前位置: 首页 > news >正文

7.5元包邮的RC522读卡器,手把手教你用Arduino Uno复制小区门禁卡(附完整代码与接线图)

7.5元包邮的RC522读卡器实战:用Arduino Uno低成本复制门禁卡

周末整理抽屉时翻出一张失效的小区门禁卡,物业补办要收50元工本费。作为电子爱好者,我决定用手头的Arduino开发板和网购的7.5元包邮RC522读卡器尝试自主复制。经过三小时折腾,最终零成本解决了问题——这个过程中积累的经验和踩过的坑,正是本文要分享的核心内容。

1. 硬件准备与成本控制

核心设备清单

  • Arduino Uno开发板(兼容版约25元)
  • RC522射频读卡模块(7.5元包邮)
  • 可改写UID卡(10张包邮价约8元)

关键细节:RC522模块的VCC引脚需要3.3V供电,但部分廉价模块的稳压芯片质量较差,建议通过Arduino的3.3V输出口供电。我最初使用5V供电导致读卡距离不足2cm,切换后稳定读卡距离达到5cm以上。

接线示意图

RC522引脚Arduino引脚
SDAD10
SCKD13
MOSID11
MISOD12
IRQ不接
GNDGND
RSTD9
3.3V3.3V

注意:不同库可能要求不同的SS/CS引脚定义,若遇到读取失败,可尝试将SDA改接D8或其他数字引脚

2. 卡片类型选择与识别技巧

市面上常见的13.56MHz射频卡主要分为三类:

  1. M1 S50卡:不可改写UID,多数门禁系统会检测此特性
  2. UID可改写卡:CUID/FUID等变种,支持修改0扇区数据
  3. UFUID卡:高级可擦写卡,支持全扇区反复修改

实战建议:购买前与卖家确认卡片类型,要求提供"可改写UID"的测试视频。我首次购买的所谓"空白卡"实际是M1卡,导致写入操作完全无效,白白浪费两天等待换货时间。

快速识别卡片类型的方法

#include <SPI.h> #include <MFRC522.h> #define RST_PIN 9 #define SS_PIN 10 MFRC522 mfrc522(SS_PIN, RST_PIN); void setup() { Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); } void loop() { if (!mfrc522.PICC_IsNewCardPresent()) return; if (!mfrc522.PICC_ReadCardSerial()) return; Serial.print("Card UID:"); for (byte i = 0; i < mfrc522.uid.size; i++) { Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(mfrc522.uid.uidByte[i], HEX); } Serial.println(); mfrc522.PICC_HaltA(); }

运行此代码后,连续多次读卡若UID不变,则可能是M1卡;若每次UID随机变化,则是UID可改写卡。

3. 软件环境配置与库使用

Arduino IDE的库管理虽方便,但存在几个隐藏陷阱:

  • 库版本兼容性问题:最新版MFRC522库(2.0.3)可能不兼容老教程
  • 示例代码路径差异:部分库安装后需要重启IDE才显示示例

可靠配置流程

  1. 在Arduino IDE中点击「工具」→「管理库」
  2. 搜索"MFRC522"选择2.0.3版本安装
  3. 通过「文件」→「示例」→「MFRC522」找到关键程序:
    • ReadUID:获取卡片原始UID
    • ChangeUID:写入新UID(需配合可改写卡)

常见问题处理:当遇到"SPI.h not found"错误时,说明未安装SPI库——这是Arduino内置库,通过「工具」→「管理库」搜索"SPI"安装即可。

4. 完整复制流程与避坑指南

分步操作手册

  1. 使用ReadUID读取原门禁卡UID(如:A1 B2 C3 D4)
  2. 将可改写UID卡放置到读卡器
  3. 修改ChangeUID示例中的目标UID:
byte newUid[] = {0xA1, 0xB2, 0xC3, 0xD4};
  1. 上传代码并观察串口输出(波特率9600)

关键验证步骤:写入后立即用ReadUID验证,成功后再测试门禁系统。我遇到的情况是:复制卡在单元门禁可用,但地下车库门禁却失效——后来发现车库系统还验证了1扇区数据,需要额外复制该区域。

高级技巧:对于验证扇区数据的门禁系统,可使用rfid_read_personal_data示例读取全部数据,再通过rfid_write_personal_data写入新卡。某品牌电梯门禁的典型数据模式如下表:

扇区区块特征数据
00UID+厂商代码
10固定标识符"AE 4F 21 03"
11动态校验码

实际操作中发现,部分门禁系统会检测写卡时间戳。解决方案是:先用原卡触发门禁,5分钟内完成复制卡写入,使两张卡的时间戳相近。

http://www.jsqmd.com/news/979417/

相关文章:

  • 避开dsPIC33 ADC同时采样的那些坑:从MUXA/B交替采样到中断配置详解
  • 【大同黄金回收六大机构实测 持金变现安全指南】 - 润富黄金回收
  • 古玩字画寄售拍卖转拍三合一PHP系统,含数据库与完整前后端
  • 超越复制粘贴:用Cadence Allegro模块复用功能,打造你的PCB设计“乐高积木库”
  • VMware Horizon UAG网关配置避坑指南:从OVF导入到外网访问的全流程实战
  • 从“黑箱”到“白盒”:用Rsoft模拟长周期光纤光栅,我这样理解能量耦合与模式图
  • 遗传算法工程落地四步法:编码、适应度、算子与收敛实战
  • 用Cheat Engine 7.5给植物大战僵尸“动手术”:从阳光到僵尸血量的完整逆向实战
  • 从标签到社区:我是如何利用GitHub Topics功能,让我的Go语言小项目获得第一批用户的
  • IINA技术解析:基于mpv的macOS现代化视频播放器架构与实现
  • 011、MLIR的Pattern Rewrite框架:DRR与C++ Rewrite
  • 保姆级教程:用UHD命令行工具搞定USRP固件升级与MATLAB连接验证
  • 告别手动复制粘贴:用UiPath Studio 2024.4自动化读取Excel表格的保姆级教程
  • 2026西南螺母供应商排行:成都螺母批发、成都非标紧固件、成都非标螺丝、不锈钢螺丝、四川紧固件厂家、四川螺丝厂选择指南 - 优质品牌商家
  • 从零到生产级:在VMware ESXi上部署NBU主服务器的完整配置流程
  • 告别轮询!用STM32CubeMX+HAL库快速配置串口中断,搞定HWT101姿态角数据流
  • DIY T12烙铁头驱动:用三极管和电容搞定NMOS上管驱动(附Multisim仿真)
  • 保姆级教程:安装CUDA后,用这5种方法彻底验证你的GPU开发环境是否正常
  • 张力三角剖分与细胞镶嵌的力学建模技术
  • 基于深度学习YOLOv8的吸烟识别检测系统(YOLOv8+YOLO数据集+UI界面+Python项目源码+模型)
  • 从‘信息检索’的视角拆解Transformer Attention:你的Query如何找到最相关的Key并提取Value?
  • 微信小程序Webview加载PDF和网页,除了wx.downloadFile,你还可以试试这个方案
  • 别再为PCB仿真发愁了!手把手教你用AD22+Ansys EDB Exporter打通HFSS流程
  • 北京管道疏通公司采购指南,5家务实推荐清单 - 品牌推荐
  • 普通电脑做大数据采集的3种实战方案
  • PyTorch实战:手把手教你为不确定性建模——混合密度网络(MDN)从理论到代码
  • 手把手教你用Verilog实现一个最简单的RISC-V核(基于RV32I指令集)
  • 2025-2026年海参品牌推荐:十大榜专业评测送礼选滋补性价比高 - 品牌推荐
  • 基于深度学习YOLOv8的固体废物识别检测系统(YOLOv8+YOLO数据集+UI界面+Python项目源码+模型)
  • 2026年6月比较好的小型冻干机定制厂家推荐,小型冻干机/工业冻干机/压盖款冻干机,小型冻干机推荐找哪家 - 品牌推荐师