Arduino UNO Q - RFID/NFC
Le RFID (Identification par Radiofréquence) vous permet de lire un identifiant unique depuis un tag ou une carte sans contact. Sur Arduino UNO Q, le module MFRC522 (RC522) se connecte via SPI au MCU. Avec Bridge et Telegram, vous pouvez recevoir des notifications instantanées sur votre téléphone lorsqu'un tag est scanné.
Dans ce tutoriel, vous apprendrez :
- Ce qu'est un module RFID RC522 et comment il fonctionne
- Comment câbler le RC522 au MCU Arduino UNO Q via SPI
- Comment lire les UIDs de tags RFID/NFC avec la bibliothèque MFRC522
- Comment utiliser Bridge pour exposer les événements de scan au côté Linux (Python)
- Comment recevoir des alertes Telegram lorsqu'un tag RFID est scanné sur Arduino UNO Q
- Comment utiliser OpenClaw sur Arduino UNO Q avec le lecteur RFID

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À Propos du Module RFID-RC522
Brochage
Le RC522 a 8 broches. Dans ce tutoriel, nous utilisons la communication SPI :
- GND : Connectez à GND
- VCC : Connectez à 3,3V (⚠️ PAS 5V — peut endommager le module)
- RST : Broche de réinitialisation — connectez à une broche numérique du MCU
- IRQ : Broche d'interruption — non connectée dans ce tutoriel
- MISO/SCL/TX : Ligne MISO (SPI)
- MOSI : Ligne MOSI (SPI)
- SCK : Ligne d'horloge (SPI)
- SS/SDA/RX : Sélection d'esclave (SPI)

※ Note:
- La disposition des broches peut varier selon le fabricant — suivez toujours les étiquettes sur le module lui-même.
- Ne connectez PAS VCC à 5V — cela peut endommager définitivement le module RC522.
- La bibliothèque MFRC522 utilise uniquement le mode SPI.
Comment Fonctionne le RFID/NFC
Le RFID comporte deux parties : un lecteur et un tag :
- Le lecteur génère un champ électromagnétique via son antenne
- Le tag est passif (sans batterie) — il puise de l'énergie dans le champ et transmet son UID stocké au lecteur

Le MCU reçoit les octets UID du lecteur et peut agir sur eux — par exemple, accorder l'accès si l'UID correspond à une liste autorisée.
Schéma de Câblage

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
| Broche RC522 | MCU Arduino UNO Q |
|---|---|
| GND | GND |
| VCC | 3,3V |
| RST | D5 |
| IRQ | (non connecté) |
| MISO | D12 (MISO) |
| MOSI | D11 (MOSI) |
| SCK | D13 (SCK) |
| SS | D10 (SS) |
Comment Programmer Pour le RFID
- Initialiser SPI et MFRC522 :
- Détecter et lire un tag dans loop() :
Code Arduino UNO Q
L'Arduino UNO Q possède deux processeurs qui fonctionnent ensemble :
- Le MCU STM32 communique avec le RC522 via SPI et lit les UIDs des tags dans loop()
- Le MPU Qualcomm exécute Debian Linux et gère le Wi-Fi, Python et la connectivité cloud
- Dans cette section, seul le MCU est programmé — le côté Linux reste inactif. Une section ultérieure montre comment les deux processeurs fonctionnent ensemble via Bridge.
Étapes Rapides
Première fois avec Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q avant de continuer.
- Connecter : Câblez le RC522 au MCU Arduino UNO Q comme indiqué dans le schéma de câblage.
- Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q.
- Créer une nouvelle application : Cliquez sur le bouton Create New App.

- Donnez un nom à l'application, par exemple : RC522RFID
- Cliquez sur Create pour confirmer.

- Coller le sketch : Copiez le code MCU ci-dessus et collez-le dans sketch/sketch.ino. Laissez les autres fichiers par défaut.
- 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.
- Téléverser : Cliquez sur le bouton Run dans Arduino App Lab.

