Arduino RFID 门锁系统 – RC522 模块实现安全门禁
元件与材料
| Arduino UNO | ×1 |
| RFID RC522 模块 (MIFARE 13.56MHz) | ×1 |
| TG9e 舵机 | ×1 |
| Adafruit NeoPixel 环 (WS2812 5050 RGB LED) | ×1 |
| RFID 标签 (卡/钥匙扣) | ×2 |
项目简介
演示如何用 Arduino UNO 和 RC522 模块制作 RFID 门锁。授权卡触发舵机转动 90° 开锁 1 秒后自动关锁,NeoPixel 绿灯指示成功,红灯指示拒绝。项目也发布在 geek.adachsoft.com。
步骤 1:元件清单
- Arduino UNO
- RFID RC522
- TG9e 舵机
- WS2812 RGB LED
- 2× RFID 标签
步骤 2:原理图

步骤 3:软件逻辑
初始化串口、SPI、RC522、舵机、NeoPixel。循环检测新卡,读取 UID 并转为十六进制字符串(如 "77-39-50-39")。与预设授权 UID 比对,匹配则舵机转 90°、绿灯亮 1 秒后复位;不匹配则红灯亮 0.5 秒。串口输出 UID 及授权结果。
代码
RFID_with_servo.ino
/* https://geek.adachsoft.com */
#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
#include <Adafruit_NeoPixel.h>
#define LED_PIN A0
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(1, LED_PIN, NEO_GRB + NEO_KHZ800);
#define SERVO_PIN 3
Servo myservo;
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
void setup() {
Serial.begin(115200);
SPI.begin();
mfrc522.PCD_Init();
Serial.println("For more: https://geek.adachsoft.com");
Serial.println("Arduino RFID lock");
Serial.println("");
myservo.attach(SERVO_PIN);
myservo.write(0);
pixels.begin();
pixels.setPixelColor(0, 32, 32, 32); pixels.show(); delay(500);
pixels.setPixelColor(0, 0, 0, 0); pixels.show();
}
void loop() {
if (!mfrc522.PICC_IsNewCardPresent()) return;
if (!mfrc522.PICC_ReadCardSerial()) return;
String content = "";
for (byte i = 0; i < mfrc522.uid.size; i++) {
content.concat(String(mfrc522.uid.uidByte[i], HEX));
if (i < mfrc522.uid.size - 1) content += "-";
}
content.toUpperCase();
Serial.println(); Serial.println("UID tag :'" + content + "'");
if (content == "77-39-50-39") {
Serial.println("Authorized access");
myservo.write(90);
pixels.setPixelColor(0, 0, 32, 0); pixels.show();
delay(1000);
myservo.write(0);
pixels.setPixelColor(0, 0, 0, 0); pixels.show();
} else {
Serial.println("Access denied");
pixels.setPixelColor(0, 32, 0, 0); pixels.show();
delay(500);
pixels.setPixelColor(0, 0, 0, 0); pixels.show();
}
delay(1000);
}
原理图

制造工艺
- 打造安全的 Arduino RFID 门锁——分步指南
- 基于 Arduino 与 Python 的可靠 RFID 考勤系统
- K30 CO₂ 传感器:室内空气质量实时监测
- 基于 1Sheeld 与 Arduino 的盲聋人士沟通辅助系统
- 智能存钱罐:Arduino Nano 控制硬币识别器实现余额显示
- Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
- DFRobot 电容指纹传感器 (ID809) 接入 Arduino/ESP8266 完整教程
- 基于 Arduino Mega 与 Nextion 显示屏的交互式气象站
- Arduino Mega 驱动 Wii Nunchuk 控制 6 自由度机械臂
- 智能黑客空间电子签到系统 - Arduino Mega 与 RFID 实现
- Arduino UNO + 以太网盾板实现低成本太阳辐射测量仪(热电堆原理)
- 紧凑型Arduino雷达系统:HC-SR04超声波传感器配1.8英寸显示屏