ESP32 C3 Super Mini - RFID

Dieses Tutorial zeigt Ihnen, wie Sie den ESP32 C3 Super Mini mit einem RC522 RFID/NFC-Leser verwenden, um die Informationen eines RFID/NFC-Tags auszulesen. Das RC522-Modul ist ein 3,3V-Gerät und passt daher perfekt zum ESP32 C3 Super Mini.

In diesem Tutorial lernen Sie:

ESP32 C3 Super Mini - RFID

Erforderliche Hardware

1×ESP32 C3 Super Mini
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×Breadboard
1×Verbindungskabel
1×(Optional) DC-Stromanschluss

Oder Sie können die folgenden Kits kaufen:

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.

Überblick über RFID-RC522 Module

Der RFID-RC522 ist ein Leser mit kurzer Reichweite, der über Funkwellen mit einer Karte oder einem Schlüsselanhänger kommuniziert.

Hauptmerkmale:

  • Liest die eindeutige ID (UID) von MIFARE-Karten, Schlüsselanhängern und Aufklebern.
  • Kann außerdem die Speicherblöcke in einem MIFARE-Tag lesen und beschreiben.
  • Funktioniert aus wenigen Millimetern bis etwa 5 cm Entfernung.
  • Kommuniziert mit dem ESP32 C3 Super Mini über SPI, daher werden nur wenige Leitungen benötigt.
  • Wird als Kit mit einer Karte und einem Schlüsselanhänger geliefert, sofort bereit zum Testen.

Technische Daten:

  • Chip: NXP MFRC522.
  • Betriebsspannung: nur 3,3V.
  • Funkfrequenz: 13,56 MHz.
  • Lesereichweite: 0 bis 60 mm (abhängig vom Tag und der Antenne).
  • Schnittstellen: SPI, I2C, UART - jeweils nur eine gleichzeitig.
  • SPI-Geschwindigkeit: bis zu 10 Mbit/s.
  • Strom: etwa 13-26 mA während des Lesens.

WARNING

Das RFID-RC522-Modul arbeitet mit 3,3V. Verbinden Sie seinen VCC-Pin nur mit dem 3,3V-Pin des ESP32 C3 Super Mini. 5V beschädigen das Modul.

Pinbelegung

Das RFID-RC522-Modul hat 8 Pins. Einige Pins werden von den drei Schnittstellen (SPI, I2C, UART) gemeinsam genutzt, und es kann jeweils nur eine Schnittstelle verwendet werden.

Pinbelegung des RFID-RC522-Moduls
  • GND-Pin: Verbinden Sie diesen Pin mit GND (0V).
  • VCC-Pin: Verbinden Sie diesen Pin mit 3,3V.
  • RST-Pin: Reset- und Power-Down-Pin. Ein LOW-Pegel versetzt das Modul in den Hard-Power-Down. Eine steigende Flanke setzt das Modul zurück.
  • IRQ-Pin: Interrupt-Pin, der den ESP32 C3 Super Mini benachrichtigen kann, wenn ein RFID-Tag in Reichweite kommt.
  • MISO/SCL/TX-Pin: arbeitet als:
    • MISO-Pin, wenn die SPI-Schnittstelle aktiviert ist
    • SCL-Pin, wenn die I2C-Schnittstelle aktiviert ist
    • TX-Pin, wenn die UART-Schnittstelle aktiviert ist.
  • MOSI-Pin: arbeitet als MOSI, wenn die SPI-Schnittstelle aktiviert ist.
  • SCK-Pin: arbeitet als SCK, wenn die SPI-Schnittstelle aktiviert ist.
  • SS/SDA/RX-Pin: arbeitet als:
    • SS-Pin, wenn die SPI-Schnittstelle aktiviert ist
    • SDA-Pin, wenn die I2C-Schnittstelle aktiviert ist
    • RX-Pin, wenn die UART-Schnittstelle aktiviert ist.

    ※ Notiz:

    • Die Reihenfolge der Pins kann je nach Hersteller variieren. Verwenden Sie IMMER die auf dem Modul aufgedruckten Beschriftungen. Das obige Bild zeigt die Pinbelegung der Module des Herstellers DIYables.
    • Das RFID-RC522-Modul arbeitet mit 3,3V. Verbinden Sie den VCC-Pin des RFID-RC522-Moduls nicht mit 5V. 5V können das RFID-RC522-Modul zerstören.
    • Dieses Tutorial verwendet die SPI-Schnittstelle für die Kommunikation zwischen dem ESP32 C3 Super Mini und dem RFID-RC522-Modul.