- Approchez un tag RFID/NFC du lecteur et observez l'UID affiché dans le Serial Monitor.
Sortie Console d'App Lab
Bridge : Linux + MCU
Cette section montre comment programmer les deux processeurs de l'Arduino UNO Q pour que le côté Linux puisse recevoir les événements de scan de tags et lire les UIDs via Bridge :
- Le lecteur RFID RC522 est connecté au MCU via SPI — le MCU scanne les tags dans loop() et définit un indicateur d'événement lorsqu'un tag est détecté
- Le MPU ne peut pas lire le RC522 directement — il appelle des fonctions Bridge pour surveiller les événements de tags et lire le dernier UID
- Le MPU dispose du Wi-Fi — exécutant Debian Linux complet, il peut envoyer des notifications Telegram lorsqu'un tag est scanné
- Arduino_RouterBridge permet la communication RPC entre les deux processeurs
- ⚠️ /dev/ttyHS1 (Linux) et Serial1 (MCU) sont RÉSERVÉS par le routeur — ne les ouvrez jamais dans le code utilisateur
En résumé : Le MCU détecte le tag dans loop() → définit l'indicateur d'événement → le MPU interroge le Bridge → le MPU envoie une alerte Telegram.
Code MCU (Bridge)
Code Python (Bridge)
Étapes Rapides
- Connecter : Câblez le RC522 à l'Arduino UNO Q comme indiqué dans le schéma de câblage.
- Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez que la carte soit détectée.
- Créer une nouvelle application : Cliquez sur Create New App, nommez-la RC522RFIDBridge, puis cliquez sur Create.
- Coller le sketch MCU : Copiez le code MCU Bridge ci-dessus et collez-le dans sketch/sketch.ino.
- Coller le code Python : Copiez le code Python Bridge ci-dessus et collez-le dans le fichier Python de l'application.
- Téléverser : Cliquez sur le bouton Run dans Arduino App Lab.

- Approchez un tag RFID/NFC — observez l'UID dans la console MCU et dans la console Python.
Sortie Console d'App Lab
Telegram
Recevez des notifications Telegram instantanées lorsqu'un tag RFID/NFC est scanné sur l'Arduino UNO Q.
Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente.
Code Python (Telegram)
Étapes Rapides
- Remplacez YOUR_TELEGRAM_BOT_TOKEN par votre vrai token de bot depuis BotFather.
- Remplacez YOUR_CHAT_ID par votre identifiant de chat Telegram.
- Collez ce code Python dans le fichier Python de votre application (conservez le même sketch MCU).
- Cliquez sur le bouton Run. Approchez un tag — recevez la notification Telegram instantanément.
Sortie Console d'App Lab
ArduinoBot
Intégration d'OpenClaw
Vous pouvez adapter OpenClaw à ce tutoriel en vous référant aux instructions du tutoriel Arduino UNO Q - OpenClaw.
Idées de Projets
Vous pouvez construire de nombreux projets utiles avec le lecteur RFID et Arduino UNO Q :
- Système de Contrôle d'Accès : Maintenez une liste d'UIDs autorisés côté Linux — lorsqu'un tag est scanné, comparez l'UID à la liste et utilisez Bridge pour déverrouiller une serrure électromagnétique si autorisé, ou envoyez une alerte Telegram pour les scans non autorisés
- Suivi de Présence : Chaque fois qu'un étudiant ou un employé scanne sa carte RFID, le MPU enregistre l'UID et l'horodatage dans un fichier CSV sur Linux — envoyez automatiquement un rapport de présence quotidien à Telegram en fin de journée
- Registre de Tags via Telegram : Utilisez /register via Telegram pour ajouter le dernier UID scanné à une liste autorisée — et /list pour voir tous les UIDs enregistrés stockés dans un fichier JSON Python
- Casier Intelligent : Combinez RFID avec un verrou solénoïde — chaque tag enregistré déverrouille un casier personnel pendant 10 secondes, avec chaque accès enregistré et envoyé à Telegram
- Suivi de Livres de Bibliothèque : Fixez des tags RFID aux livres — scannez à l'emprunt et au retour, enregistrez chaque événement avec horodatage et UID dans un fichier sur Linux, et interrogez via Telegram pour savoir qui a quel livre
Défiez-Vous
Prêt à aller plus loin avec le RFID sur Arduino UNO Q ? Essayez ces défis :
- Facile : Modifiez le code Python pour afficher "Autorisé" si l'UID scanné correspond à une chaîne codée en dur en Python, ou "Non autorisé" sinon — aucune modification du MCU n'est nécessaire.
- Moyen : Créez un registre de tags via Telegram : envoyez /register pour ajouter le dernier UID scanné depuis Bridge.call("get_uid") à un fichier JSON Python, et /list pour voir tous les UIDs enregistrés — prenez la décision de contrôle d'accès en Python.
- Avancé : Implémentez un système d'accès à durée limitée : chaque UID enregistré a une fenêtre de temps autorisée (ex. 08h00–18h00) stockée dans un fichier JSON — les scans en dehors de la fenêtre autorisée envoient une alerte Telegram et ne déverrouillent pas la porte, tandis que les scans à l'intérieur déverrouillent la porte pendant 10 secondes.