Arduino Nano - RFID

Dieses Tutorial erläutert Ihnen, wie Sie RFID/NFC mit dem Arduino Nano verwenden. Das RFID/NFC-System besteht aus zwei Komponenten: einem Lesegerät und einem Tag. Zu den beliebtesten RFID/NFC-Lesegeräten gehören RC522 und PN532. Dieses Tutorial verwendet das RC522 RFID/NFC-Lesegerät, das günstig und einfach zu bedienen ist.

Der RC522 RFID/NFC-Leser kann:

Dieses Tutorial konzentriert sich auf:

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables ATMEGA328P Nano Development Board
1×USB-A-zu-Mini-B-Kabel
1×RFID/NFC RC522 Kit (reader + tags)
1×RFID Key Fob
1×RFID Card
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über das RFID-RC522-Modul

RFID-RC522-Modul-Pinbelegung

Der RFID-RC522 hat 8 Pins, von denen einige allgemeine Pins sind und die übrigen zwischen drei Kommunikationsmodi aufgeteilt sind: SPI, I2C und UART. Es ist nur möglich, gleichzeitig einen dieser Modi zu verwenden. Die Pins sind:

  • GND-Pin: Dieser muss mit Masse (0 V) verbunden werden.
  • VCC-Pin: Dieser muss mit der Spannungsversorgung (3,3 V) verbunden werden.
  • RST-Pin: Dies ist ein Reset- und Ausschaltpin. Wenn dieser Pin niedrig geht, aktiviert er eine harte Stromabschaltung. Bei der steigenden Flanke wird das Modul zurückgesetzt.
  • IRQ-Pin: Dies ist ein Interrupt-Pin, der den Mikrocontroller benachrichtigen kann, wenn sich ein RFID-Tag in seiner Nähe befindet.
  • MISO/SCL/TX-Pin: Er fungiert als MISO, wenn die SPI-Schnittstelle aktiviert ist, als SCL, wenn die I2C-Schnittstelle aktiviert ist, und als TX, wenn die UART-Schnittstelle aktiviert ist.
  • MOSI-Pin: Er fungiert als MOSI, wenn die SPI-Schnittstelle aktiviert ist.
  • SCK-Pin: Er fungiert als SCK, wenn die SPI-Schnittstelle aktiviert ist.
  • SS/SDA/RX-Pin: Er fungiert als SS, wenn die SPI-Schnittstelle aktiviert ist, als SDA, wenn die I2C-Schnittstelle aktiviert ist, und als RX, wenn die UART-Schnittstelle aktiviert ist.
RFID-RC522 Pinbelegung

※ Notiz:

  • Die Anordnung der Pins kann je nach Hersteller variieren. Es ist wichtig, die auf dem Modul aufgedruckten Beschriftungen zu verwenden, wie im obigen Bild vom Hersteller DIYables dargestellt.
  • Verwenden Sie nicht den VCC-Pin, um ihn mit dem 5V-Pin zu verbinden, da dies das Modul beschädigen könnte.
  • Die MFRC522-Bibliothek unterstützt nur den SPI-Modus, daher konzentriert sich dieses Tutorial auf die SPI-Kommunikation.

Wie RFID/NFC funktioniert

RFID/NFC besteht aus zwei Teilen: einem Lesegerät und einem Tag.

  • Das Lesegerät besteht aus einem Radiofrequenzmodul und einer Antenne, die ein elektromagnetisches Feld mit hoher Frequenz erzeugt.
  • Der Tag ist normalerweise ein passives Gerät, was bedeutet, dass er keine Stromquelle benötigt. Er verfügt über einen Mikrochip, der Informationen speichert und verarbeitet, sowie über eine Antenne, um ein Signal zu empfangen und zu übertragen. Dieser Tag dient dazu, die Daten und seine eindeutige ID zu speichern.
Arduino RFID-NFC-System

Der Tag muss in der Nähe des Lesegeräts sein, um die darin enthaltenen Informationen lesen zu können. Der Prozess besteht darin, dass das Lesegerät ein elektromagnetisches Feld erzeugt, wodurch Elektronen durch die Antenne des Tags wandern und den Chip mit Energie versorgen. Der Chip sendet dann die angeforderten Informationen als Funksignal an das Lesegerät zurück. Das Lesegerät empfängt dieses Signal und wandelt es in Daten um, die anschließend vom Arduino Nano gelesen werden.

Verdrahtungsdiagramm zwischen dem RFID-RC522-Modul und dem Arduino Nano

Das RFID-RC522-Modul benötigt eine Spannung von 3,3 V, aber Arduino-Ausgangspins liefern 5 V. Somit:

  • Zur Sicherheit sollte die Spannung der Arduino-Pins vor dem Anschluss an das RC522-Modul auf 3,3 V geregelt werden.
  • Zum Testen können die Arduino-Pins direkt mit dem RC522-Modul verbunden werden, aber dies könnte in einigen Fällen Probleme verursachen.

Dieses Tutorial bietet zwei verschiedene Verdrahtungsdiagramme für beide Fälle:

  • Schaltplan zwischen RC522 und Arduino ohne Spannungsregler
Arduino Nano RFID RC522 Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

  • Verdrahtungsdiagramm zwischen RC522 und Arduino mit Spannungsregler
Arduino Nano RFID RC522 mit Schaltplan zur Spannungsregulierung

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.

Wie im obigen Schaltplan angegeben, werden Paare von Widerständen mit Werten von 1 kΩ und 2 kΩ verwendet, um 5 V auf 3,3 V zu regulieren.

  • Es ist nicht erforderlich, die Spannung zwischen dem Arduino-Pin und dem MISO-Pin des RC522-Moduls zu regeln.
  • Es muss jedoch die Spannung zwischen den Arduino-Pins und den SS-, SCK-, MOSI- und RST-Pins des RC522-Moduls geregelt werden.

Verdrahtungstabelle des RFID/NFC RC522-Moduls und des Arduino Nano

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

Arduino Nano RFID/NFC-Code

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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 } } }

Schnelle Schritte

  • Klicken Sie auf das Bibliotheken-Symbol in der linken Leiste der Arduino IDE.
  • Suchen Sie nach „MFRC522“ und finden Sie die Bibliothek von GithubCommunity.
  • Drücken Sie anschließend die Installieren-Schaltfläche, um die MFRC522-Bibliothek zu installieren.
MFRC522-Bibliothek für Arduino Nano
  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE.
  • Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code zu kompilieren und auf den Arduino Nano hochzuladen.
  • Öffnen Sie den seriellen Monitor.
  • Tippen Sie mehrere RFID/NFC-Tags auf das RFID-RC522-Modul.
  • Prüfen Sie die UID im seriellen 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

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!