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...

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

Deze afbeelding is gemaakt met Fritzing. Klik om de afbeelding te vergroten.

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
    Newbiely | Arduino IDE 2.3.8
    ──
    File
    Edit
    Sketch
    Tools
    Help
    ESP32 Dev Module
    Newbiely.ino
    ···
    8 Serial.println("Hello World!");
    Output
    Serial Monitor
    Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
    New Line
    9600 baud
    Tap an RFID/NFC tag on the RFID-RC522 reader Unauthorized Tag with UID: 2B B8 59 B1
    Ln 11, Col 1
    ESP32 Dev Module on COM15
    2
    • 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
    Newbiely | Arduino IDE 2.3.8
    ──
    File
    Edit
    Sketch
    Tools
    Help
    ESP32 Dev Module
    Newbiely.ino
    ···
    8 Serial.println("Hello World!");
    Output
    Serial Monitor
    Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
    New Line
    9600 baud
    Tap an RFID/NFC tag on the RFID-RC522 reader Authorized Tag
    Ln 11, Col 1
    ESP32 Dev Module on COM15
    2
    • Tap een niet-geautoriseerde RFID/NFC-tag op de RFID-RC522-module
    • Bekijk het resultaat in de Seriële Monitor
    Newbiely | Arduino IDE 2.3.8
    ──
    File
    Edit
    Sketch
    Tools
    Help
    ESP32 Dev Module
    Newbiely.ino
    ···
    8 Serial.println("Hello World!");
    Output
    Serial Monitor
    Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
    New Line
    9600 baud
    Tap an RFID/NFC tag on the RFID-RC522 reader Authorized Tag Unauthorized Tag with UID: 1C 2A 52 E3
    Ln 11, Col 1
    ESP32 Dev Module on COM15
    2

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:
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Tap an RFID/NFC tag on the RFID-RC522 reader Authorized Tag 1 Authorized Tag 2
Ln 11, Col 1
ESP32 Dev Module on COM15
2

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!