Verdrahtungsdiagramm

Verdrahten Sie das RC522-Modul wie unten gezeigt mit den SPI-Pins des ESP32 C3 Super Mini.

  • Hinweis: Versorgen Sie das Modul über den 3,3V-Pin. Niemals über 5V.
  • Hinweis: Der IRQ-Pin wird in diesem Tutorial nicht verwendet. Lassen Sie ihn unverbunden.
  • Hinweis: Halten Sie die Jumperkabel kurz. Lange Kabel machen das SPI-Signal unzuverlässig.
  • Hinweis: Der ESP32 C3 Super Mini ist ein 3,3V-Board, daher wird kein Pegelwandler benötigt.
ESP32 C3 Super Mini RFID RC522 Schaltplan

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

Die Verdrahtungstabelle zwischen RFID/NFC RC522-Modul und ESP32 C3 Super Mini

RFID/NFC RC522 Pin ESP32 C3 Super Mini Pin
SS (SDA) GPIO7
SCK GPIO4
MOSI GPIO6
MISO GPIO5
IRQ nicht verbunden
GND GND
RST GPIO3
VCC 3,3V

ESP32 C3 Super Mini RFID/NFC Code

Der folgende Code wartet auf ein Tag und gibt dessen Typ und UID im seriellen Monitor aus.

Was dieser Code macht:

  • Startet den SPI-Bus an GPIO4 (SCK), GPIO5 (MISO), GPIO6 (MOSI) und GPIO7 (SS).
  • Initialisiert den MFRC522-Leser mit SS an GPIO7 und RST an GPIO3.
  • Prüft in jedem Schleifendurchlauf, ob ein neues Tag in Reichweite ist.
  • Gibt den Tag-Typ aus, zum Beispiel MIFARE 1KB.
  • Gibt die UID des Tags im Hexadezimalformat aus.
/* * Dieser ESP32 C3 Super Mini Code wurde von newbiely.de entwickelt * Dieser ESP32 C3 Super Mini 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/esp32-c3/esp32-c3-super-mini-rfid */ #include <SPI.h> #include <MFRC522.h> #define SCK_PIN 4 // The ESP32 C3 SuperMini pin connected to RC522's SCK pin #define MISO_PIN 5 // The ESP32 C3 SuperMini pin connected to RC522's MISO pin #define MOSI_PIN 6 // The ESP32 C3 SuperMini pin connected to RC522's MOSI pin #define SS_PIN 7 // The ESP32 C3 SuperMini pin connected to RC522's SS (SDA) pin #define RST_PIN 3 // The ESP32 C3 SuperMini pin connected to RC522's RST pin MFRC522 rfid(SS_PIN, RST_PIN); void setup() { Serial.begin(115200); SPI.begin(SCK_PIN, MISO_PIN, MOSI_PIN, SS_PIN); // init SPI bus rfid.PCD_Init(); // init MFRC522 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); Serial.print("RFID/NFC Tag Type: "); Serial.println(rfid.PICC_GetTypeName(piccType)); // print UID 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

  • Neu beim ESP32 C3 Super Mini? Absolvieren Sie zuerst unser Tutorial Erste Schritte mit dem ESP32 C3 Super Mini, um Ihre Entwicklungsumgebung einzurichten.
  • Bauteile verdrahten: Verbinden Sie das RC522-Modul wie in der obigen Verdrahtungstabelle gezeigt mit dem ESP32 C3 Super Mini.
  • USB-Kabel anschließen: Verbinden Sie den ESP32 C3 Super Mini mit einem USB-Typ-C-Kabel mit Ihrem Computer.
  • Arduino IDE öffnen: Starten Sie die Arduino IDE auf Ihrem Computer.
  • Board auswählen: Stellen Sie sicher, dass ESP32 C3 Super Mini unter Werkzeuge > Board ausgewählt ist.
  • Port auswählen: Wählen Sie den COM-Port Ihres ESP32 C3 Super Mini.
  • Bibliotheksverwalter öffnen: Klicken Sie auf das Symbol Library Manager in der linken Navigationsleiste der Arduino IDE.
  • Bibliothek suchen: Geben Sie “MFRC522” in das Suchfeld ein und suchen Sie dann nach der Bibliothek von GithubCommunity.
  • Bibliothek installieren: Klicken Sie auf die Schaltfläche Install.
  • Search for MFRC522 created by GithubCommunity and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Library Manager
