Introduction: Rainy Song (uncomplete)

We were interested in getting a positive response by focusing more on the sound in an environment where people would rain in the same sound.

However, it doesn't rain every time you want to guarantee that you are focused. Therefore, the goal is to feel like a rainy environment by shining through an experience, and at the same time letting you hear some sounds in silence, so you can enjoy it both indoors and outdoors.

Step 1: Ideation

In order to solve these problems, we will first create an environment where rain falls on the animation using LED Strip and Aduino.

The aim was to eliminate the monotony by accelerating the raindrops as if they fell as if they had gravity.

Also, for a more enjoyable experience, I thought that it would be good if there was a sound at the moment of rain. The sound was designed to allow users to interact with the work, but we felt that the user could try to enter as much sound as possible. Therefore, I thought that the parameters that produce sound may give fun by using the actual material.

Step 2: Supply List

1. isopink* ( 50T 1800*900 * 3)

In fact, it is possible to use a variety of materials such as wood, plates or nets instead of iso pink, but we used iso pink because the ceiling was not strong enough to withstand its weight during the testing process We didn't have enough equipment, so we chose relatively light isopink.

2. Addresable LED Strip ( 1m~1.5m / 7ea )

3. Arduino Uno ( 7ea)

4. Power Supply 40A 220V (1ea)

5. Mirc - 522 RFID module (1ea)

6. DF mini player. SD card sound Module (7ea)

7. 3~5w Speaker (7ea)

8. 1k ohm resistor ( 14ea )

9. Hook up wire (4ea)

10. Velvet (800*1600 / 2ea)

11. Fishing wire (3m / 3ea )

12. paper pin* ( 1ea 100pic )

13. balloon (7ea)

13-1 condom (7ea)

14. stocking (white / blue) (3ea)

15. Hook hanger * (4ea)

16. Steal Wire (10color / 20m / 1ea)

17. Button (4ea)

18. Box (acrylic) (1ea)

19. eletirical tape

20. Wire case

21. PVC Pipe (clear) / (2cm)

22. SD card mini (7ea)

# tool

1. soldering-iron

2. Power drill

3. hand saw

4. 3d printer

5. wire cutter

6. Nipper

7. glue gun

8. Instant adhesive

Step 3: Process

In order to create a rainy environment using LEDs, it was first necessary to place LED Strips on the ceiling.

The LED Strip fixed from the ceiling sends out animation and creates a visual rain effect.

In relation to the sound, there was a need for a means to produce various sounds, and the choices were SD CARD MP3 MODULE and RFID.

The SD Card MP3 module is suitable for exporting many sound files as a device that exports music files contained in the SD Card to speakers.

RFID is a kind of identification device, and RFID Module will receive the UID value of Token placed on itself. With RFID, we thought that machines could distinguish various things and that interesting interactive was possible.

Using this principle, the work is driven like an image.

The ceiling is usually located at 2.5-4m, so the recommended LED length is 1M-1.5M. When using ws2812b standard LED without processing, about 100 to 130 LEDs are used. If it is shorter than this, there may be a problem in the animation.

For the production of the work, after explaining each part in the order of RFID, MP3 Module, and LED Animation, after producing it comprehensively, we will explain other production methods.

Step 4: Guide RFID Module

* Working Test RFID Module ( step 4 - 1 )

RFID consists of a token with a unique UID and part of an RFID module (antenna) that receives the UID. Follow the steps below to verify the RFID operation and UID verification of each token.


Connect to each part of the Arduino.

