Arduino UNO Q - RFID/NFC
RFID (Funkfrequenzidentifikation) ermöglicht es Ihnen, eine eindeutige ID drahtlos von einem Tag oder einer Karte zu lesen – keine Berührung erforderlich. Auf Arduino UNO Q verbindet sich das MFRC522 (RC522) Modul über SPI mit dem MCU. Mit Bridge und Telegram können Sie sofortige Benachrichtigungen auf Ihrem Telefon erhalten, wenn ein Tag gescannt wird.
In diesem Tutorial lernen Sie:
- Was ein RFID RC522 Modul ist und wie es funktioniert
- Wie Sie den RC522 über SPI mit dem Arduino UNO Q MCU verdrahten
- Wie Sie RFID/NFC-Tag-UIDs mit der MFRC522-Bibliothek lesen
- Wie Sie Bridge verwenden, um Scan-Ereignisse der Linux-Seite (Python) zugänglich zu machen
- Wie Sie Telegram-Warnungen erhalten, wenn ein RFID-Tag auf Arduino UNO Q gescannt wird
- Wie Sie OpenClaw auf Arduino UNO Q mit dem RFID-Lesegerät verwenden

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über das RFID-RC522-Modul
Pinbelegung
Das RC522 hat 8 Pins. In diesem Tutorial verwenden wir SPI-Kommunikation:
- GND: Mit GND verbinden
- VCC: Mit 3,3V verbinden (⚠️ NICHT 5V — könnte das Modul beschädigen)
- RST: Reset-Pin — mit digitalem Pin des MCU verbinden
- IRQ: Interrupt-Pin — in diesem Tutorial nicht verbunden
- MISO/SCL/TX: MISO-Leitung (SPI)
- MOSI: MOSI-Leitung (SPI)
- SCK: Taktleitung (SPI)
- SS/SDA/RX: Slave Select (SPI)

※ Notiz:
- Die Pinbelegung kann je nach Hersteller unterschiedlich sein — folgen Sie immer den Beschriftungen auf dem Modul selbst.
- Verbinden Sie VCC NICHT mit 5V — dies könnte das RC522-Modul dauerhaft beschädigen.
- Die MFRC522-Bibliothek verwendet nur den SPI-Modus.
Wie RFID/NFC funktioniert
RFID besteht aus zwei Teilen: einem Lesegerät und einem Tag:
- Das Lesegerät erzeugt ein elektromagnetisches Feld über seine Antenne
- Der Tag ist passiv (keine Batterie) — er zieht Energie aus dem Feld und sendet seine gespeicherte UID an das Lesegerät zurück

Der MCU empfängt die UID-Bytes vom Lesegerät und kann darauf reagieren – z. B. Zugang gewähren, wenn die UID einer autorisierten Liste entspricht.
Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
| RC522-Pin | Arduino UNO Q MCU |
|---|---|
| GND | GND |
| VCC | 3,3V |
| RST | D5 |
| IRQ | (nicht verbunden) |
| MISO | D12 (MISO) |
| MOSI | D11 (MOSI) |
| SCK | D13 (SCK) |
| SS | D10 (SS) |
Programmierung für RFID
- Initialisieren Sie SPI und MFRC522:
- Erkennen und lesen Sie einen Tag in loop():
Arduino UNO Q Code
Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten:
- Der STM32 MCU kommuniziert über SPI mit dem RC522 und liest Tag-UIDs in loop()
- Die Qualcomm MPU läuft Debian Linux und verwaltet Wi-Fi, Python und Cloud-Konnektivität
- In diesem Abschnitt wird nur der MCU programmiert — die Linux-Seite bleibt untätig. Ein späterer Abschnitt zeigt, wie beide Prozessoren über Bridge zusammenarbeiten.
Schnelle Schritte
Erstes Mal mit Arduino UNO Q? Folgen Sie dem Tutorial Erste Schritte mit Arduino UNO Q, bevor Sie fortfahren.
- Verdrahten: Verbinden Sie den RC522 mit dem Arduino UNO Q MCU, wie im Verdrahtungsdiagramm gezeigt.
- Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis es Ihren Arduino UNO Q erkennt.
- Erstellen Sie eine neue App: Klicken Sie auf die Schaltfläche Neue App erstellen.

- Geben Sie der App einen Namen, z. B.: RC522RFID
- Klicken Sie auf Erstellen, um zu bestätigen.

- Fügen Sie die Skizze ein: Kopieren Sie den MCU-Code oben und fügen Sie ihn in sketch/sketch.ino ein. Behalten Sie andere Dateien wie in der Standardeinstellung.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for MFRC522 created by GithubCommunity and click the Install button.
- Upload: Klicken Sie auf die Ausführungsschaltfläche im Arduino App Lab.

