ESP32 S3 - RFID/NFC - Relais

Apprenez à connecter un module lecteur RFID/NFC RC522 et un relais à l'ESP32 S3 afin que seuls les tags RFID ou NFC autorisés puissent déclencher le relais. Ce tutoriel vous guide à travers tout le processus, du câblage du matériel au téléversement d'un croquis terminé, vous donnant une base solide pour créer des projets de contrôle d'accès et d'automatisation.

Ce que vous allez construire :

  1. Un circuit reliant le module RFID-RC522 et un relais à l'ESP32 S3
  2. Un firmware qui lit l'UID d'un tag RFID/NFC et le compare à une liste d'UID autorisés
  3. Un relais qui s'active lorsqu'un tag autorisé est détecté et reste éteint pour les tags non autorisés
  4. Une base que vous pouvez étendre vers des verrous de porte, des enceintes sécurisées et des systèmes d'accès industriels
Relais RFID ESP32 S3

À propos du module RFID/NFC RC522 et du relais

Le RFID-RC522 est un module lecteur RFID à 13,56 MHz peu coûteux, basé sur la puce MFRC522 de NXP Semiconductors. Il communique avec l'ESP32 S3 via SPI et détecte les cartes et tags compatibles ISO 14443A — y compris la famille populaire MIFARE — à des distances allant jusqu'à environ 5 cm, fonctionnant en logique 3,3 V, donc aucun circuit d'adaptation de niveau n'est nécessaire. Un relais est un interrupteur à commande magnétique qui permet aux broches GPIO basse tension de l'ESP32 S3 de contrôler en toute sécurité des charges à haute tension ou fort courant, faisant de ces deux composants un duo naturel pour les projets de contrôle d'accès.

Caractéristiques principales

Nous avons des tutoriels dédiés qui couvrent chaque composant en détail. Chaque tutoriel contient des informations détaillées et des instructions pas à pas sur le brochage matériel, le principe de fonctionnement, la connexion de câblage à l'ESP32 S3 et le code Arduino. Apprenez-en plus via les liens suivants :

Composant relais RFID ESP32 S3

Comment fonctionne le module RC522

Lorsqu'un tag RFID/NFC est présenté sur le lecteur RC522, l'ESP32 S3 lit l'identifiant unique (UID) du tag et vérifie si cet UID figure dans une liste prédéfinie d'UID autorisés stockée dans le croquis. Si l'UID correspond à une entrée autorisée, l'ESP32 S3 active le relais ; si l'UID n'est pas reconnu, le relais reste éteint et l'UID non autorisé est affiché sur le moniteur série à des fins de diagnostic.

Caractéristiques principales

  • Fréquence de fonctionnement : 13,56 MHz
  • Interface de communication : SPI (par défaut), I2C, UART
  • Tension de fonctionnement : 3,3 V (ne connectez pas VCC à 5 V)
  • Portée de lecture : jusqu'à ~5 cm (selon le tag et l'orientation de l'antenne)
  • Types de tags pris en charge : MIFARE 1KB, MIFARE Ultralight, MIFARE Classic, et autres cartes ISO 14443A

Schéma de câblage

Connecter le module RFID-RC522 et le relais à l'ESP32 S3 ne nécessite que des fils de liaison car le module utilise le bus SPI matériel. Gardez tous les fils courts pour réduire le bruit sur les lignes SPI et vérifiez deux fois chaque connexion avant de mettre la carte sous tension.

Schéma de câblage du relais RFID RC522 ESP32 S3

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Un bornier à vis maintient chaque fil bien serré, même quand la carte bouge. Essayez une carte à bornier à vis pour ESP32 S3 : la carte ESP32 S3 se place dessus et chaque broche a son propre bornier à vis. Voici le schéma de câblage avec la carte à bornier à vis.

Schéma de câblage du relais RFID RC522 ESP32 S3 (Screw Terminal)

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Une autre solution est une carte d'extension GPIO pour ESP32 S3. Chaque GPIO a une broche de signal avec une broche 3,3V et une broche GND à côté, comme ci-dessous :

Schéma de câblage du relais RFID RC522 ESP32 S3 (GPIO Breakout Board)

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Consignes de sécurité

