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 Solenoïde Slot
Bent u niet vertrouwd met de RFID/NFC RC522 Module en solenoïde slot, inclusief hun pinout, functionaliteit en programmering? Verken dan de uitgebreide tutorials over deze onderwerpen hieronder:
Deze afbeelding is gemaakt met Fritzing. Klik om de afbeelding te vergroten.
※ Notiz:
De volgorde van de pinnen kan verschillen per fabrikant. Gebruik ALTIJD de labels die op de module zijn gedrukt. De bovenstaande afbeelding toont de pinout van de modules van de fabrikant DIYables.
ESP32 Code - Enkel RFID 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-solenoid-lock*/#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 controls the solenoid lock via therelayMFRC522 rfid(SS_PIN, RST_PIN);byte authorizedUID[4] = {0xFF, 0xFF, 0xFF, 0xFF};voidsetup() {Serial.begin(9600);SPI.begin(); // init SPI bus rfid.PCD_Init(); // init MFRC522pinMode(RELAY_PIN, OUTPUT); // initialize pin as an output.digitalWrite(RELAY_PIN, LOW); // deactivate the solenoid lock => lockedSerial.println("Tap RFID Tag on reader");}voidloop() {if (rfid.PICC_IsNewCardPresent()) { // new tag is availableif (rfid.PICC_ReadCardSerial()) { // NUID has been readedMFRC522::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, LOW); // deactivate the solenoid lock => unlockeddelay(2000);digitalWrite(RELAY_PIN, HIGH); // activate the solenoid lock => locked }else {Serial.print("Unauthorized Tag:");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 } }}
Maak de bekabeling zoals te zien in de bovenstaande afbeelding.
Verbind de ESP32 met uw PC via een micro USB-kabel.
Open de Arduino IDE op uw PC.
Selecteer de juiste ESP32 board (bijv. ESP32 Dev Module) en COM-poort.
Omdat de UID (Unique Identifier) meestal niet op de RFID-tag gedrukt staat, is de eerste stap het achterhalen van de UID. Dit doet u als volgt:
Kopieer bovenstaande code en open deze in Arduino IDE
Klik op de Upload knop in Arduino IDE om de code naar de ESP32 te uploaden
Open de Seriële Monitor
Tik een RFID-tag tegen de RFID-RC522 module
Lees de UID af in de Seriële Monitor
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Tap RFID Tag on reader
Unauthorized Tag: 51 3D C1 AC
Ln 11, Col 1
ESP32 Dev Module on COM15
2
Na het verkrijgen van de UID:
Pas de UID aan in regel 18 van bovenstaande code. Bijvoorbeeld, wijzig byte authorizedUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; naar byte authorizedUID[4] = {0x51, 0x3D, 0xC1, 0xAC};
Upload de code opnieuw naar de ESP32
Tik een RFID-tag tegen de RFID-RC522 module
Bekijk de output in de Seriële Monitor
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Tap RFID Tag on reader
Authorized Tag
Ln 11, Col 1
ESP32 Dev Module on COM15
2
Tik een andere RFID-tag tegen de RFID-RC522 module
Bekijk de output in de Seriële Monitor
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Tap RFID Tag on reader
Authorized Tag
Unauthorized Tag: 5D 11 1A D3
Ln 11, Col 1
ESP32 Dev Module on COM15
2
ESP32 Code - Meerdere RFID Tags
Het is mogelijk meerdere RFID/NFC-tags toe te staan om het solenoïde slot te activeren. De onderstaande code gebruikt twee tags als voorbeeld.
/* * 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-solenoid-lock*/#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 controls the solenoid lock via therelayMFRC522 rfid(SS_PIN, RST_PIN);byte authorizedUID1[4] = {0x51, 0x3D, 0xC1, 0xAC};byte authorizedUID2[4] = {0x30, 0x01, 0x8B, 0x15}; voidsetup() {Serial.begin(9600);SPI.begin(); // init SPI bus rfid.PCD_Init(); // init MFRC522pinMode(RELAY_PIN, OUTPUT); // initialize pin as an output.digitalWrite(RELAY_PIN, LOW); // deactivate the solenoid lock => lockedSerial.println("Tap RFID Tag on reader");}voidloop() {if (rfid.PICC_IsNewCardPresent()) { // new tag is availableif (rfid.PICC_ReadCardSerial()) { // NUID has been readedMFRC522::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, LOW); // deactivate the solenoid lock => unlockeddelay(2000);digitalWrite(RELAY_PIN, HIGH); // activate the solenoid lock => locked }elseif (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, LOW); // deactivate the solenoid lock => unlockeddelay(2000);digitalWrite(RELAY_PIN, HIGH); // activate the solenoid lock => locked }else {Serial.print("Unauthorized Tag:");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 } }}
Doe dezelfde stappen als hierboven en tik vervolgens één voor één tags op de RFID-RC522 module. Het resultaat in de Seriële Monitor ziet er als volgt uit:
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Tap RFID Tag on reader
Authorized Tag 2
Authorized Tag 1
Ln 11, Col 1
ESP32 Dev Module on COM15
2
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.
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!