Type:
All
Topic:
All
MFRC522 by GithubCommunity
Read/Write a RFID Card or Tag using the ISO/IEC 14443A/MIFARE interface. More info
1.4.11
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32C3 Dev Module on COM15
1
  • Code kopieren: Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  • Code hochladen: Klicken Sie auf die Schaltfläche Upload, um den Code zu kompilieren und auf das ESP32 C3 Super Mini Board hochzuladen.
  • Seriellen Monitor öffnen: Stellen Sie die Baudrate auf 115200 ein.
So öffnen Sie den seriellen Monitor in der Arduino IDE
  • Tag auflegen: Halten Sie mehrere RFID/NFC-Tags an das RFID-RC522-Modul.
  • Ergebnis ansehen: Die UID jedes Tags wird im seriellen Monitor ausgegeben.
  • Profi-Tipp: Wenn nichts ausgegeben wird, prüfen Sie zuerst die SS- und RST-Leitungen. Eine vertauschte SS- oder RST-Leitung ist der häufigste Fehler.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
Tap an RFID/NFC tag on the RFID-RC522 reader RFID/NFC Tag Type: MIFARE 1KB UID: 2B B8 59 B1 RFID/NFC Tag Type: MIFARE 1KB UID: 9C 4A 03 D7 RFID/NFC Tag Type: MIFARE Ultralight or Ultralight C UID: 15 75 46 7A 2C 5B 7E RFID/NFC Tag Type: MIFARE 1KB UID: E1 07 62 4F
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

Zeilenweise Code-Erklärung

Der obige ESP32 C3 Super Mini Code enthält eine zeilenweise Erklärung. Bitte lesen Sie die Kommentare im Code!

Anwendungen und Projektideen

Hier sind einige einfache Projekte, die Sie mit dem ESP32 C3 Super Mini und dem RC522 RFID-Leser bauen können.

  • Türschloss: Ein elektromagnetisches Schloss öffnen, wenn ein bekanntes Tag aufgelegt wird.
  • Anwesenheitserfassung: Die UID und die Uhrzeit speichern, zu der sich jede Person anmeldet.
  • Bargeldloser Automat: Ein Tag startet eine kleine Maschine oder ein Relais.
  • Spielzeugkisten-Sortierer: Jedes Spielzeug erhält einen Aufkleber-Tag, und sein Name wird auf einem LCD angezeigt.
  • WLAN-Zugangsprotokoll: Jede UID per WLAN an einen Webserver senden.
  • Alarm entschärfen: Einen Summer-Alarm nur ausschalten, wenn das richtige Tag vorhanden ist.

Fordern Sie sich selbst heraus

Probieren Sie diese kleinen Erweiterungen aus, um mehr über RFID am ESP32 C3 Super Mini zu lernen.

  • Einfach: Schalten Sie bei jedem gelesenen Tag eine LED an GPIO2 für eine Sekunde ein.
  • Einfach: Geben Sie statt der rohen UID eine kurze Nachricht aus.
  • Mittel: Speichern Sie eine Liste erlaubter UIDs und geben Sie "Access granted" oder "Access denied" aus.
  • Mittel: Fügen Sie einen Summer hinzu, der bei einem erlaubten Tag einmal und bei einem unbekannten Tag zweimal piept.
  • Fortgeschritten: Lesen und schreiben Sie eigene Daten in einen Speicherblock eines MIFARE-Tags.
  • Fortgeschritten: Senden Sie jede gescannte UID an eine Webseite, die vom ESP32 C3 Super Mini gehostet wird.

Verwandte Tutorials

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