ESP8266 – RFID-MP3-Player

Dieses Tutorial zeigt dir, wie man einen RFID-MP3-Player herstellt, indem man einen ESP8266, einen RC522 RFID-Leser und ein MP3-Player-Modul verwendet. Das MP3-Player-Modul wird mit einer kleinen SD-Karte geliefert, auf der verschiedene Lieder gespeichert sind. Jede RFID-Karte ist mit einem bestimmten Lied verknüpft, und die Anzahl der RFID-Karten entspricht der Anzahl der Lieder.

Wenn du eine RFID-Karte vor den RFID-Leser hältst, spielt der ESP8266 das Lied ab, das mit dieser bestimmten RFID-Karte verknüpft ist.

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×Serieller MP3-Player-Modul
1×Micro-SD-Karte
1×3.5mm Aux-Lautsprecher
1×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 MP3-Player

Wenn Sie nichts über das RFID/NFC RC522-Modul und den MP3-Player (Pinbelegung, Funktionsweise, Programmierung ...) wissen, informieren Sie sich in den folgenden Tutorials darüber:

Verdrahtungsdiagramm

ESP8266 NodeMCU RFID RC522 MP3-Player-Verdrahtungsdiagramm

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 Anordnung der Pins kann je nach Hersteller variieren. Verwenden Sie immer die auf dem Modul aufgedruckten Beschriftungen. Das obige Bild zeigt die Pinbelegung der Module der Marke DIYables.

Vorbereitung

  • Speichern Sie vorab eine Liste von Liedern, die Sie auf der microSD-Karte abspielen möchten.
  • Stecken Sie die microSD-Karte in das MP3-Player-Modul.
  • Verbinden Sie das MP3-Player-Modul mit dem ESP8266.
  • Schließen Sie den Lautsprecher an das MP3-Player-Modul an.
  • Schließen Sie den Lautsprecher an eine Stromquelle an.
  • Verbinden Sie den RFID-Leser mit dem ESP8266.

Da die UID normalerweise nicht auf dem RFID-Tag aufgedruckt wird, besteht der erste Schritt, den wir tun müssen, darin, die UID der Tags herauszufinden. Dies kann auf folgende Weise erfolgen:

  • Kopieren Sie den untenstehenden Code und öffnen Sie ihn mit der Arduino IDE
/* * 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-mp3-player */ #include <SPI.h> #include <MFRC522.h> #define SS_PIN D8 // The ESP8266 pin connected to the SS of the RFID reader #define RST_PIN D3 // The ESP8266 pin connected to the RST of the RFID reader MFRC522 rfid(SS_PIN, RST_PIN); void setup() { Serial.begin(9600); SPI.begin(); // init SPI bus rfid.PCD_Init(); // init MFRC522 Serial.println("Tap RFID Tag on reader"); } void loop() { if (rfid.PICC_IsNewCardPresent()) { // new tag is available if (rfid.PICC_ReadCardSerial()) { // NUID has been readed // print NUID in Serial Monitor in the hex format for (int i = 0; i < rfid.uid.size; i++) { Serial.print("0x"); Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(rfid.uid.uidByte[i], HEX); if (i < (rfid.uid.size - 1)) Serial.print(", "); } Serial.println(); rfid.PICC_HaltA(); // halt PICC rfid.PCD_StopCrypto1(); // stop encryption on PCD } } }
  • Klicken Sie im Arduino IDE auf die Schaltfläche Hochladen, um Code auf den ESP8266 hochzuladen
  • Öffnen Sie den seriellen Monitor
  • Berühren Sie nacheinander RFID-Karten bzw. Schlüsselfob am RFID-RC522-Modul
  • Notieren Sie die UIDs im seriellen Monitor, wie unten dargestellt:
COM6
Send
Tap RFID Tag on reader 0x51, 0x3D, 0xC1, 0xAC 0x6A, 0x4C, 0x12, 0x6D 0xB0, 0x1F, 0x92, 0x11
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Wir werden diese RFID-UIDs verwenden, um den untenstehenden ESP8266-Code zu aktualisieren.

ESP8266-Code - RFID-MP3-Player

/* * 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-mp3-player */ #include <SPI.h> #include <MFRC522.h> #include <SoftwareSerial.h> #define CMD_PLAY_NEXT 0x01 #define CMD_PLAY_PREV 0x02 #define CMD_PLAY_W_INDEX 0x03 #define CMD_SET_VOLUME 0x06 #define CMD_SEL_DEV 0x09 #define CMD_PLAY_W_VOL 0x22 #define CMD_PLAY 0x0D #define CMD_PAUSE 0x0E #define CMD_SINGLE_CYCLE 0x19 #define DEV_TF 0x02 #define SINGLE_CYCLE_ON 0x00 #define SINGLE_CYCLE_OFF 0x01 #define ESP8266_RX D1 // The ESP8266 pin connected to the TX of the Serial MP3 Player module #define ESP8266_TX D2 // The ESP8266 pin connected to the RX of the Serial MP3 Player module #define SS_PIN D8 // The ESP8266 pin connected to the SS of the RFID reader #define RST_PIN D3 // The ESP8266 pin connected to the RST of the RFID reader #define SONG_NUM 3 // 3 songs + 3 RFID cards, change it as your need MFRC522 rfid(SS_PIN, RST_PIN); SoftwareSerial mp3(ESP8266_RX, ESP8266_TX); byte RFID_UIDs[SONG_NUM][4] = { { 0x51, 0x3D, 0xC1, 0xAC }, // UPDATE THIS VALUE FROM PREPARATION STEP { 0x6A, 0x4C, 0x12, 0x6D }, // UPDATE THIS VALUE FROM PREPARATION STEP { 0xB0, 0x1F, 0x92, 0x11 } // UPDATE THIS VALUE FROM PREPARATION STEP // ADD MORE IF NEEDED }; void setup() { Serial.begin(9600); mp3.begin(9600); delay(500); // wait chip initialization is complete mp3_command(CMD_SEL_DEV, DEV_TF); // select the TF card delay(200); // wait for 200ms SPI.begin(); // init SPI bus rfid.PCD_Init(); // init MFRC522 Serial.println("Tap RFID Tag on reader"); } void loop() { if (rfid.PICC_IsNewCardPresent()) { // new tag is available if (rfid.PICC_ReadCardSerial()) { // NUID has been readed Serial.print("Tag 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(); for (int index = 0; index < SONG_NUM; index++) { if (rfid.uid.uidByte[0] == RFID_UIDs[index][0] && rfid.uid.uidByte[1] == RFID_UIDs[index][1] && rfid.uid.uidByte[2] == RFID_UIDs[index][2] && rfid.uid.uidByte[3] == RFID_UIDs[index][3]) { Serial.print("Playing song "); Serial.println(index); mp3_command(CMD_PLAY_W_INDEX, index); // Play mp3 } } rfid.PICC_HaltA(); // halt PICC rfid.PCD_StopCrypto1(); // stop encryption on PCD } } } void mp3_command(int8_t command, int16_t dat) { int8_t frame[8] = { 0 }; frame[0] = 0x7e; // starting byte frame[1] = 0xff; // version frame[2] = 0x06; // The number of bytes of the command without starting byte and ending byte frame[3] = command; // frame[4] = 0x00; // 0x00 = no feedback, 0x01 = feedback frame[5] = (int8_t)(dat >> 8); // data high byte frame[6] = (int8_t)(dat); // data low byte frame[7] = 0xef; // ending byte for (uint8_t i = 0; i < 8; i++) { mp3.write(frame[i]); } }

Schnelle Schritte

Um mit dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Schauen Sie sich das Tutorial zur Einrichtung der Umgebung für ESP8266 in der Arduino IDE an, falls Sie ESP8266 zum ersten Mal verwenden.
  • 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 Module), und seinen jeweiligen COM-Port.
  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE.
  • Aktualisieren Sie die im Vorbereitungsschritt erhaltenen UIDs im obigen Code.
  • Laden Sie den Code auf den ESP8266 hoch.
  • Halten Sie nacheinander jeden RFID-Tag am RFID-RC522-Modul an.
  • Überprüfen Sie den Ton des MP3-Players.
  • Wenn alles reibungslos läuft, wird jede RFID-Karte einem Lied zugeordnet.
  • Sie können den Namen des Liedes auf jeder RFID-Karte vermerken.

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!