1 / 2
Kloparty Boombox — image 1
1 / 2

Kloparty Boombox

Order a print of this model

We calculate the final price from your selected file. You review and accept it before payment.

Saved on this device.

Model information

Category
Bathroom
License
Creative Commons — Attribution

A party speaker for the bathroom, integrated into the Home Assistant to turn on and off automatically with the lights. See it live in action here:

 

Here's the sources for all the parts on German Amazon:

Perfboard https://amzn.to/3Yb5DyF

D1-Klon https://amzn.to/4eM3e4i

DFPlayer-Klon https://amzn.to/4h94jVG

PAM8403-Board https://amzn.to/48cicyk

3W-Minilautspecher https://amzn.to/486xxAn

Mikrotaster-Sortiment https://amzn.to/48bP2iv

WS8212B-Lichterkette 144 LEDs/m https://amzn.to/4dN8fZd

Draht mit Silikonmantel https://amzn.to/3Y9qgLC

 

For v2, print the case and labels STL as one part with multiple materials, the case color being a bit transparent to make the labels shine through.

 

ESPHome-Configuration:

esp8266:
  board: d1_mini

api: services:

  • service: dfplayer_set_volume variables: volume: int then:
    • dfplayer.set_volume: !lambda 'return volume;'

uart: tx_pin: D2 rx_pin: D6 baud_rate: 9600

dfplayer:

binary_sensor:

  • platform: gpio pin: number: D7 inverted: True mode: input: true pullup: true name: "Vol-/Pause" on_multi_click:
    • timing:
      • ON for at most 0.5s
      • OFF for at least 0.2s then:
      • dfplayer.volume_down
      • logger.log: "Vol- pressed"
    • timing:
      • ON for at least 1s
      • OFF for at least 0.2s then:
      • if: condition: dfplayer.is_playing then: - dfplayer.pause:
        - logger.log: "Pause pressed" else: - dfplayer.start:
        - logger.log: "Play pressed"
  • platform: gpio pin: number: D5 inverted: True mode: input: true pullup: true name: "Vol+/Skip" on_multi_click:
    • timing:
      • ON for at most 0.5s
      • OFF for at least 0.2s then:
      • dfplayer.volume_up
      • logger.log: "Vol+ pressed"
    • timing:
      • ON for at least 1s
      • OFF for at least 0.2s then:
      • dfplayer.play_next

switch:

  • platform: template name: "Play" optimistic: True id: track2 turn_on_action: then: - delay: 1s - dfplayer.random: # folder: 1 # loop: true turn_off_action: then: - dfplayer.stop

light:

  • platform: neopixelbus variant: WS2812 pin: D3 num_leds: 30 type: GRB id: right name: "Light" effects:
    • addressable_rainbow: name: Rainbow speed: 10 width: 30 on_turn_on:
    • light.turn_on: id: right effect: "Rainbow"

Tags