Le module RFID-RC522 fonctionne en logique 3,3 V — connecter sa broche VCC au rail 5 V détruira immédiatement le module, alors vérifiez toujours votre connexion d'alimentation avant de mettre sous tension. Le module relais est alimenté depuis la broche 5 V de l'ESP32 S3 et son signal de contrôle provient d'une broche GPIO, alors gardez le côté haute tension du câblage du relais physiquement séparé du câblage de contrôle basse tension pour éviter tout contact accidentel.

Module RFID/NFC RC522 Broche ESP32 S3
Broche SS GPIO10 (SS/CS)
Broche SCK GPIO12 (SCK)
Broche MOSI GPIO11 (MOSI)
Broche MISO GPIO13 (MISO)
Broche IRQ (non connectée)
Broche GND GND
Broche RST GPIO39
Broche VCC 3.3V
Relais Broche ESP32 S3
DC- GND
DC+ 5V
IN GPIO7

Code ESP32 S3 - Un seul tag RFID/NFC

Le code suivant initialise le bus SPI, la bibliothèque MFRC522 et la broche du relais, puis interroge en continu la présence d'un nouveau tag RFID ou NFC. Lorsqu'un tag est détecté, l'ESP32 S3 lit son UID et le compare à un seul UID autorisé prédéfini — activant le relais en cas de correspondance ou affichant un message « Unauthorized » si le tag n'est pas reconnu.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32-s3/esp32-s3-rfid-relay */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-rfid-nfc-relay */ #include <SPI.h> #include <MFRC522.h> #define SS_PIN 10 // ESP32-S3 pin GPIO10 #define RST_PIN 39 // ESP32-S3 pin GPIO39 #define RELAY_PIN 7 // ESP32-S3 pin GPIO7 connects to relay MFRC522 rfid(SS_PIN, RST_PIN); byte authorizedUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; void setup() { Serial.begin(9600); SPI.begin(); // init SPI bus rfid.PCD_Init(); // init MFRC522 pinMode(RELAY_PIN, OUTPUT); // initialize pin as an output. digitalWrite(RELAY_PIN, LOW); // deactivate the relay Serial.println("Tap an RFID/NFC tag on the RFID-RC522 reader"); } void loop() { if (rfid.PICC_IsNewCardPresent()) { // new tag is available if (rfid.PICC_ReadCardSerial()) { // NUID has been readed MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak); if (rfid.uid.uidByte[0] == authorizedUID[0] && rfid.uid.uidByte[1] == authorizedUID[1] && rfid.uid.uidByte[2] == authorizedUID[2] && rfid.uid.uidByte[3] == authorizedUID[3] ) { Serial.println("Authorized Tag"); digitalWrite(RELAY_PIN, HIGH); // activate the relay for 2 seconds delay(2000); digitalWrite(RELAY_PIN, LOW); // deactivate the relay } else { Serial.print("Unauthorized Tag with UID:"); for (int i = 0; i < rfid.uid.size; i++) { Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(rfid.uid.uidByte[i], HEX); } Serial.println(); } rfid.PICC_HaltA(); // halt PICC rfid.PCD_StopCrypto1(); // stop encryption on PCD } } }

Étapes rapides

  1. Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Câblez le module RFID-RC522 et le relais à l'ESP32 S3 en suivant le schéma de câblage ci-dessus.
  3. Connectez l'ESP32 S3 à votre ordinateur à l'aide d'un câble USB Type-C.
  4. Ouvrez Arduino IDE sur votre ordinateur.
  5. Sélectionnez la bonne carte ESP32 S3 et le bon port COM dans le menu Tools.
  6. Cliquez sur l'icône Libraries dans la barre latérale gauche de l'Arduino IDE.
  7. Tapez "MFRC522" dans le champ de recherche, puis recherchez la bibliothèque par GithubCommunity.
  8. Cliquez sur le bouton Install pour installer la bibliothèque MFRC522.
  • Search for MFRC522 created by GithubCommunity and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Library Manager
Type:
All
Topic:
All
MFRC522 by GithubCommunity
Read/Write a RFID Card or Tag using the ISO/IEC 14443A/MIFARE interface. More info
1.4.11
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32S3 Dev Module on COM15
1
  1. Copiez le code ci-dessus et collez-le dans Arduino IDE.
  2. Cliquez sur le bouton Upload pour compiler et téléverser le code sur l'ESP32 S3.