- Halten Sie ein RFID/NFC-Tag an das Lesegerät und beobachten Sie die im Serial Monitor gedruckte UID.
App Lab Konsolenausgabe
Bridge: Linux + MCU
Dieser Abschnitt zeigt, wie Sie beide Prozessoren des Arduino UNO Q programmieren, damit die Linux-Seite Tag-Scan-Ereignisse empfangen und UIDs über Bridge lesen kann:
- Der RC522 RFID-Lesegerät ist über SPI mit dem MCU verbunden — der MCU scannt nach Tags in loop() und setzt ein Ereignis-Flag, wenn ein Tag erkannt wird
- Die MPU kann den RC522 nicht direkt lesen — sie ruft Bridge-Funktionen auf, um nach Tag-Ereignissen zu fragen und die letzte UID zu lesen
- Die MPU hat Wi-Fi — mit vollständigem Debian Linux läuft es können Telegram-Benachrichtigungen senden, wenn ein Tag gescannt wird
- Arduino_RouterBridge ermöglicht RPC-Kommunikation zwischen den beiden Prozessoren
- ⚠️ /dev/ttyHS1 (Linux) und Serial1 (MCU) sind RESERVIERT vom Router — öffnen Sie sie niemals in Benutzercode
Kurz gesagt: MCU erkennt Tag in loop() → setzt Ereignis-Flag → MPU befragt Bridge → MPU sendet Telegram-Warnung.
MCU-Code (Bridge)
Python-Code (Bridge)
Schnelle Schritte
- Verdrahten: Verbinden Sie den RC522 mit dem Arduino UNO Q, wie im Verdrahtungsdiagramm gezeigt.
- Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis die Platine erkannt wird.
- Erstellen Sie eine neue App: Klicken Sie auf Neue App erstellen, benennen Sie sie RC522RFIDBridge, und klicken Sie dann auf Erstellen.
- Fügen Sie die MCU-Skizze ein: Kopieren Sie den MCU-Bridge-Code oben und fügen Sie ihn in sketch/sketch.ino ein.
- Fügen Sie den Python-Code ein: Kopieren Sie den Python-Bridge-Code oben und fügen Sie ihn in die Python-Datei der App ein.
- Upload: Klicken Sie auf die Ausführungsschaltfläche im Arduino App Lab.

- Halten Sie ein RFID/NFC-Tag an — beobachten Sie die UID in der MCU-Konsole und der Python-Konsole.
App Lab Konsolenausgabe
Telegram
Erhalten Sie sofortige Telegram-Benachrichtigungen, wenn ein RFID/NFC-Tag auf dem Arduino UNO Q gescannt wird.
MCU-Skizze: Behalten Sie die gleiche MCU-Skizze aus dem vorherigen Bridge-Abschnitt.
Python-Code (Telegram)
Schnelle Schritte
- Ersetzen Sie YOUR_TELEGRAM_BOT_TOKEN durch Ihren tatsächlichen Bot-Token von BotFather.
- Ersetzen Sie YOUR_CHAT_ID durch Ihre Telegram-Chat-ID.
- Fügen Sie diesen Python-Code in die Python-Datei Ihrer App ein (behalten Sie die gleiche MCU-Skizze bei).
- Klicken Sie auf die Ausführungsschaltfläche. Halten Sie ein Tag an — erhalten Sie sofort die Telegram-Benachrichtigung.
App Lab Konsolenausgabe
ArduinoBot
OpenClaw
You can adapt the OpenClaw to this tutorial by refering the instruction on Arduino Uno Q - OpenClaw Tutorial
Projektideen
Sie können viele nützliche Projekte mit dem RFID-Lesegerät und Arduino UNO Q erstellen:
- Zugriffskontrollsystem: Verwalten Sie eine autorisierte UID-Liste auf der Linux-Seite — wenn ein Tag gescannt wird, vergleichen Sie die UID mit der Liste und verwenden Sie Bridge, um ein elektromagnetisches Schloss freizugeben, wenn autorisiert, oder senden Sie eine Telegram-Warnung für nicht autorisierte Scans
- Anwesenheitsverfolgung: Jedes Mal, wenn ein Schüler oder Mitarbeiter seine RFID-Karte scannt, protokolliert die MPU die UID und den Zeitstempel in einer CSV-Datei unter Linux — senden Sie automatisch am Ende des Tages einen täglichen Anwesenheitsbericht an Telegram
- Telegram-Tag-Register: Verwenden Sie /register über Telegram, um die zuletzt gescannte UID zu einer autorisierten Liste hinzuzufügen — und /list, um alle in einer Python-JSON-Datei gespeicherten registrierten UIDs zu sehen
- Smart Locker: Kombinieren Sie RFID mit einem Solenoid-Schloss — jedes registrierte Tag entsperrt einen persönlichen Schließfach für 10 Sekunden, wobei jeder Zugriff protokolliert und an Telegram gesendet wird
- Bücherei-Nachverfolgung: Befestigen Sie RFID-Tags an Büchern — scannen Sie beim Ausleihen und Zurückgeben, protokollieren Sie jedes Ereignis mit Zeitstempel und UID in einer Datei unter Linux, und fragen Sie über Telegram ab, um zu prüfen, wer welches Buch hat
Herausfordere dich selbst
Bereit, noch weiter mit RFID auf Arduino UNO Q zu gehen? Probieren Sie diese Herausforderungen:
- Einfach: Ändern Sie den Python-Code, um "Autorisiert" zu drucken, wenn die gescannte UID mit einem hartcodierten String in Python übereinstimmt, oder "Nicht autorisiert", wenn nicht — keine MCU-Änderungen erforderlich.
- Mittel: Erstellen Sie ein Tag-Register über Telegram: senden Sie /register, um die zuletzt gescannte UID von Bridge.call("get_uid") zu einer Python-JSON-Datei hinzuzufügen, und /list, um alle registrierten UIDs zu sehen — treffen Sie die Zugriffskontrollentscheidung in Python.
- Fortgeschrittenes: Implementieren Sie ein zeitlich begrenztes Zugriffssystem: jede registrierte UID hat ein zulässiges Zeitfenster (z. B. 08:00–18:00), das in einer JSON-Datei gespeichert ist — Scans außerhalb des zulässigen Fensters senden eine Telegram-Warnung und entsperren die Tür nicht, während Scans innerhalb die Tür für 10 Sekunden entsperren.