At the beginning of the COVID-19 outbreak I was given this handy automatic soap dispenser. With everyone coming up with different songs to sing while you wash your hands, I thought, there has to be a better way. I am a not a great singer and would rather hear the bands I love than try to match my voice to the Killers.
So, the Musical Soap Dispenser was born:
It’s a hacked Umbra Automatic Soap Dispenser with a speaker, MP3 circuit and micro controller. The Dispenser takes a microSD card with your favorite songs on it, each song is edited down to the chorus, playing 20 seconds while you wash your hands.
I have it loaded with three of my favorite hand washing songs:
1. Mr. Brightside by the Killers:
This is a re-enactment of my hand washing dance.
2. Africa by Toto:
3. Since You've Been Gone by Kelly Clarkson:
If you don't have an automatic soap dispenser, you can still build this, hop down to "Helpful Resources" to learn more.
To build the circuit, use the following hookup guide:
I always suggest building it on a breadboard first, especially if you intend to design your own PCB. If you plan to just manufacture the PCBs using the Gerber files below, you can skip this step.
Putting It Together
With your PCBs in hand it's time to assemble your dispenser. I've built a diagram that should help with part placement and attaching to the soap dispenser.
I'll be the first to admit I am not the greatest software developer. If anyone has suggestions here, I am totally open to comments/edits. I followed this tutorial by Nick Koumaris: http://educ8s.tv/arduino-mp3-player/. I ended up stripping it down significantly so that when you trigger the motion sensor on the dispenser you play the next song. After that song is finished, the song is paused.
The easiest way to program the Musical Soap Dispenser is to place your ATmega328p directly into an Arduino Uno, uploading the software, then removing the ATmega and placing it in the circuit.
Uploading new MP3s to your SD Card: https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299#target_6
DFPlayer Mini Specs: https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299#target_0
No Automatic Soap Dispenser?
Attach a limit switch or momentary button to the Soap Dispenser Data Line and Soap Dispenser Ground Line on the main controller board. Place the limit switch underneath the lip of the soap plunger so every time you press the plunger down it presses the button/limit switch!