Juuke - a RFID Music Player for Elderly and Kids
userhead
42 2020-09-02 18:06:43

Note: This article copied from instructables.com,  Author: ananords

projectImage
projectImage
projectImage

This is the Juuke box. The Juuke box is your own musical friend, made to be as easy as possible to use. It is especially designed to be used by elderly and kids, but can of course be used by all other ages. The reason we created this, is because of my girlfriend's grandmother. She told me that her and her grandma sitting in the kitchen, listening to music, dancing and laughing. Sadly, through the last years, her grandma has been in and out from hospital. On her worst days, however, music is one of the few things that still makes her smile. And music players like CD players are just too hard to use for her. That’s why we created the Juuke. 

The Juuke Box works by using RFID cards to play specific songs from an SD card. You could also play the songs randomly using the green button, or play and pause with the red button. 

This way, it is really simple for everyone to play music.


Step 1: Watch the Video!

We made a video showing how me made it:)


Step 2: Gather the Parts: 

We got all the parts from AliExpress, and links to the parts are listed below: 

Parts: 

Arduino UNO AliExpress& Amazon 

DFPlayer Mini  

Micro SD card

Arduino UNO DIY Shield AliExpress & Amazon 

RC522 - Buy 2 to be sure, some of them arrive broken AliExpress & Amazon 

RFID Cards AliExpress & Amazon 

AUX Stereo Jack AliExpress & Amazon 

22 mm Momentary Push Button - 1 Red and 1 green - 3-6V AliExpress 

10K Potentiometer AliExpress & Amazon 

Wires AliExpress & Amazon 

1K Resistor AliExpress & Amazon 

Pin headers

Breadboard

Jumper wires

5V power supply

Power Jack - AliExpress & Amazon 


 Tools: 

 3D printer AliExpress & Amazon 

 Soldering Kit

 Wire Stripper AliExpress & Amazon

projectImage
projectImage
projectImage
projectImage

I recommend connecting everything up, and test if it all works before starting. 

To do that, I used a breadboard and some jumper wires to quick and easy check that it all worked as intended. I had some problems with the first RC522 module I bought, it just didn’t work even though it came straight from the factory. So I had to get a new one… That’s why I recommend getting 2 of them, that way you are sure that if you break one of them, you have a spear.

Connect everything according to the circuit diagram here (Link), or see the attached pictures. 

Remember to use a 1K resistor between RX on the DFPlayer Mini and the Arduino. 

To check if the card reader works, you can use the “Dump card” example sketch from the library. (See step 4)


Step 4: The Code - Programming the Cards

projectImage

To get a better understanding of how the code works with the DFPlayer mini, I will try to explain it as easy as possible. The DFPlayer mini works by playing songs from a micro SD card. To know which song to play, the songs has to be stored as a number to the SD card. Song number 1 is stored as “0001 - SONG NAME”, song number 2 is stored as “0002 - SONG NAME”, and so forth. We can write a number to the RFID cards, so if we write the number 2 to one of the cards and place it on the reader, the Arduino will read the number and say to the DFPlayer mini, “play song number 2”. 

The number we write to the card has to be the same number as the name of the song we store on the SD card.

If you would like to learn more about the DFPlayer mini, visit this page with lots of great information 

You can now open Arduino and upload the code for the card programming. I have divided the code into two parts. One for programming the cards, and one for the actual player. In this step, we will start by programming the cards. The code is published to GitHub, and added below. You will also need to download the following libraries: 

 - MFRC522 

 - DFRobotDFPlayerMini.h 

I have tried to explain the code with comments as much as possible, but if you have any questions, don’t be afraid to ask them in the comment section! 

Also, I am not a great programmer but I would like to become one, so if you see any mistakes in the code a comment would be great! 

To upload the code to the Arduino, see this article. To add libraries, see this article

MODES: 

The card programmer has two modes, automatic and manual. 

Manual mode: Writes the number you want to write to the card. Type in a number, and it will store it.

Automatic mode: Starts at the number you specify in the code, and increases it by 1 every time you place a card on. 

HOW TO USE THE CARD PROGRAMMER: 

Connect the Arduino Open Serial monitor (top right corner) Write “manual” for manual mode and “auto” for automatic mode. (See above) Place a card on the reader, and make sure it says succeeded.

FILE
Juuke-CardProgrammer.zip 2KB Download
FILE
Juuke-player.zip 2KB Download

Step 5: The Code: Player Mode 

Once you have programmed the cards, you can upload the music player code. This is the code that reads the card and plays the associated song. 

The process is exactly the same as for the card programmer code. Upload the sketch, and start using it!

PS: IMPORTANT! To disable the serial communication where you can see what the program is doing in the serial monitor, you have to comment out “Serial.begin(115200); “. Just add“//” in front of the line. I had some problems where the program would not run if it was enabled. (It was waiting for a serial connection before it would start)

Step 6: Download Songs to the SD Card

projectImage

As said previously, you have to give the music files on your SD card a specific name for it to work. Every song has to start with a number. The number also has to be 4 digits (1 is 0001 for example). 

After these digits, you are free to add the name of the song. For example: “0035 - Frank Sinatra - Fly me to the moon” 

It uses standard MP3 files, so it’s simple to copy them over to SD card and rename them.


Step 7: Test, Then Solder

projectImage
projectImage
projectImage

When you have tested that everything is working as intended, you can start soldering the parts to the Arduino UNO shield. 

Just follow the circuit diagram wire for wire. It is smart to print it out, and use a colored marker to mark which wires you have soldered on. I also recommend to use pin headers for the DFPlayer Mini so you don’t damage it under soldering.

I also desoldered the RC-522 Led, because it was showing through the print.


Step 8: Make the Enclosure

projectImage
projectImage
projectImage

In this step I am going to show you how I made the enclosure. 

I designed it using Fusion 360, and 3D printed it. I also made one using a CNC machine, and some plywood. 

If you don't have a 3d printer or a CNC machine, don't worry! It's also possible to make an enclosure out of cardboard or using a project box 

You can find all the files here: 

3D printed: 

STL: CULTS 3D | Thingiverse 

FUSION 360: Ananords.com 

The settings I used to 3D print it is: 

Infill: 15% 

Layer height: 0.2mm

Supports: YES 

Just insert the UNO and the RC522 into the pins on the 3D print. They should fit snugly. I recommend using a drop of glue to secure them in place. Do the same with the audio jack. For the buttons, potentiometer and power socket, use the included hex nuts. 

When you are done, just snap the bottom plate and the “face” together.


Step 9: Make the Cards

projectImage

Start with the design. 

I made the designs in Adobe Spark, where I used the card dimensions (85 mm x 54 mm) as the custom size 

I found the pictures on google and imported them into Adobe Spark, set the song title and artist, and done! 

Since I don’t have an id card printer, I had to find another way to make the print on the cards. I went the simple route, and just printed it on paper then glued it to the cards. 

You can also just use a pen and write directly on the cards.


Step 10: Done! 

You are now done! 

If you make this project, please post a make:) Any questions? Just ask, and I will try to answer them. For updates about the Juuke, sign up to the newsletter! Follow me on Instagram for updates on upcoming projects!

License
1
All Rights
Reserved
[[i.text]]
licensBg
0
0
COMMENTS ([[commentTotla]])
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
[[c.comment_content]]