Arduino Nano - RFID

Deze tutorial leert u hoe u RFID/NFC gebruikt met Arduino Nano. Het RFID/NFC-systeem bestaat uit twee componenten: een lezer en een tag. Twee van de meest populaire RFID/NFC-lezers zijn de RC522 en PN532. Deze tutorial gebruikt de RC522 RFID/NFC-lezer, die goedkoop en eenvoudig te gebruiken is.

De RC522 RFID/NFC-lezer kan:

Deze tutorial richt zich op:

Hardware Benodigd

1×Official Arduino Nano
1×Alternatief: DIYables ATMEGA328P Nano Development Board
1×USB A naar Mini-B USB-kabel
1×RFID/NFC RC522 Kit (lezer + tags)
1×RFID Key Fob
1×RFID Kaart
1×Jumper draden
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Breakout Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Stromsplitter voor Arduino Nano

Of u kunt de volgende kits kopen:

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-RC522 Module

RFID-RC522 Module Pinout

De RFID-RC522 heeft 8 pinnen, waarvan sommige algemene pinnen zijn en de overige gedeeld worden tussen drie communicatiemodi: SPI, I2C en UART. Het is slechts mogelijk om één van deze modi tegelijk te gebruiken. De pinnen zijn:

  • GND pin: Moet verbonden worden met massa (0V).
  • VCC pin: Moet verbonden worden met de voedingsspanning (3,3V).
  • RST pin: Dit is een reset- en uit-pin voor stroomonderbreking. Als deze pin laag wordt, schakelt het module in een harde slaapstand. Bij een opgaande flank wordt het module gereset.
  • IRQ pin: Dit is een interrupt-pin die de microcontroller kan waarschuwen wanneer een RFID-tag in de buurt komt.
  • MISO/SCL/TX pin: Deze fungeert als MISO bij SPI, SCL bij I2C, en TX bij UART.
  • MOSI pin: Deze fungeert als MOSI bij SPI.
  • SCK pin: Deze fungeert als SCK bij SPI.
  • SS/SDA/RX pin: Deze fungeert als SS bij SPI, SDA bij I2C, en RX bij UART.
RFID-RC522 pinout

※ Notiz:

  • De pinindeling kan verschillen per fabrikant. Het is essentieel om de op het module afgedrukte labels te gebruiken, zoals afgebeeld op de foto van fabrikant DIYables.
  • Sluit de VCC-pin niet aan op 5V, dit kan het module beschadigen.
  • De MFRC522 bibliotheek ondersteunt alleen SPI-modus, daarom richt deze tutorial zich op SPI-communicatie.

Hoe RFID/NFC werkt

RFID/NFC bestaat uit twee delen: een lezer en een tag.

  • De lezer bestaat uit een radiofrequentiemodule en een antenne die een hoogfrequent elektromagnetisch veld opwekt.
  • De tag is meestal een passief apparaat, wat betekent dat het geen eigen stroombron heeft. Het bevat een microchip die informatie opslaat en verwerkt, en een antenne om signalen te ontvangen en te verzenden. De tag wordt gebruikt om data en een unieke ID op te slaan.
arduino rfid nfc system

De tag moet dicht bij de lezer zijn om de informatie te kunnen uitlezen. De lezer genereert een elektromagnetisch veld dat ervoor zorgt dat er elektronen door de antenne van de tag bewegen, waardoor de chip van stroom wordt voorzien. Vervolgens stuurt de chip de gevraagde informatie via een radiosignaal terug naar de lezer. De lezer detecteert dit signaal en zet het om in data, die door Arduino Nano wordt gelezen.

Bedradingsdiagram tussen RFID-RC522 Module en Arduino Nano

Het RFID-RC522 module werkt op 3,3V, maar de Arduino outputpin levert 5V. Daarom:

  • Om veiligheid te garanderen, moet de spanning vanaf de Arduino-pinnen worden teruggebracht naar 3,3V voordat deze op het RC522 module wordt aangesloten.
  • Voor testdoeleinden kunnen de Arduino-pinnen direct worden verbonden met het RC522 module, maar dit kan in sommige gevallen problemen veroorzaken.

Deze tutorial bevat twee verschillende bedradingsdiagrammen voor beide gevallen:

  • Bedradingsschema tussen RC522 en Arduino zonder spanningsregelaar
Arduino Nano RFID RC522 wiring diagram

This image is created using Fritzing. Click to enlarge image

  • Bedradingsschema tussen RC522 en Arduino met spanningsregelaar
Arduino Nano RFID RC522 with voltage regulated wiring diagram

This image is created using Fritzing. Click to enlarge image

Zoals te zien in het bovenstaande bedradingsschema worden paren van weerstanden gebruikt met waarden van 1 kOhm en 2 kOhm om 5V te verlagen naar 3,3V.

  • De spanning tussen de Arduino-pin en de MISO-pin van het RC522 module hoeft niet te worden geregeld.
  • Echter, de spanning tussen de Arduino-pinnen en de SS, SCK, MOSI en RST pinnen van het RC522 module moet wel geregeld worden.

Bedradingsschema van RFID/NFC RC522 Module en Arduino Nano

RFID/NFC RC522 Arduino Nano
SS → 10
SCK → 13
MOSI → 11
MISO → 12
IRQ niet aangesloten
GNDGND
RST → 5
VCC → 3.3V

Arduino Nano RFID/NFC Code

/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-rfid */ #include <SPI.h> #include <MFRC522.h> #define RC522_SS_PIN 10 // The Arduino Nano pin connected to RC522's SS pin #define RC522_RST_PIN 5 // The Arduino Nano pin connected to RC522's RST pin MFRC522 rfid(RC522_SS_PIN, RC522_RST_PIN); void setup() { Serial.begin(9600); SPI.begin(); // init SPI bus rfid.PCD_Init(); // init MFRC522 Serial.println("Tap RFID/NFC Tag on 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); //Serial.print("RFID/NFC Tag Type: "); //Serial.println(rfid.PICC_GetTypeName(piccType)); // print NUID in Serial Monitor in the hex format Serial.print("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 } } }

Snelstappen

  • Klik op het Libraries-icoon in de linkerzijbalk van de Arduino IDE.
  • Zoek naar “MFRC522” en zoek de bibliotheek van GithubCommunity.
  • Druk vervolgens op de Install-knop om de MFRC522 bibliotheek te installeren.
Arduino Nano MFRC522 library
  • Kopieer de code hierboven en open deze in de Arduino IDE.
  • Klik op de Upload-knop in de Arduino IDE om de code te compileren en te uploaden naar de Arduino Nano.
  • Open de Seriële Monitor.
  • Houd meerdere RFID/NFC tags tegen het RFID-RC522 module aan.
  • Controleer de UID in de Seriële Monitor.
COM6
Send
Tap RFID/NFC tag on reader RFID/NFC tag Type: MIFARE 1KB UID: 3A C9 6A CB RFID/NFC tag Type: MIFARE Ultralight or Ultralight C UID: 04 64 34 5A 1E 4E 80
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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.

※ 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!