Automated Drink Dispenser With Light & Sound Feedback
by hwangjin in Circuits > Raspberry Pi
46 Views, 1 Favorites, 0 Comments
Automated Drink Dispenser With Light & Sound Feedback
This project is an automated drink dispenser built on a wheeled tank platform. It features 3 large cups and 1 water tank as liquid reservoirs, 4 mini submersible pumps that move liquid through silicone tubes into a cup, and NeoPixel LED strips for robot feedback output.
Press one of 5 buttons to choose your drink — the machine handles the rest. When dispensing is complete, the LEDs flash and a melody plays to let you know your drink is ready.
Available drinks:
- White Monster
- Apple Juice
- Caffeine Bomb (Monster + Coffee)
- Caffe Americano
- Mineral Water
Built on a Raspberry Pi Pico 2W running CircuitPython, with 4 pumps controlled via an L298N motor driver, NeoPixel strips for visual feedback, and an MP3 speaker for audio notification.
Downloads
Supplies
- Raspberry Pi Pico 2W ×1 https://www.adafruit.com/product/6315
- L298N Motor Driver Board ×2 https://www.amazon.com/HiLetgo-Controller-Stepper-H-Bridge-Mega2560/dp/B07BK1QL5T
- Mini submersible aquarium pump (5V) ×4 https://www.amazon.com/ALAMSCN-Submersible-Aquariums-Fountain-Hydroponics/dp/B08PBQ1N1G
- NeoPixel LED Strip ×2 https://www.adafruit.com/product/2538
- Small buttons ×5 https://www.adafruit.com/product/1010
- Mono Enclosed Speaker - 3W 4Ohm ×2 https://www.adafruit.com/product/3351
- Food-safe silicone tubing 5mm ID ×1 https://www.amazon.com/Quickun-Silicone-Tubing-Flexible-Transfer/dp/B0852J5JQJ
- Dupont jumper wires
non-electronic parts
Any liquid container
Hot glue + zip ties
1/8th inch birch wood laser cut parts
3D printed movable wheel
Downloads
Building the Structure
Design the Laser-cut enclosure
Design a hexagonal box using Boxes.py — it's free and generates ready-to-cut SVG files automatically. Add cutouts for 5 buttons, a USB-C cable hole, and a speaker grille pattern on one face before cutting.
3D Print the wheels that is going to be on the machine and paste it onto the hexagonal box using hot glue
Solder the Buttons
Solder pin-to-pin wires onto each of the 5 buttons. For each button — one end is connected to ground and one end is connected to signal. Once soldered, push each button through its hole on the button mounting plate from the inside and secure it using hot glue.
Wire the L298N Motor Driver
Connect two L298N boards to the Pico 2W and pumps as shown below.
Wire Buttons and NeoPixels
Upload the Code
Troubleshooting
Pump not spinning:
- Check L298N red LED is on (power OK)
- Check ENA and ENB jumpers are still on the L298N board
- Test with minimal code: set IN1=True, IN2=False for 5 seconds
- If spinning backwards, swap OUT1 and OUT2 wires on that pump
Water looks oily:
- New pumps have factory lubricant — flush with clean water 2-3 times before use
- If oiliness persists, label drinks as display only
Buttons not working:
- External buttons use Pull.UP — reads False when pressed
- Check SW (NO) → GPIO, SW (COM) → GND
- Run button test: print(button.value) in a loop
Speaker too loud:
- Lower duty_cycle value from 2000 to 500-1000