Sicheres RFID-Türschloss mit Arduino & RC522 (MIFARE 13,56 MHz)
Komponenten und Materialien
- 1 × Arduino UNO
- 1 × RFID-RC522 Modul (SPI, 13,56 MHz)
- 1 × TG9e Servo (Türriegel)
- 1 × Adafruit NeoPixel Ring (1 LED, WS2812B) – Statusanzeige
- 2 × RFID-Tags (Karte/Chip)
Projektbeschreibung
Ein einfaches, aber sicheres RFID-Türschloss: Nur autorisierte Tags (UID im Code hinterlegt) öffnen die Tür per Servo. Eine einzelne NeoPixel-LED zeigt Status: Weiß=Start, Grün=Zugang gewährt, Rot=Zugang verweigert. Der Code ist kompakt und gut kommentiert.
Schaltplan
- RC522: SDA→D10, SCK→D13, MOSI→D11, MISO→D12, RQ→nicht verbunden, GND→GND, RST→D9, 3.3V→3.3V
- Servo: Signal→D3, VCC→5V, GND→GND
- NeoPixel: Data→A0, VCC→5V, GND→GND

Code
/* Arduino RFID Lock mit RC522, Servo & NeoPixel
* 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("Arduino RFID Lock");
myservo.attach(SERVO_PIN);
myservo.write(0); // zu
pixels.begin();
pixels.setPixelColor(0, 32, 32, 32); // Weiß
pixels.show();
delay(500);
pixels.setPixelColor(0, 0, 0, 0);
pixels.show();
}
void loop() {
// Neue Karte suchen
if (!mfrc522.PICC_IsNewCardPresent()) return;
if (!mfrc522.PICC_ReadCardSerial()) return;
// UID als Hex-String mit Bindestrichen
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("UID tag: '" + content + "'");
// Autorisierte UID hier eintragen!
if (content == "77-39-50-39") {
Serial.println("Authorized access");
myservo.write(90); // auf
pixels.setPixelColor(0, 0, 32, 0); // Grün
pixels.show();
delay(1000);
myservo.write(0); // zu
pixels.setPixelColor(0, 0, 0, 0);
pixels.show();
} else {
Serial.println("Access denied");
pixels.setPixelColor(0, 32, 0, 0); // Rot
pixels.show();
delay(500);
pixels.setPixelColor(0, 0, 0, 0);
pixels.show();
}
delay(1000);
}
Erweiterungsideen
- Mehrere autorisierte UIDs (Array/EEPROM).
- Loggen von Zugriffsversuchen (SD-Karte/RTC).
- Masterkarte zum Anlernen neuer Tags.
- OLED-Display für Benutzerfeedback.
Herstellungsprozess
- Sicheres Arduino RFID-Schloss bauen – Schritt-für-Schritt-Anleitung
- RFID-Anwesenheitssystem mit Arduino & Python – Daten direkt in phpMyAdmin (XAMPP) speichern
- K30 CO₂-Sensor: Echtzeit-Luftqualitätsmessung mit Arduino
- Kommunikationshilfe für Taubblinde: 1Sheeld + Arduino + Sprachausgabe & Anzeige
- Smartes Sparschwein: Münzprüfer mit Arduino Nano steuern
- LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
- DFRobot Kapazitiver Fingerabdrucksensor mit Arduino oder ESP8266 einbinden
- Interaktives Nextion HMI Projekt mit Arduino Mega und Sensoren
- Arduino-basierter 6-DoF Roboterarm mit Nunchuk-Steuerung
- Smartes Check-In-System für Hackerspaces – Arduino Mega, RFID (RC522) & Node.js