ESP32 - RFID/NFC - Relay

Deze handleiding laat u zien hoe u ESP32, RFID/NFC en een relais gebruikt. We leren in detail hoe u een relais activeert wanneer een geautoriseerde RFID/NFC-tag op de RFID-lezer wordt getapt.

Deze handleiding kan uitgebreid worden door het relais aan te sluiten op een elektromagnetisch slot, actuator...

Hardware Benodigdheden

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×(Alternatief) ESP32 Uno-form board
1×(Alternatief) ESP32 S3 Uno-form board
1×USB-kabel Type-C
1×RFID/NFC RC522 Kit (lezer + tags)
1×RFID Sleutelhanger
1×RFID Kaart
1×Relais
10×Jumperdraden
1×(Optioneel) DC Power Jack
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables ESP32 Starterskit (ESP32 inbegrepen)
1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over RFID/NFC RC522 Module en Relais

We hebben specifieke handleidingen over de RFID/NFC RC522 Module en relais. Elke tutorial bevat gedetailleerde informatie en stapsgewijze instructies over de hardware pinout, werkingsprincipe, bedrading naar ESP32, ESP32 code... Lees er meer over via de volgende links:

ESP32 ESP32 rfid relay component

Hoe de RC522 Module Werkt

  • Meerdere geautoriseerde UIDs van RFID/NFC-tags zijn vooraf gedefinieerd in de ESP32 code
  • Wanneer een RFID/NFC-tag op de RFID/NFC-lezer wordt getapt
  • ESP32 leest de UID van de RFID/NFC-lezer
  • ESP32 zoekt de gelezen UID in de lijst met vooraf gedefinieerde UIDs
  • Als de lijst met gedefinieerde UIDs de gelezen UID bevat, activeert de ESP32 het relais.

Bedradingsschema

ESP32 RFID RC522 relais bedrading schema

This image is created using Fritzing. Click to enlarge image

Als u niet weet hoe u ESP32 en andere componenten van stroom moet voorzien, vindt u instructies in de volgende tutorial: Hoe ESP32 van stroom te voorzien.

※ Notiz:

De volgorde van de pinnen kan variëren afhankelijk van de fabrikant. Gebruik ALTIJD de labels die op de module gedrukt staan. De afbeelding hierboven toont de pinout van modules van de fabrikant DIYables.

ESP32 Code - Enkele RFID/NFC Tag

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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 } } }

Snelle Stappen

  • Als dit de eerste keer is dat u de ESP32 gebruikt, bekijk dan hoe u de omgeving instelt voor ESP32 in Arduino IDE.
  • Klik op het Libraries-pictogram in de linkerzijbalk van de Arduino IDE.
  • Typ “MFRC522” in het zoekvak en zoek de library van GithubCommunity
  • Installeer de library door te klikken op de knop Install.
ESP32 MFRC522 bibliotheek
  • Vind de UID van de tag door de volgende stappen te volgen:
    • Kopieer bovenstaande code en plak deze in de Arduino IDE.
    • Compileer en upload de code naar het ESP32 board door op de knop Upload te klikken in Arduino IDE
    • Open de Seriële Monitor in Arduino IDE
    Hoe de seriële monitor openen in Arduino IDE
    • Tap een RFID/NFC-tag die u wilt autoriseren op de RFID-RC522-lezer
    • Noteer de UID die in de Seriële Monitor verschijnt
    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  
    • Werk de UID bij in regel 18 van bovenstaande code. Bijvoorbeeld, verander byte authorizedUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; naar byte authorizedUID[4] = {0x2B, 0xB8, 0x59, 0xB1};
    • Upload de code opnieuw naar de ESP32
    • Tap de geautoriseerde RFID/NFC-tag op de RFID-RC522-module
    • Bekijk het resultaat in de Seriële Monitor
    COM6
    Send
    Tap an RFID/NFC tag on the RFID-RC522 reader Authorized Tag
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  
    • Tap een niet-geautoriseerde RFID/NFC-tag op de RFID-RC522-module
    • Bekijk het resultaat in de Seriële Monitor
    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  

ESP32 Code - Meerdere RFID/NFC Tags

De onderstaande ESP32 code maakt het mogelijk dat meerdere geautoriseerde RFID/NFC-tags het relais activeren. De code neemt twee tags als voorbeeld, u kunt er meer toevoegen.

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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 } } }

Snelle Stappen

  • Update de twee geautoriseerde RFID/NFC tag’s UUID in de code
  • Upload de code naar de ESP32
  • Tap de geautoriseerde tags één voor één op de RFID-RC522-module
  • Het resultaat in de Seriële Monitor:
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  

U kunt de code aanpassen om drie, vier of meer tags toe te voegen.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u stap voor stap het project te begrijpen.

Opmerkingen

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!