Dieses Tutorial zeigt Ihnen, wie Sie ein Arduino Nano und ein RFID/NFC RC522-Modul verwenden, um ein Relais zu steuern. Sie können dieses Tutorial weiter ausbauen, indem Sie das Relais verwenden, um Motoren, Aktuatoren, ein Türschloss, eine Glühbirne und mehr zu steuern.
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/NFC RC522-Modul und das Relais
Wenn Sie mit dem RFID/NFC RC522-Modul und dem Relais (Pinbelegung, Funktionsweise, Programmierung ...) nicht vertraut sind, finden Sie weitere Informationen in den folgenden Tutorials:
Der RFID/NFC-Leser liest die UID des Tags, wenn der Benutzer es tippt.
Der Arduino Nano erhält dann die UID vom Lesegerät.
Er vergleicht diese UID mit den UIDs, die im Arduino Nano-Code vordefiniert wurden.
Wenn die UID mit einer der vordefinierten UIDs übereinstimmt, aktiviert der Arduino Nano das Relais.
Verdrahtungsdiagramm
Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Um die Verbindung zu vereinfachen, sind die Pins des RC522-Moduls direkt mit den Pins des Arduino verbunden. Allerdings kann dies in bestimmten Fällen dazu führen, dass der Arduino fehlerhaft funktioniert, da seine Ausgangspins 5V erzeugen, während die Pins des RC522-Moduls normal bei 3,3V arbeiten. Daher ist es ratsam, die Spannung zwischen den Pins des Arduino und dem RC522-Modul zu regeln. Für weitere Details verweisen Sie bitte auf das Arduino Nano - RFID RC522 Tutorial. Die untenstehende Grafik zeigt, wie man 5 V mithilfe von Widerständen auf 3,3 V reguliert:
Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Die Anordnung der Pins kann je nach Hersteller variieren. Beziehen Sie sich IMMER auf die auf dem Modul aufgedruckten Beschriftungen. Das oben gezeigte Bild zeigt die Pinbelegung der Module des Herstellers DIYables.
Arduino Nano Code - einzelner RFID/NFC-Tag
/* * 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-relay*/#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#define RELAY_PIN A5 // The Arduino Nano pin connected to relayMFRC522 rfid(RC522_SS_PIN, RC522_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 relaySerial.println("Tap RFID/NFC 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, HIGH); // activate the relay for 2 secondsdelay(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 } }}
Schnelle Schritte
Um die UID eines RFID-/NFC-Tags zu ermitteln, besteht der erste Schritt darin, Code auf den Arduino Nano hochzuladen und den Seriellen Monitor zu öffnen. Danach legen Sie das Tag auf das RFID-RC522-Modul und zeigen Sie die UID im Seriellen Monitor an.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
Tap RFID/NFC tag on reader
Unauthorized Tag with UID: 3A C9 6A CB
Ln 11, Col 1
Arduino Nano on COM15
2
Nach dem Erhalt der UID:
Ändere Zeile 18 des Codes, um die UID widerzuspiegeln; zum Beispiel ändere byte authorizedUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; zu byte authorizedUID[4] = {0x3A, 0xC9, 0x6A, 0xCB};
Lade den aktualisierten Code auf den Arduino Nano hoch
Platziere einen RFID/NFC-Tag auf dem RFID-RC522-Modul
Überprüfe die Ausgabe im Serial Monitor
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
Tap RFID/NFC tag on reader
Authorized Tag
Ln 11, Col 1
Arduino Nano on COM15
2
Legen Sie einen RFID-/NFC-Tag auf das RFID-RC522-Modul und beobachten Sie die Ausgabe im seriellen Monitor.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
Tap RFID/NFC tag on reader
Authorized Tag
Unauthorized Tag with UID: BD 1E 1D 00
Ln 11, Col 1
Arduino Nano on COM15
2
※ Notiz:
Um das Testen einfach zu gestalten, ist die Aktivzeit auf zwei Sekunden festgelegt; sie sollte jedoch für den praktischen Einsatz bzw. die Demonstration erhöht werden.
Es ist möglich, das Relais durch mehrere RFID-/NFC-Tags zu aktivieren. Hier dienen zwei Tags als Veranschaulichung.
/* * 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-relay*/#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#define RELAY_PIN A5 // The Arduino Nano pin connected to relayMFRC522 rfid(RC522_SS_PIN, RC522_RST_PIN);byte authorizedUID1[4] = {0x3A, 0xC9, 0x6A, 0xCB};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 relaySerial.println("Tap RFID/NFC 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, HIGH); // activate the relay for 2 secondsdelay(2000);digitalWrite(RELAY_PIN, LOW); // deactivate the relay }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, HIGH); // activate the relay for 2 secondsdelay(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 } }}
Wiederhole die gleichen Schritte wie zuvor erwähnt, und lege anschließend jedes Tag auf das RFID-RC522-Modul. Die Ausgabe im seriellen Monitor sollte wie folgt aussehen:
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
Tap RFID/NFC tag on reader
Authorized Tag 2
Authorized Tag 1
Ln 11, Col 1
Arduino Nano on COM15
2
Sie können den obigen Code erweitern, um drei, vier oder mehr Tags einzuschließen.
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.
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!