Sounds of Bali — Interactive Sound Lamp

by kannasadha in Circuits > Arduino

50 Views, 1 Favorites, 0 Comments

Sounds of Bali — Interactive Sound Lamp

32e5f419-28d7-4cc1-915f-cecba26ce3ab.jpeg
071bffbb-3448-4f3a-b00c-c954826d5620.jpeg

Click a location on a illustrated Bali map to trigger traditional music and LED mood lighting — all controlled from your browser via Arduino

Supplies

WhatsApp Image 2026-06-16 at 1.57.58 AM.jpeg

Supplies

  1. Arduino UNO
  2. DFPlayer Mini MP3 module
  3. NeoPixel Ring (12 LED WS2812B)
  4. MicroSD card (any size, FAT32)
  5. Speaker (4Ω or 8Ω, 1–3W)
  6. Breadboard
  7. Jumper wires (at least 8)
  8. USB-A to USB-B cable (Arduino cable)

Software

  1. Arduino IDE
  2. Google Chrome or Microsoft Edge (any browser)
  3. Python 3

Install the Arduino Libraries

Open Arduino IDE → Tools → Manage Libraries. Search and install:

  1. DFRobotDFPlayerMini by DFRobot
  2. Adafruit NeoPixel by Adafruit


Wire the DFPlayer Mini to Arduino

step2_dfplayer_wiring.png

Connect DFPlayer Mini directly to Arduino

2.1 — Power first

Take your red wire:

  1. One end → Arduino 5V pin
  2. Other end → DFPlayer Mini Pin 1 (VCC) — this is the very TOP pin on the LEFT side

2.2 — Ground

Take your black wire:

  1. One end → Arduino GND pin
  2. Other end → DFPlayer Mini Pin 7 (GND) — count 7 pins down from the top on the LEFT side

2.3 — TX (receive)

Take your yellow wire:

  1. One end → Arduino Pin 10
  2. Other end → DFPlayer Mini Pin 3 (TX) — 3rd pin from top on LEFT side

2.4 — RX (send)

Take your green wire:

  1. One end → Arduino Pin 11
  2. Other end → DFPlayer Mini Pin 2 (RX) — 2nd pin from top on LEFT side

2.5 — Speaker

Take 2 white wires:

  1. Wire 1 → DFPlayer RIGHT side, 6th pin from top (SPK2) → Speaker wire 1
  2. Wire 2 → DFPlayer RIGHT side, 8th pin from top (SPK1) → Speaker wire 2


Wire the NeoPixel Ring

step3_neopixel_wiring.png

The NeoPixel gets its power from the breadboard rails, which connect to Arduino 5V and GND.

3.1 — Breadboard power rails

Take 2 wires:

  1. Red wire → Arduino 5V → breadboard red rail (+)
  2. Black wire → Arduino GND → breadboard blue rail (−)

3.2 — NeoPixel power

Take 2 wires:

  1. Red wire → breadboard red rail (+) → NeoPixel 5V
  2. Black wire → breadboard blue rail (−) → NeoPixel GND

3.3 — NeoPixel data

Take your orange wire:

  1. One end → Arduino Pin 6
  2. Other end → NeoPixel DIN


Prepare the SD Card

step4_sd_card.png
Screenshot 2026-06-16 at 10.21.05.png

Format the SD card as FAT32, create the mp3 folder, and add the attached 5 audio files.

Upload the Arduino Code

Open the attached Arduino IDE file. select Arduino UNO as board, select the correct port, then click Upload.

Run the Web Interface

step6_web_server.png

Open Terminal, navigate to your project folder, and start a local server.


What you need in your project folder:

your-folder/

├── bali_map_final.html

└── bali_logic.js

(Both files must be in the same folder!)


Open Terminal and run:

cd "/Users/YOUR_NAME/Downloads/design thinking final"

python3 -m http.server 8000

(Replace YOUR_NAME with your Mac username. Leave Terminal running — don't close it!)


Then open Chrome and go to:

http://localhost:8000/bali_map_final.html


To connect Arduino to the website:

  1. Click the "Connect Device" button in the top right of the page
  2. A popup appears listing available ports
  3. Select your Arduino (shows as "USB Serial" or "usbserial")
  4. Button changes to "Connected"

(Rememeber to close Arduino IDE file before connecting the website)


Project File:

https://drive.google.com/drive/folders/1wR1Oucf1sTg1MkUdbs5VI_xL_oJUegCg?usp=sharing

Connect and Play

step7_how_it_works.png

Click "Connect Device", select your Arduino, and start clicking locations on the map!

(Optional) Create a Mood Lamp Casing

8263e7e5-cc5d-4222-95dd-0c2b4e954d1b.jpeg
eb4910f0-f773-4b44-ba47-68c5a82bad9b.jpeg

In my case I used rattan strips and hanji paper (a thin Korean handmade paper) to build the lamp casing. The NeoPixel ring sits inside and shines through the hanji paper, which diffuses the light into a soft glow. The rattan gives it structure and lets sound pass through naturally.

Any casing works: 3D printing, wood, bamboo, cardboard, fabric over a wire frame & others choices