ESP8266 - RFID - Relais

Dieses Tutorial zeigt Ihnen, wie Sie mit Hilfe des ESP8266 ein RFID/NFC-Tag verwenden, um ein Relais auszulösen. Sie können dieses Tutorial weiter ausbauen, indem Sie das Relais verwenden, um Motoren, Aktuatoren und mehr zu steuern.

Erforderliche Hardware

1×ESP8266 NodeMCU
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×RFID/NFC RC522 Kit (reader + tags)
1×RFID Key Fob
1×RFID Card
1×Relais
10×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

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 RFID/NFC RC522-Modul und Relais

Wenn Sie mit dem RFID/NFC RC522-Modul und Relais (einschließlich Pinbelegung, Funktionalität und Programmierung) nicht vertraut sind, dann sehen Sie sich die folgenden Tutorials an:

ESP8266 NodeMCU Arduino RFID-Relaisbauteil

Wie es funktioniert

  • Der RFID-/NFC-Leser liest die UID eines Tags aus, wenn dieser angetippt wird.
  • Der ESP8266 nimmt dann diese UID und vergleicht sie mit den im Code voreingestellten UIDs.
  • Wenn die UID mit einer dieser vordefinierten UIDs übereinstimmt, aktiviert der ESP8266 das Relais.

Verdrahtungsdiagramm

ESP8266 NodeMCU RFID RC522 Relais-Schaltplan

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

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

※ Notiz:

Die Reihenfolge der Pins kann je nach Hersteller variieren. VERWENDEN Sie IMMER die auf dem Modul aufgedruckten Beschriftungen. Das oben gezeigte Bild zeigt den Pinout der Module des Herstellers DIYables.

ESP8266-Code – Einzelner RFID/NFC-Tag

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-rfid-relay */ #include <SPI.h> #include <MFRC522.h> #define SS_PIN D8 // The ESP8266 pin D8 #define RST_PIN D2 // The ESP8266 pin D2 #define RELAY_PIN D1 // The ESP8266 pin 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 } } }

Schnelle Schritte

Um mit dem ESP8266 in der Arduino-IDE zu beginnen, folgen Sie diesen Schritten:

  • Schauen Sie sich das Tutorial zur Einrichtung der ESP8266-Umgebung in der Arduino IDE an, falls dies Ihr erster Einsatz von ESP8266 ist.
  • Verdrahten Sie die Bauteile gemäß dem Diagramm.
  • Schließen Sie das ESP8266-Board mit einem USB-Kabel an Ihren Computer an.
  • Öffnen Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das richtige ESP8266-Board aus, z. B. NodeMCU 1.0 (ESP-12E-Modul), und den jeweiligen COM-Port.

Um die UID eines RFID-/NFC-Tags zu ermitteln, besteht der erste Schritt darin, den Code zu kopieren und ihn mit der Arduino-IDE zu öffnen. Danach klicken Sie auf den Hochladen-Button in der Arduino-IDE, um den Code auf den ESP8266 zu laden. Öffnen Sie dann den seriellen Monitor und berühren Sie das RFID-/NFC-Tag am RFID-RC522-Modul. Schließlich wird die UID im seriellen Monitor angezeigt.

COM6
Send
Tap RFID/NFC tag on reader Unauthorized Tag with UID: 3A C9 6A CB
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Nach Erhalt der UID:

  • Ersetze den Wert von byte authorizedUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; durch die UID in Zeile 18 des Codes. Zum Beispiel byte authorizedUID[4] = {0x3A, 0xC9, 0x6A, 0xCB};
  • Lade den Code erneut auf den ESP8266 hoch.
  • Tippe ein RFID/NFC-Tag auf das RFID-RC522-Modul.
  • Schau dir die Ausgabe im Serial Monitor an.
COM6
Send
Tap RFID/NFC tag on reader Authorized Tag
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Berühren Sie ein anderes RFID/NFC-Tag am RFID-RC522-Modul.
  • Überprüfen Sie die Ausgabe im Serial Monitor.
COM6
Send
Tap RFID/NFC tag on reader Authorized Tag Unauthorized Tag with UID: BD 1E 1D 00
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

  • Zur Erleichterung der Tests ist die aktive Zeit auf zwei Sekunden eingestellt; sie sollte jedoch für den praktischen Einsatz bzw. zur Demonstration erhöht werden.
  • Die Installation der MFRC522-Bibliothek ist erforderlich. Weitere Informationen finden Sie im ESP8266 - RFID/NFC RC522 Tutorial.

ESP8266-Code - Mehrere RFID/NFC-Tags

Wir können das Relais so konfigurieren, dass es durch mehrere RFID-/NFC-Tags aktiviert wird. Als Beispiel verwendet der untenstehende Code zwei Tags.

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-rfid-relay */ #include <SPI.h> #include <MFRC522.h> #define SS_PIN D8 // The ESP8266 pin D8 #define RST_PIN D2 // The ESP8266 pin D2 #define RELAY_PIN D1 // The ESP8266 pin 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 } } }

Wiederhole dieselben Schritte wie zuvor und lege danach jeden RFID-Tag auf das RFID-RC522-Modul. Die Ausgabe im Serial Monitor wird dem Folgenden ähneln:

COM6
Send
Tap RFID/NFC tag on reader Authorized Tag 2 Authorized Tag 1
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Sie können den oben genannten Code für drei, vier oder mehr Tags erweitern.

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!