Téléversement du code avec Arduino IDE
  1. Ouvrez le moniteur série dans Arduino IDE après le téléversement.
Comment ouvrir le moniteur série sur Arduino IDE
  1. Présentez sur le lecteur RC522 le tag RFID/NFC que vous souhaitez autoriser.
  2. Notez l'UID affiché dans le moniteur série.
  3. Mettez à jour l'UID dans le code. Par exemple, changez byte authorizedUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; en byte authorizedUID[4] = {0x2B, 0xB8, 0x59, 0xB1}; en utilisant l'UID de votre tag.
  4. Téléversez à nouveau le code sur l'ESP32 S3.
  5. Présentez le tag RFID/NFC autorisé sur le module RC522 et observez le relais s'activer.
  6. Présentez un tag non autorisé et observez le relais rester éteint.
  7. Astuce pro : Tenez chaque tag à plat et parallèle à la bobine d'antenne du RC522 à une distance de 1 à 3 cm pour les lectures les plus fiables.

Sortie du moniteur série

Ouvrez le moniteur série à 9600 bauds après avoir téléversé le code, puis présentez des tags RFID ou NFC sur le module RC522 pour voir le résultat d'autorisation affiché pour chaque scan.

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 09:22:10] Tap an RFID/NFC tag on the RFID-RC522 reader [2026-06-16 09:22:18] Unauthorized Tag with UID: 2B B8 59 B1 [2026-06-16 09:22:31] Tap an RFID/NFC tag on the RFID-RC522 reader [2026-06-16 09:22:39] Authorized Tag - Relay ON
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Code ESP32 S3 - Plusieurs tags RFID/NFC

Le code suivant permet à plusieurs tags RFID/NFC autorisés d'activer le relais. Il utilise deux tags comme exemple, mais vous pouvez ajouter autant d'UID autorisés que votre projet le nécessite en étendant le tableau dans le croquis.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32-s3/esp32-s3-rfid-relay */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-rfid-nfc-relay */ #include <SPI.h> #include <MFRC522.h> #define SS_PIN 10 // ESP32-S3 pin GPIO10 #define RST_PIN 39 // ESP32-S3 pin GPIO39 #define RELAY_PIN 7 // ESP32-S3 pin GPIO7 connects to relay MFRC522 rfid(SS_PIN, RST_PIN); byte authorizedUID1[4] = {0x3A, 0xC9, 0x6A, 0xCB}; byte authorizedUID2[4] = {0x30, 0x01, 0x8B, 0x15}; void setup() { Serial.begin(9600); SPI.begin(); // init SPI bus rfid.PCD_Init(); // init MFRC522 pinMode(RELAY_PIN, OUTPUT); // initialize pin as an output. digitalWrite(RELAY_PIN, LOW); // deactivate the relay Serial.println("Tap an RFID/NFC tag on the RFID-RC522 reader"); } void loop() { if (rfid.PICC_IsNewCardPresent()) { // new tag is available if (rfid.PICC_ReadCardSerial()) { // NUID has been readed MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak); if (rfid.uid.uidByte[0] == authorizedUID1[0] && rfid.uid.uidByte[1] == authorizedUID1[1] && rfid.uid.uidByte[2] == authorizedUID1[2] && rfid.uid.uidByte[3] == authorizedUID1[3] ) { Serial.println("Authorized Tag 1"); digitalWrite(RELAY_PIN, HIGH); // activate the relay for 2 seconds delay(2000); digitalWrite(RELAY_PIN, LOW); // deactivate the relay } else if (rfid.uid.uidByte[0] == authorizedUID2[0] && rfid.uid.uidByte[1] == authorizedUID2[1] && rfid.uid.uidByte[2] == authorizedUID2[2] && rfid.uid.uidByte[3] == authorizedUID2[3] ) { Serial.println("Authorized Tag 2"); digitalWrite(RELAY_PIN, HIGH); // activate the relay for 2 seconds delay(2000); digitalWrite(RELAY_PIN, LOW); // deactivate the relay } else { Serial.print("Unauthorized Tag with UID:"); for (int i = 0; i < rfid.uid.size; i++) { Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(rfid.uid.uidByte[i], HEX); } Serial.println(); } rfid.PICC_HaltA(); // halt PICC rfid.PCD_StopCrypto1(); // stop encryption on PCD } } }

