ESP32 - RFID/NFC - Relais

Ce tutoriel vous explique comment utiliser l'ESP32, le RFID/NFC et un relais. En détail, nous apprendrons comment activer un relais lorsqu'une étiquette RFID/NFC autorisée est détectée par un lecteur RFID.

Ce tutoriel peut être étendu en connectant le relais à un verrou électromagnétique, un actionneur...

Préparation du matériel

1×ESP-WROOM-32 Dev Module
1×USB Cable Type-C
1×RFID/NFC RC522 Kit (reader + tags)
1×RFID Key Fob
1×Relay
10×Jumper Wires
1×(Optional) DC Power Jack
1×(Recommended) ESP32 Screw Terminal Adapter

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du module RFID/NFC RC522 et du relais

Nous disposons de tutoriels spécifiques sur le module RFID/NFC RC522 et le relais. Chaque tutoriel contient des informations détaillées et des instructions étape par étape sur le brochage du matériel, le principe de fonctionnement, la connexion des câbles à l'ESP32, le code ESP32... Pour en savoir plus, consultez les liens suivants :

Composant relais RFID ESP32 ESP32

Fonctionnement du module RC522

  • Plusieurs UID autorisés de tags RFID/NFC sont prédéfinis dans le code ESP32
  • Lorsqu'un tag RFID/NFC est tapé sur un lecteur RFID/NFC
  • L'ESP32 lit l'UID à partir du lecteur RFID/NFC
  • L'ESP32 recherche l'UID lu dans la liste des UID prédéfinis
  • Si la liste des UID prédéfinis contient l'UID lu, l'ESP32 active le relais.

Diagramme de câblage

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

This image is created using Fritzing. Click to enlarge image

Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.

※ NOTE THAT:

L'ordre des broches peut varier selon les fabricants. Utilisez TOUJOURS les étiquettes imprimées sur le module. L'image ci-dessus montre le schéma de brochage des modules du fabricant DIYables.

Code ESP32 - Tag RFID/NFC unique

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 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/esp32-rfid-nfc-relay */ #include <SPI.h> #include <MFRC522.h> #define SS_PIN 5 // ESP32 pin GPIO5 #define RST_PIN 27 // ESP32 pin GPIO27 #define RELAY_PIN 32 // ESP32 pin GPIO32 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

  • Si c'est la première fois que vous utilisez ESP32, consultez comment configurer l'environnement pour ESP32 sur Arduino IDE.
  • Cliquez sur l'icône Libraries dans la barre latérale gauche de l'Arduino IDE.
  • Tapez "MFRC522" dans la boîte de recherche, puis recherchez la bibliothèque par GithubCommunity
  • Installez la bibliothèque en cliquant sur le bouton Install.
Bibliothèque ESP32 MFRC522
  • Découvrez l'UID de l'étiquette en suivant les étapes suivantes :
    • Copiez le code ci-dessus et collez-le dans l'IDE Arduino.
    • Compilez et téléchargez le code sur la carte ESP32 en cliquant sur le bouton Upload de l'IDE Arduino.
    • Ouvrez le moniteur série sur l'IDE Arduino.
    Comment ouvrir le moniteur série sur Arduino IDE
    • Appuyez sur une étiquette RFID/NFC que vous souhaitez autoriser sur le lecteur RFID-RC522
    • Notez l'UID affiché sur le moniteur série
    COM6
    Send
    Tap an RFID/NFC tag on the RFID-RC522 reader Unauthorized Tag with UID: 2B B8 59 B1
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  
    • Mettez à jour l'UID à la ligne 18 du code ci-dessus. Par exemple, changez byte authorizedUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; en byte authorizedUID[4] = {0x2B, 0xB8, 0x59, 0xB1};
    • Téléversez à nouveau le code sur l'ESP32
    • Tapotez le tag RFID/NFC autorisé sur le module RFID-RC522
    • Consultez le résultat sur le moniteur série
    COM6
    Send
    Tap an RFID/NFC tag on the RFID-RC522 reader Authorized Tag
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  
    • Appuyez sur un tag RFID/NFC non autorisé sur le module RFID-RC522
    • Consultez le résultat sur le moniteur série
    COM6
    Send
    Tap an RFID/NFC tag on the RFID-RC522 reader Authorized Tag Unauthorized Tag with UID: 1C 2A 52 E3
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  

Code ESP32 - Plusieurs étiquettes RFID/NFC

Le code ESP32 ci-dessous permet à plusieurs tags RFID/NFC autorisés d'activer le relais. Le code prend deux tags comme exemple. Vous pouvez en ajouter davantage.

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 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/esp32-rfid-nfc-relay */ #include <SPI.h> #include <MFRC522.h> #define SS_PIN 5 // ESP32 pin GPIO5 #define RST_PIN 27 // ESP32 pin GPIO27 #define RELAY_PIN 32 // ESP32 pin GPIO32 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

  • Mis à jour deux UUID de balises RFID/NFC autorisées dans le code
  • Télécharger le code sur ESP32
  • Taper les balises autorisées une par une sur le module RFID-RC522.
  • Le résultat sur le moniteur série :
COM6
Send
Tap an RFID/NFC tag on the RFID-RC522 reader Authorized Tag 1 Authorized Tag 2
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vous pouvez modifier le code pour ajouter trois, quatre tags ou plus.

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!