2019 Communications Dept. Graduation Project
🌐 中文版:繁體中文

Preface:
Honestly, when first choosing an advisor I didn’t think much about it; I just wanted a relaxed one. I remember my thinking was “for our school, prepping for grad school to transfer to a better school ASAP matters more,” so I didn’t pick a harder topic/advisor, lol. So in the end I found the most relaxed advisor in the whole department, whose project topic was Arduino every year (probably to save money and time, and because it barely needs teaching). 6 project students split into 3 groups of 2.
“Arduino + App remote control”, with other topics you package yourself.
Since the tech is simple and the architecture clear, it seemed the competition was about creativity and ideas. One afternoon, my teammate and I were going to buy drinks, and I suddenly had a flash of inspiration: wouldn’t it be cool if the bubble-tea cups and drinks on the market could be auto-mixed and wirelessly controlled!!!
So our project, the “Smart Drinks machine,” was born.
Concept
We split the goal into a few parts and solved them one by one:
App + Wifi connection + a method to move the drink + the machine body
Since the method of moving and mixing drinks is key and affects the whole body design, we first designed the drink-mixing method (how to do it, how to design it).
Dispensing and mixing method:
We planned to use a container to hold the drink ingredients, with a hole in the container’s bottom, and a cardboard glued below the bottom, also with a hole, but the container hole and cardboard hole are initially misaligned. A servo motor controls the rotation angle to align the cardboard hole with the container hole, and the contents fall out naturally.

So with this dispensing method, the container must have a certain height, so the body design must consider this. Predictably, the drink cup must move along the bottom to dispense, and finally add water.
Movement method:
Design an X/Y axis slide (like the moving bar on top of a claw machine) to let the drink cup move back/forth and left/right.
After roughly planning how to dispense and move, we started designing the body.
Body design:
We cut and assembled using cheap, eco-friendly pine boards.

Since we had no woodworking experience, we spent a long time on the woodwork (woodworking has been added to the handyman skill set), lol. Then we built the top dispensing can and servo motor:
- Dispensing can: any can (with a lid), with a hole in the bottom and a hole in the red lid (you can design the hole shape yourself)

Then cut a fan-shaped hole slightly larger than the red lid’s hole in a cardboard or foam board, and pass a small screw through the cardboard and container board (for easy rotation)
- Servo motor: fixed on the side of the upper board, glued to the cardboard

To prevent the container from rotating when the servo motor turns, use hot glue to fix the wire and the dispensing can to the board.

With that, the dispensing-can structure is basically done; then repeat it 3 times, since we set up 3 dispensing cans.
We started building the most troublesome part, the X/Y axis slide:
Materials: stepper motor x 2, screw shaft x 2 (or just order lead screws online), bearing seat x 4, cable ties, bearings x2, iron rod x 2
Cut suitable wood, drill holes, insert the iron rod and the screw shaft + stepper motor (*before inserting the screw shaft you must insert a bearing to avoid the screw shaft spinning the board out when it turns), and finally insert the bearing seats to carry the X axis; the X axis is done the same way.
The biggest problem we hit was: the X axis was too heavy to support, so the whole bearing seat would jam and couldn’t turn. We later temporarily solved it with a small toy car for support.

With that, the drink-machine body was also done!!
Hardware wiring:

Components used:
1 | - NodeMCU |
Idea: the NodeMCU receives commands to control 4 relay switches, each relay connects to an Arduino board’s power, each Arduino board corresponds to one drink, with pre-flashed code inside the Arduino; when powered on it automatically runs the dispensing and drink-mixing program.
ps. The figure above only implements one Arduino board.
ps. Each Arduino board must connect to a relay controlling a submersible pump.

The water-pipe position is the drink’s start and end point (dispense ingredients, return to position, add water).

NodeMCU wiring:
1 | - 4-channel relay |
Watch the voltage distribution
Arduino code:
1 | Arduino code: |
To dispense a drink from the back row, you must first move the Y axis to the back row, then move the X axis to a fixed point, then the servo motor turns to dispense, then move the X axis back to position, move the Y axis to the start position to add water, and finally start the pump to finish.
The program must adjust the delay times based on the container positions, ingredient-dispensing time, and water amount, and the front row doesn’t need to move the Y axis.
NodeMCU code:
1 |
|
Phone side
I didn’t know how to write a mobile app back then :(, so I used the simple MIT App Inventor to make it.



Actual operation
- Fill the containers with ingredients
- Fill the water container with water
- Turn the power supply on
- Connect the phone to the Wifi AP
- Open the app and choose the drink you want
- Wait for the machine to finish
Overall view
There’s also an LED marquee
Closing
This project has many things that could be improved, from equipment selection to motor stability.
Although Arduino really is simple, with enough ideas the possibilities are endless.
Future development
- The top ingredient cans could be designed to be detachable
- A stirring module could be designed (a DC motor with a popsicle stick or something, lol)
- Waterproofing design
- Redesign the app with Android Studio, for more flexibility
- Directly buy a module combining ESP8266 and a relay (I only found out later this exists)
- Voice recognition, no app needed
- Heater: to brew with both cold and hot water


