打造安全的 Arduino RFID 门锁——分步指南
组件与物料
- Arduino UNO ×1
- RFID 读取器(RC522 模块)×1
- OLED 显示屏(0.96 英寸,128×64,I2C 接口)×1
- 迷你面包板 ×1
- 杜邦线若干
- 可选:移动电源(便携供电)
整套成本约 15 美元。
软件与在线服务
- Arduino IDE
项目简介
本教程将带你使用 RC522 RFID 读取器与 Arduino UNO,结合 OLED 显示屏,构建一个简易的门禁系统。系统读取 RFID 标签的唯一标识符(UID),并与预存的合法 UID 比对:若匹配则在屏幕显示“Unlocked”(解锁),否则不显示解锁信息。
步骤 1:准备所有零件
所需零件清单如上。RFID 读取器与两张卡/钥匙扣标签约 4 美元;OLED 屏幕约 3 美元;Arduino UNO 约 8 美元。
步骤 2:了解 RC522 RFID 读取器
RC522 工作频率 13.56 MHz,通过天线线圈向标签感应供电,读取距离可达 20 mm。每张标签拥有唯一 UID(本项目仅使用 UID),亦可存储 1 KB 数据(留待后续教程)。
步骤 3:OLED 显示屏
采用 SSD1306 驱动的 0.96 英寸 OLED,分辨率 128×64,支持黄/蓝双色分区显示。功耗仅 10–20 mA,通过 I2C 仅需两根信号线(SCL、SDA)加电源即可驱动,极适合初学者。推荐使用 Adafruit_SSD1306 与 Adafruit_GFX 库。
步骤 4:硬件接线
⚠️ 关键提示:RC522 必须接 3.3V,接 5V 会烧毁模块。 OLED 亦可工作在 3.3V,因此两模块 VCC 共接面包板正极轨,再接 Arduino 3.3V;GND 共接负极轨再接 Arduino GND。
OLED(I2C)接线
- VCC → 3.3V
- GND → GND
- SCL → A5
- SDA → A4
RC522(SPI)接线
- RST → D9
- IRQ → 悬空
- MISO → D12
- MOSI → D11
- SCK → D13
- SDA (SS) → D10
接线完成上电,将标签靠近读取器即可在 OLED 上看到 UID。
步骤 5:代码实现
需安装三个库:
- MFRC522(库管理器搜索安装)
- Adafruit_SSD1306
- Adafruit_GFX
安装 Adafruit_SSD1306 后,需修改库文件 Adafruit_SSD1306.h:注释第 70 行,取消注释第 69 行(定义 128×64 分辨率)。
核心代码片段
// 预存合法 UID(示例)
int code[] = {69, 141, 8, 136};
void setup() {
rfid.PCD_Init();
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
}
void loop() {
// 每 100 ms 检测一次标签
if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()) {
// 显示 UID
printUIDOnDisplay();
// 比对
bool match = compareUID(rfid.uid.uidByte, code);
if (match) {
Serial.println("\nI know this card!");
printUnlockMessage(); // OLED 显示 "Unlocked"
} else {
Serial.println("\nUnknown Card");
}
rfid.PICC_HaltA();
}
delay(100);
}
完整代码请见项目附件 RFID.ino。你可扩展 code 数组以支持多张合法卡。
步骤 6:总结与改进方向
以极低成本即可为项目加入 RFID 识别功能,可用于门禁、考勤、互动游戏等。后续将尝试读写标签数据区,敬请期待。
制造工艺
- Arduino RFID 门锁系统 – RC522 模块实现安全门禁
- Arduino Nano 指纹传感器项目——分步教程
- 用 Arduino UNO 自制迷你钢琴 — 图文教程
- 使用 Arduino 制作便携式 RFID 门锁——分步指南
- RFID 门禁控制电脑开关机:Arduino 继电器项目
- Arduino UNO 对接 HID Prox RFID 读卡器 (Wiegand 26/35 位) 完整指南
- 自制网络化 RFID 读卡器:Arduino + ENC28J60 以太网 + MFRC522
- RFID 刷卡解锁 Windows 电脑:Arduino Micro 实现键盘模拟
- 掌握 Arduino 多任务编程:原型线程分步教程
- MPU6050 六轴 IMU 详解:Arduino 姿态解算与 3D 可视化
- Arduino 无刷电机控制教程:ESC 与 BLDC 电调详解
- Arduino入门教程01:开始你的第一个项目