Étapes rapides

  1. Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Trouvez les UID de tous les tags que vous souhaitez autoriser en utilisant le code à un seul tag de la section précédente.
  3. Mettez à jour les deux UID de tags RFID/NFC autorisés dans le code ci-dessus.
  4. Téléversez le code sur l'ESP32 S3.
  5. Présentez les tags autorisés un par un sur le module RC522 et observez le relais s'activer pour chacun.
  6. Astuce pro : Vous pouvez modifier le code pour autoriser trois, quatre, ou plus de tags en ajoutant des entrées d'UID supplémentaires au tableau de la liste autorisée.

Sortie du moniteur série

Ouvrez le moniteur série à 9600 bauds et présentez chaque tag autorisé pour vérifier que tous les tags reconnus activent le relais.

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 09:35:04] Tap an RFID/NFC tag on the RFID-RC522 reader [2026-06-16 09:35:12] Authorized Tag 1 - Relay ON [2026-06-16 09:35:25] Tap an RFID/NFC tag on the RFID-RC522 reader [2026-06-16 09:35:33] Authorized Tag 2 - Relay ON [2026-06-16 09:35:46] Tap an RFID/NFC tag on the RFID-RC522 reader [2026-06-16 09:35:54] Unauthorized Tag with UID: 1C 2A 52 E3
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Applications et idées de projets

L'ESP32 S3 associé à un module RFID RC522 et un relais ouvre un large éventail d'applications de contrôle d'accès et d'automatisation pouvant être déployées avec un minimum de matériel supplémentaire. Voici des façons pratiques de mettre ce circuit à profit :

  1. Verrou de porte électronique : Activez un verrou électromagnétique ou à solénoïde uniquement lorsqu'une carte autorisée est présentée, remplaçant les clés physiques par des identifiants RFID.
  2. Accès sécurisé aux équipements : Restreignez l'alimentation de machines ou d'outils afin que seul le personnel disposant de badges RFID autorisés puisse les utiliser.
  3. Système de casiers : Créez un casier sans clé où chaque étudiant ou employé porte une carte RFID personnelle pour ouvrir son unité assignée.
  4. Automatisation déclenchée par présence : Combinez l'autorisation RFID avec un relais pour démarrer automatiquement un poste de travail, une machine à café, ou une scène d'éclairage lorsqu'un employé arrive.
  5. Contrôle d'accès à durée limitée : N'accordez l'activation du relais que pendant certaines heures en combinant l'authentification RFID avec un module RTC pour un accès programmé.
  6. Système de gestion des visiteurs : Émettez des tags RFID temporaires aux visiteurs qui activent un portail ou un tourniquet contrôlé par relais pour un nombre défini d'utilisations.

Vidéo tutoriel

Regardez ci-dessous la vidéo pas à pas de ce projet ESP32 S3.

Défiez-vous

Maintenant que votre ESP32 S3 peut activer un relais avec des tags RFID et NFC autorisés, poussez le projet plus loin avec ces défis progressivement plus difficiles :

  1. Débutant : Ajoutez un indicateur LED qui devient vert lorsqu'un tag autorisé est scanné et rouge lorsqu'un tag non autorisé est présenté.
  2. Débutant : Modifiez le code afin que le relais reste ALLUMÉ pendant exactement cinq secondes après la détection d'un tag autorisé, puis s'éteigne automatiquement.
  3. Intermédiaire : Connectez un buzzer piézo et jouez une courte tonalité de succès pour les tags autorisés et une tonalité d'avertissement plus longue pour les tags non autorisés.
  4. Intermédiaire : Enregistrez chaque scan — autorisé et non autorisé — avec un horodatage sur une carte Micro SD pour un journal d'audit persistant.
  5. Avancé : Créez un panneau d'administration web utilisant le Wi-Fi de l'ESP32 S3 pour ajouter et supprimer des UID autorisés à l'exécution sans reflasher le firmware.
  6. Avancé : Combinez le lecteur RC522 avec un clavier afin que le relais ne s'active que lorsque la bonne carte RFID et un code PIN correspondant sont présentés ensemble.

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !