Arduino - Lecteur MP3 RFID

Dans ce tutoriel, nous explorerons le processus de création d'un lecteur MP3 basé sur RFID en utilisant Arduino, un lecteur RFID RC522 et un module de lecteur MP3. Le module de lecteur MP3 est équipé d'une carte micro SD où plusieurs chansons sont stockées. Chaque carte RFID représente une chanson, et le nombre de cartes RFID correspond au nombre de chansons.

En passant une carte RFID devant le lecteur RFID, l'Arduino joue la chanson correspondante associée à cette carte RFID spécifique.

Préparation du matériel

1×Arduino Uno
1×USB 2.0 cable type A/B
1×RFID/NFC RC522 Kit (reader + tags)
1×RFID Key Fob
1×Serial MP3 Player Module
1×Micro SD Card
1×3.5mm Aux Speaker
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du module RFID/NFC RC522 et du lecteur MP3

Si vous ne connaissez pas le module RFID/NFC RC522 et le lecteur MP3 (brochage, fonctionnement, programmation...), renseignez-vous sur ces derniers dans les tutoriels suivants :

Diagramme de câblage

Schéma de câblage du lecteur MP3 RFID RC522 Arduino

This image is created using Fritzing. Click to enlarge image

Pour simplifier l'installation, les broches du module RC522 sont directement connectées aux broches de l'Arduino. Cependant, cette connexion directe peut entraîner des problèmes, car les broches de sortie de l'Arduino délivrent 5V alors que les broches du module RC522 sont conçues pour fonctionner à 3.3V. Il est conseillé de réguler la tension entre les broches de l'Arduino et celles du module RC522 afin de prévenir d'éventuels problèmes. Pour des instructions plus détaillées, veuillez consulter le tutoriel Arduino - RFID RC522. Le schéma fourni illustre comment des résistances peuvent être utilisées pour réguler le 5V en 3.3V.

Schéma de câblage régulé en tension du module Arduino RC522

This image is created using Fritzing. Click to enlarge image

※ NOTE THAT:

L'ordre des broches peut varier selon les fabricants. Utilisez TOUJOURS les étiquettes imprimées sur le module. L'image ci-dessus montre le schéma de brochage des modules de la marque DIYables.

Préparation

  • Pré-enregistrez une liste de chansons que vous souhaitez jouer sur la carte micro SD.
  • Insérez la carte micro SD dans le module lecteur MP3.
  • Connectez le module lecteur MP3 à l'Arduino.
  • Connectez le haut-parleur au module lecteur MP3.
  • Connectez le haut-parleur à une source d'alimentation.
  • Connectez le lecteur RFID à l'Arduino.

Étant donné que l'UID n'est généralement pas imprimé sur l'étiquette RFID, la première étape que nous devons effectuer est de découvrir l'UID des étiquettes. Ceci peut être réalisé en :

  • Copiez le code ci-dessous et ouvrez-le avec l'IDE Arduino.
/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-rfid-mp3-player */ #include <SPI.h> #include <MFRC522.h> #define SS_PIN 10 // Arduino Pin connected to the SS of the RFID reader #define RST_PIN 5 // Arduino 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 } } }
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code vers Arduino
  • Ouvrez le moniteur série
  • Tapotez les cartes/porte-clés RFID une par une sur le module RFID-RC522
  • Prenez note des UID sur le moniteur série, cela ressemble à ce qui suit :
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  

Nous utiliserons ces identifiants RFID pour mettre à jour le code Arduino ci-dessous.

Code Arduino - Lecteur Mp3 RFID

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-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 ARDUINO_RX 7 // Arduino Pin connected to the TX of the Serial MP3 Player module #define ARDUINO_TX 6 // Arduino Pin connected to the RX of the Serial MP3 Player module #define SS_PIN 10 // Arduino Pin connected to the SS of the RFID reader #define RST_PIN 5 // Arduino 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(ARDUINO_RX, ARDUINO_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]); } }

Étapes rapides

  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Mettez à jour les UID que vous avez obtenus lors de l'étape de préparation dans le code ci-dessus.
  • Téléchargez le code sur Arduino
  • Tapotez une étiquette RFID sur le module RFID-RC522 une par une
  • Écoutez le son provenant du lecteur MP3
  • Si tout fonctionne bien, chaque carte RFID sera associée à une chanson.
  • Vous pouvez marquer le nom de la chanson sur chaque carte RFID.

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!