Update: featured in HackADay:
and WIRED UK (May 2015)
Create your own automated tea maker! This inexpensive and small machine will submerge, stir and finally rise the teabag out the mug you have previously filled with boiling water when tea is ready, playing an alarm melody of your choice!
Although it is not a new concept (several similar machines can be found online with the same functionality), I tried to introduce two new features I haven't seen in the others: a nice looking case that one may want to display in their kitchen and a 'folded' mode to make it easy to travel with.
It comes with a 3 position toggle switch allowing three different modes: off and folded, ready and brewing!. When folded mode is selected, the blade will mode to upright position, providing a compact and safe way to travel with it. When the switch is moved to the middle position (ready) the blade will raise and remain still waiting for you to hang the teabag and place the boiling mug underneath. When the toggle hits brew!, the teabag will be dipped into the hot water, remaining there for the specified amount of time and stirring up and down a few times (default is 5x(50sec + stir), giving a total of approximately 5 minutes).
Just after hitting brew! mode and when tea is ready, a melody of your choice (edit the code as you wish!) will be played as a reminder alarm.
It was firstly intended as a present for my girlfriend, but then I though I would as well share the design here and participate in the Homemade Gifts Contest :)
Step 1: Materials and Tools
Basic electronics and soldering skills are needed. Although small cases will require cramming all the components together making the process a bit more difficult, larger cases will allow easier soldering and setup.
Here goes the list of materials:
- A case: anything big enough and with some stability so it doesn't fall when moving the teabag will do. I used an old wooden box I had lying around (17.5 x 8 x 6.5 cm), and painted white looks good enough. Of course, it is possible to build your own wooden case from scratch with the desired size or 3D print it ;) You may also want some carpenter pieces to make your box fancier, like hinges and chest locks.
- Arduino Micro or compatible board. Any other Arduino board will do as well, but considering their sizes and the fact that we only need a few pins and no large current drawing, Micro is the best suited. The project can be easily powered through USB cable and DC adapter.
- Micro servo motor big enough to support a wet teabag at the end of the stick (extra torque). I used a slightly large one to make sure it'd work, but probably there won't be any problems with the usual micro ones. They usually come with several blades, choose the flat and straight one.
- Small magnet speaker with two connecting wires, even the very small ones should produce sound audible enough for alarm purposes.
- 3 Position Mini Toggle Switch, the ones with 3 pins are perfect, as we don't need any extra channels (6, 9 pins). A 2K2 Ω resistor to make the life of the switch easier.
- State LED, any color any size you like :). We will also need an appropriate resistor to wire in series with the LED, you can use this website to calculate the resistor value (look at the voltage and current specifications of your chosen LED, keeping in mind that your Arduino provides 5V).
- Led bezel, to make it look pretty.
- A circuit board to solder the components, small enough to fit in your case and big enough to hold everything. Also wires, jumper wires may be confortable to use with the servo.
- Any kind of flat stick to attach to the servo blade, dimensions vary depending on your setup. A slit can be cut on the loose end to hold the teabag. I used a doctor stick (13.5 cm), the ones used with kids to have a look at their throat.
And finally, the list of tools:
- Soldering iron and solder wire
- Depending on the case, wood saw or dremel-like machine
- Thermal glue gun & sticks
Step 2: Prepare the Case
This step is quite subjective as it depends entirely on your choice of case. I can tell what I did with my wooden box: it came in two pieces, the box itself without the top and the top, then it look like a good idea to attach the top using a couple of small hinges and two locks, this will allow easy access to the insides, making things easy to repair or brag about. I also sanded and painted the box white.
The wood was quite easy to cut, so using a stiff knife and cutter knife I worked out the rectangle for the servo, the imperfections worn out using sandpaper again. The servo can easily be attached using screws that usually come with it. Three holes had to be drilled as well to place the LED and the switch (both were fixed using nuts that usually come with them again) and the power cable.
Step 3: Prepare the Circuit Board and Place the Components
Find attached the schematics, keep in mind that depending on your choice of Arduino, the pin distribution may vary, just locate the appropriate pins and rewire accordingly.
Your Arduino should fit in the circuit board, and a trick that saved me some time is to insert the wires in the same board hole as the corresponding Arduino pin, that way the whole board fits tightly and it is enough to solder a few pins to get a stable and safe circuit.
Note: you may need to change the LED resistor as mentioned in the Materials section.
Note: you may want to change pins, anything between D1 and D13 (or the digital pins available) should work just changing the pin declarations in the code.
Once everything is soldered and placed, it is time to fix the components into the case. Most of circuit boards come with corner holes that can be easily used to screw it to the inner part of the case. Led bezel and switch are fixed using bolts & nuts.The speaker can be fixed to the inner wall using a blob of thermal glue.
Step 4: Load Arduino Code
Find attached the Arduino code my board runs, also in GitHub. You may have to adjust some details:
- Pin numbers: if you wired everything exactly as in the schematics, there should be no trouble with this. For space or convenience reasons you may change any pins you want, just make sure you assign the correct number at the beginning of the script.
- Servo positions: depending on the servo you use, some of the values may change. The code uses four different values: brewingVal, readyVal, movingVal, offVal; corresponding to: stick lowered brewing, stick raised waiting, intermediate upper position to stir the tea, folded off position (respectively). Depending on how tall your case is and your servo, you may have to adjust these a bit.
- Alarm tone: will play just before and after brewing, melody can be chosen adding notes to the playing list, as specified in the code.
Make sure to select the appropriate Arduino board before uploading the sketch!
Note that, albeit the code worked perfectly for me, it can be improved. Specially the switch part, it would be useful to add some debounce time to avoid undesirable irregularities. Anyway if the connections are stable and you move the toggle precisely there are no problems (in my device at least).
Step 5: Test and Debugging
Now the Tea Maker should be ready to roll!
With the sketch loaded into the Arduino and all the pieces set up in the case, it is time to test and debugging:
- Probably the trickiest part is to set the blade properly, so that in the off/folded position it stands in a nice upright position, and the position values for the other states fit nicely the dimensions of the case and the mug you will use. To do this I recommend powering the device and setting the state to folded, then place the blade upright, if it stays in a weird angle, just modify slightly the offValue in the code so that you get the desired vertical blade (you can see in the video that mine is not perfectly upright, but tilted to one side, sadly I burned the loader of my board so I couldn't upload any new sketches and set proper value for offVal, the only solution being replacing the Arduino and solder everything again, but given that Christmas was drawing closer and it didn't look very bad, I left it like it is :)
- Make sure that the switch works properly without interferences, power the Arduino on with the switch in off position, then toggle it to the middle position, the led should light up and the blade raise to ready position.
When everything is working just seat back and enjoy your cup of tea!
Thanks for reading and looking forward to see your designs if you decide to give it a try :)