Download the RFID-522 library from the link RFID-522 Library ( * If you use a different RFID module, you may need a different library for that module.

After running the Arduino program, include the library you downloaded as an additional ZIP library for sketching additional libraries. Then install the file-Example-MFRC522 -Dumpinfo code.

*Check your card UID ( step 4 - 2 )

When you open the Tools-Serial Monitor, a message appears on channel 9600.

Place the token or card provided when purchasing the RFID module on top of the module. You need to read the token information, like the image information.

In the information read, note down the received UID as shown in the image.

Each token has a unique UID and an 8-digit value in hexadecimal. The UID is used later to send other MP3 files from the MP3 module.

* Warning

금속물질의 경우 RFID의 인식을 방해합니다. 비전도물체를 사용하거나 중간에 비전도물체를 두십시오 자석이 있을경우 RFID가 불량해질수 있습니다

* If you use Arduino Mega or ETC

Check "Typical pin layout used" in a dumpcode.ino

Step 5: Guide MP3 Module

* Working test MP3 Module ( step 5 - 1 )

MP3 Module plays the role of transmitting the voice file in the memory to the speaker according to the specified command. The MP3 Module used is a DF Mini player, and the memory requires a separate SDcard mini size.

To check the operation, refer to the image and connect to each part of Arduino as below.

DF Mini Player RX = 7 DF Mini Player TX = 6


SPK_1 = SPK + SPK_2 = SPK-

* MP3 Folder making ( step 5 - 2 )

The SD card mini is recognized as USB with the computer using the SD card reader. For DF Mini player, recognized file extension is wav, mp3, wma file and file name should be 00xx (number) .mp3 (file format).

Example: 0001.mp3 or 0001 name mp3

If you do not follow the example format, the DF Mini player may not play audio files.

Install the DF Sound module library from the link in the same way as before. (

If you inserted mp3 files in the SD card, install the attached DF TEST code. The DF TEST code is a drive check code that executes the 0001.mp3 file at regular intervals. (See video and images)

* Randomly Play Audio ( step 5 - 3 )

1. SDCard에 폴더를 추가합니다 (폴더명은 두자리 숫자입니다.)

2. 추가된 폴더에 다수의 mp3파일을 추가합니다. (파일명은 0XX.mp3 혹은 00xx.mp3 입니다.)

3. df_random_test.ino의 하단부분을 확인해주세요

music = random(1,3); // install Audio file 001 ~ 003.mp3; // Play a mp3 file 001 ~ 003.mp3 (randomly)

Step 6: LED Animation (WS2812B) - 1

* Working Test LED Strips ( step 6 - 1 )

LED Strip is used to create a rainy environment. The animation was created using link animation.

Animation is progressed in a timer manner using millis without using delay. The reason for using these methods is that the mp3 module and the RFID module interact organically.

After installing the library, please install the attached code. After wiring like the picture, normal LED animation will be applied.

* Check your Current

LED Strip uses a lot of current. Use about 60miliA per LED

LED의 수를 파악하고 그에 맞는 Powersupply를 사용하세요

Power supply를 사용하지않고 너무 많은 LED를 사용한다면 Arduino가 damage를 받습니다

* Add Button & Change Color ( step 6 - 2 )

You can also change the color using the buttons to experience different colors.

Check the example code (button_LED)

The added code is as follows.

int buttonpin = A0;

int buttoninput = digitalRead (buttonpin);

if (buttoninput == 1)

{if (i == Index) // Scan Pixel to the right

{setPixelColor (i, 100,100,100);}

If you want to change the color of the button or add a button, modify that part.

*Coding Guide

1. Check Led PIN & Leds

NeoPatterns Stick(Quantity of Leds, LedPIN, NEO_GRB + NEO_KHZ800);

2. If you want change Colors

Stick.Scanner(Stick.Color(Red,Blue,Green), Speed);

: RGB = 0~255 / Speed = 1 ~ XX

Step 7: LED Animation (WS2812B) - 2

Step 8:

Step 9:

Step 10: Step 10 : Coding

* Confirmation code

1.Check the MP3 Player Pins (Step 5-1)

SoftwareSerial mySoftwareSerial (6, 7); // RX, TX by MP3 player

2. Volume Randomization (Step 5-3)

int vol;

vol = random (21, 28); // max 30

Set it evenly randomly.

The volume stays up to 30.

The volume is too loud or there is not enough electricity.

3.Check the UID (step 4-1)

if (content.substring (1) == "XX XX XX XX")

Please check your own RFID UID

4. Randomly play audio (5-3 steps)

a = random (1, 5); // random count 1 to 5

myDFPlayer.playFolder (2, a); // play random (1-5) mp3 files in the 0002 folder

a, you need to vary from 1 to 5. (The file name was consistent with 0001, 0002, 0003 ... mp3.)

5. Adding Buttons and Changing Colors (Step 6-2)

int buttonpin = A0;

int buttoninput = digitalRead (button pin);

if (buttoninput == 1) (if (i == Index) // scan pixel to the right

{setPixelColor (i, 230,104,40); }

If pressed, change the size of the (== 1) LED to (230.104.40)

6. Neo pattern stick (120, 5, NEO_GRB + NEO_KHZ800);

120 is the quantity of LEDs, 5 is connected to the Arduino.

7. Acceleration LED

If (Stick.Index <= 10)

{Stick.Interval = 120; }

else {int accel = Stick.TotalSteps-Stick.Index;

Stick.Interval = acceleration / 2; }

120 LEDs, the number moves from 6 to 1, 120 speeds.

If you reveal position 10, TotalSteps-Index / 2

Immediate (Total LED Count-Current LED Current Count) / 2