Festive Interactive LED Wreath with Music and Motion Magic

Table of contents

Festive Interactive LED Wreath with Music and Motion Magic

Abstract

This project presents an advanced interactive LED wreath designed to elevate holiday decor with dynamic lighting effects and synchronized audio playback. Built around the Arduino Uno microcontroller, the system incorporates a Seeed Serial MP3 Player, Grove PIR motion sensor, and WS2812B addressable LEDs. The motion sensor detects nearby movement, triggering vibrant lighting patterns and festive music to create an engaging and immersive experience. This interactive wreath combines simplicity and innovation,

Advanced Interactive LED Wreath with Music and Motion Detection

1. Introduction

This report outlines the design and implementation of an advanced interactive LED wreath. The project combines vibrant lighting patterns and synchronized audio playback to create an engaging holiday decor piece. The system utilizes an Arduino Uno microcontroller, WS2812B addressable LEDs, a Grove PIR motion sensor, and a Seeed Serial MP3 Player.

The idea for this project struck me when I was brainstorming ways to create a decoration that was both captivating and minimalistic. A wreath seemed like the perfect centerpiece for holiday decor, and I initially planned to install LEDs to create a visually appealing display. However, as I delved deeper into the concept, I realized that adding a musical element would significantly enhance the interactive experience. This led to the integration of a Seeed Serial MP3 Player, making the project both visually and audibly engaging. This project demonstrates the creative application of accessible electronics for festive decoration, blending simplicity with interactivity.


2. Objectives

  • To design an interactive LED wreath capable of detecting motion and triggering dynamic lighting effects.

  • To synchronize audio playback with the lighting patterns for a cohesive festive experience.

  • To showcase the integration of affordable and versatile components in an innovative décor solution.


3. Components and Materials

  • Arduino Uno: Serves as the central control unit for managing input and output signals.

  • WS2812B Addressable LEDs: Provides customizable and vibrant lighting patterns.

  • Grove PIR Motion Sensor: Detects movement and triggers the system’s response.

  • Seeed Serial MP3 Player: Plays holiday-themed audio tracks synchronized with the lighting.

  • Power Supply: Powers the entire system.

  • Wreath Frame: The physical structure for mounting components.

  • Wires and Connectors: For electrical connections between components.

  • Miscellaneous: Adhesives, mounting hardware, and insulation materials.


4. System Design

4.1 Hardware Setup

The hardware setup involves assembling the components onto the wreath frame. The PIR motion sensor is strategically placed to detect movement from a wide angle. The WS2812B LEDs are arranged around the frame to provide uniform and vibrant lighting. The Arduino Uno connects to the PIR sensor, LEDs, and MP3 player module through defined pins. The connection is as shown in the figure below

image

Since i am using the grove type sensor, i thought it would be easier to use the Arduino grove header. The image below show the actual connection.

imageimage

As for the base or the holder i have 3D printed it. The design is available online. 

image

There are total of 6 unites needed to be print.

image

Once all are printed, can assemble it together and start to install other hardware as well. The image below shows the stages involved in building the hardware part

{gallery}Festive 2025

REPLACE THIS TEXT WITH YOUR IMAGE

IMAGE TITLE: THEN IMAGE DESCRIPTION

REPLACE THIS TEXT WITH YOUR IMAGE

IMAGE TITLE: THEN IMAGE DESCRIPTION

REPLACE THIS TEXT WITH YOUR IMAGE

IMAGE TITLE: THEN IMAGE DESCRIPTION

4.2 Software Design

The Arduino sketch manages the system’s functionality. Key functions include:

  • Motion Detection: Reads input from the PIR sensor to determine activity.

  • LED Control: Generates dynamic lighting patterns using the FastLED library.

  • Audio Playback: Communicates with the Seeed Serial MP3 Player to play specific audio files.

  • Synchronization: Ensures lighting effects and audio playback are triggered simultaneously for a cohesive experience.

#include "WT2605C_Player.h"
#include <SoftwareSerial.h>
#include <Adafruit_NeoPixel.h>

SoftwareSerial SSerial(2, 3); // RX, TX
#define COMSerial SSerial
#define ShowSerial Serial
WT2605C<SoftwareSerial> Mp3Player;

#define PIR_MOTION_SENSOR 5
#define LED_PIN    4
#define LED_COUNT 60

Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup()
{
  pinMode(PIR_MOTION_SENSOR, INPUT);
  ShowSerial.begin(9600);
  COMSerial.begin(115200);
  Mp3Player.init(COMSerial);

  strip.begin();           // INITIALIZE NeoPixel strip object (REQUIRED)
  strip.show();            // Turn OFF all pixels ASAP
  strip.setBrightness(100);
}

void loop()
{
  if(digitalRead(PIR_MOTION_SENSOR))
  {
        Serial.println("Hi,people is coming");
        Mp3Player.volume(10);
        Mp3Player.playSDRootSong(1);

        theaterChaseRainbow(50); // Rainbow-enhanced theaterChase variant
        delay(15000);
  }
    else
        Serial.println("Watching");
        Mp3Player.stop();

 delay(200);  
  
  
}

// Rainbow-enhanced theater marquee. Pass delay time (in ms) between frames.
void theaterChaseRainbow(int wait) {
  int firstPixelHue = 0;     // First pixel starts at red (hue 0)
  for(int a=0; a<30; a++) {  // Repeat 30 times...
    for(int b=0; b<3; b++) { //  'b' counts from 0 to 2...
      strip.clear();         //   Set all pixels in RAM to 0 (off)
      // 'c' counts up from 'b' to end of strip in increments of 3...
      for(int c=b; c<strip.numPixels(); c += 3) {
        // hue of pixel 'c' is offset by an amount to make one full
        // revolution of the color wheel (range 65536) along the length
        // of the strip (strip.numPixels() steps):
        int      hue   = firstPixelHue + c * 65536L / strip.numPixels();
        uint32_t color = strip.gamma32(strip.ColorHSV(hue)); // hue -> RGB
        strip.setPixelColor(c, color); // Set pixel 'c' to value 'color'
      }
      strip.show();                // Update strip with new contents
      delay(wait);                 // Pause for a moment
      firstPixelHue += 65536 / 90; // One cycle of color wheel over 90 frames
    }
  }
}


5. Testing and Results

5.1 Testing

  • Motion Detection: Verified the PIR sensor’s sensitivity and detection range.

  • LED Patterns: Tested various lighting effects to ensure smooth transitions and vibrant colors.

  • Audio Playback: Confirmed correct audio file playback and volume levels.

  • System Integration: Ensured seamless synchronization between lighting and audio when triggered by motion.

5.2 Results The system successfully detected motion and triggered synchronized lighting and audio. The interactive LED wreath met the design objectives, providing a festive and engaging experience.

Both the video above shows the demo of the Wreath. 


6. Challenges and Solutions

  • Synchronization Issues: Refined code timing to achieve better coordination between lighting and audio.

  • Component Mounting: Used adhesive and cable ties to secure components onto the wreath frame without obstructing functionality.

Attachments

References

https://cults3d.com/en/3d-model/home/big-spring-flowers-lego-wreath

Arduino Uno Documentation: https://www.arduino.cc

WS2812B LED Datasheet

Seeed Serial MP3 Player Documentation

Grove PIR Motion Sensor Documentation



Category : project