Windows PC per RFID sperren/entsperren: Arduino Micro/Leonardo Projekt
Komponenten und Zubehör
| Bauteil | Menge | |
|---|---|---|
| Arduino Micro (oder Leonardo) | 1 | Wichtig: ATmega32U4-Chip für USB-HID (Tastatur-Emulation) |
| RC522 RFID-Modul | 1 | 3,3 V Betriebsspannung! |
| Widerstand 10 kΩ | 3 | Für Spannungsteiler (5 V → 3,3 V) |
Benötigte Werkzeuge
- Lötkolben
Software
- Arduino IDE
Projektbeschreibung
Kennst du das? Ständig das Passwort eintippen, wenn der PC gesperrt ist? Ich sperre meinen Rechner oft und fand es lästig. Notwendigkeit ist die Mutter der Erfindung – also baute ich ein RFID-System zum schnellen Entsperren.
RFID-Grundlagen
Radio-Frequency Identification (RFID) speichert Daten auf Chips, die per elektromagnetischen Feldern ausgelesen werden. Die Technologie ist nicht neu, aber für Maker sehr vielseitig.
Hardware-Aufbau
Wichtig: Nur Boards mit ATmega32U4 (Micro, Leonardo) funktionieren, da sie als USB-Tastatur auftreten können. UNO, Mega, Nano gehen nicht.
Verdrahtung RC522 an Arduino Micro:
- RC522 VCC → 3,3 V (über Spannungsteiler: 2×10 kΩ von 5 V → 3,3 V)
- RC522 GND → GND
- RC522 RST → Pin 5 (im Code änderbar)
- RC522 IRQ → nicht verbunden
- RC522 MISO → Pin 14 (Hardware SPI)
- RC522 MOSI → Pin 16 (Hardware SPI)
- RC522 SCK → Pin 15 (Hardware SPI)
- RC522 SDA (SS) → Pin 10 (im Code änderbar)
Auf Steckbrett prototypen, dann auf Lochraster löten. Header für Arduino und RFID-Modul verwenden (Hitzeschutz).
Die Software
Der Code nutzt Keyboard.h (Core-Library), um Tastatureingaben zu simulieren.
Ablauf:
- Karten-UID und Windows-Passwort/PIN im Code hinterlegen.
- Bei Erkennung der richtigen Karte sendet Arduino: Win+L (Sperren) → Enter → Passwort → Enter.
- Ist PC gesperrt, entsperrt die Sequenz ihn. Ist er entsperrt, wird er gesperrt (Entsperrbefehl kommt minimal später, wird aber ignoriert, da Windows schon Sperrbildschirm zeigt).
Einrichtung
- Prototyp an PC anschließen, Arduino IDE öffnen, Board: Arduino Leonardo wählen.
- Code hochladen, Serial Monitor öffnen (9600 Baud).
- Karte scannen → UID wird angezeigt (z. B.
48b45a10). - Im Code
String card1 = "48b45a10";durch eigene UID ersetzen. Keyboard.print("PASSWORD");durch eigenes Windows-Passwort/PIN ersetzen.- Erneut hochladen, testen.
Gehäuse
Ich nutzte Karton, Kohlefaser-Folie und dunklen Aufkleber für die LEDs. Der Kreativität sind keine Grenzen gesetzt.
Sicherheitshinweis
Dies ist ein Hobbyprojekt! Keine Garantie für Sicherheit. Potenzielle Schwachstellen (UID klonbar, Passwort im Code) vor produktivem Einsatz prüfen.
Code (C/C++)
#include <Keyboard.h>
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 5
#define KEY_RETURN 0xB0
MFRC522 mfrc522(SS_PIN, RST_PIN);
char Enter = KEY_RETURN;
String readid;
String card1 = "48b45a10"; // Eigene UID hier eintragen
void setup() {
Serial.begin(9600);
Keyboard.begin();
SPI.begin();
mfrc522.PCD_Init();
}
void temp(byte *buffer, byte bufferSize) {
readid = "";
for (byte i = 0; i < bufferSize; i++) {
readid += String(buffer[i], HEX);
}
}
void loop() {
if (!mfrc522.PICC_IsNewCardPresent()) return;
if (!mfrc522.PICC_ReadCardSerial()) return;
mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
temp(mfrc522.uid.uidByte, mfrc522.uid.size);
if (readid == card1) {
Keyboard.press(KEY_LEFT_GUI); // Windows-Taste
Keyboard.press('l'); // 'l' für Sperren
Keyboard.releaseAll();
delay(100);
Keyboard.press(Enter); Keyboard.release(Enter);
delay(100);
Keyboard.print("DEIN_PASSWORT"); // Passwort hier eintragen
Keyboard.releaseAll();
delay(100);
Keyboard.press(Enter); Keyboard.releaseAll();
}
}
Schaltplan
Siehe Fritzing-Bild im Original: Spannungsteiler für 3,3 V, SPI-Verdrahtung, RST/SDA an definierte Pins.
Herstellungsprozess
- Banktresore: Geschichte, Design und Zukunft der Sicherheit
- Kanäle & Schleusen: Technik, Geschichte und Zukunft des US-Wassertransports
- Die Evolution und Fertigung moderner Stiftschloss-Zylinderschlösser
- C# using-Anweisungen meistern: Importe, Aliase und statische Direktiven
- Remote-Wetterüberwachung mit Raspberry Pi 3 & PubNub
- TI SensorTag mit Blynk via Node-RED auf Raspberry Pi Zero integrieren
- LED mit PIR-Bewegungsmelder am Raspberry Pi steuern
- Intelligenten Roboter mit Bridge Shield bauen – Raspberry Pi & Arduino Integration
- Sprachgesteuerter Computer-Vision-Roboter auf Windows 10 IoT Core bauen
- WLAN-Türschloss mit Arduino & ESP8266 – Per Smartphone entsperren