P07 - Automated Tea Infuser
As part of a semestral project, we decided to build an automated tea infuser.
The need for a such device stems from the diversity of the different types of tea and, of course, the individual preferences for tea infusing.
One of the possible use cases occurs in a situation where the user forgets to pull out the tea bag after a certain time. This is an unpleasant situation, where in most cases the user is disgusted and unnecessarily wasted, as the user does not like the brewed tea, or the tea is too strong, which is caused by the high degree of brewing.
The second use case is usability and convenience when using an automated infuser. A common scenario is a situation where the user is in time distress. It is necessary not only to pour hot water over the tea, but also to guard the time needed for brewing. This creates an unpleasant situation where the user, most often in the kitchen environment, is dependent on an approximate time tracking via an analogue clock, as the smartphone with a timer may be in another room. At the same time, keep in mind that the time constraint increases every minute. Time tracking thus increases the user's aversion to the activity and reduces the overall enjoyment of the beverage preparation.
Another use case may involve a situation where the user pours the tea but forgets about the tea.
It is also necessary to keep in mind the wide range of tea enthusiasts who need to know the water temperature and set the exact brewing time when preparing tea.
The proposed embedded system would be able to cover all these use cases, while allowing users to set the tea brewing time, after which the tea bag would be automatically removed from the cup. At the same time, after removing the bag, the embedded system would notify the user to end the tea brewing. In addition, during the process, the embedded system would show the cup temperature on the display.
The requirements specification section summarizes the functional and non-functional requirements for the resulting embedded system.
- the embedded system should allow the user to set the timer value in 10-second increments,
- the embedded system should allow both the increase and decrease of the timer value during the timer setting process,
- the embedded system should load the cup temperature at regular intervals and display it on the LCD display,
- the embedded system should update the timer value at regular intervals and display the number of minutes and seconds remaining on the LCD.
- the embedded system should ensure that the tea bag is removed from the cup after the timer expires,
- the embedded system should notify the user using an audible notification when the timer expires, and the tea bag is removed from the cup.
Non - functional requirements
- the embedded system should be robust enough to withstand incorrect user input,
- the embedded system should be safe enough so that the user does not suffer any damage to health or property as a result of its use,
- the embedded system should be usable by the user, the individual actions should be sufficiently predictable and easy to use.
The following components will be needed for the project implementation:
- Microcomputer Arduino Uno Rev3
- LCD display 16x2 with yellow backlight and I2C module
- Keypad 4x1
- Non-soldering contact field (breadboard) 400 points
- Servo SG90
- Servo SG90 - 360° - continuous
- Active buzzer on board
- LM35 temperature sensor
The total amount for the components needed to implement a functional prototype is 42.7 € excluding shipping costs and a 9V AC-DC power adapter that we have available.
Besides components, the following material is required for implementation:
- Jumper cables M-F
- Jumper cables M-M
- Insulation material
- Tin solder
- Resistor set
Also, for the implementation of the project, it is advisable to have a soldering iron or a soldering station.
The library allows you to communicate with the I2C bus. In firmware, it is only used during I2C bus scanning.
The library is used to control the LCD display connected via the I2C bus. The interface is similar to the standard LiquidCrystal library. Working with the library is simple and allows the use of displays of various sizes, the size of which must be set when initializing the library.
The library allows you to work with the keyboard. As with the LCD library, a keyboard of various sizes can be used with the Keypad.h library.
To work with the servo drive, we decided to use the Servo.h library, which greatly simplifies the work. For proper operation, it is necessary to connect the drives to the PWM outputs of the microcomputer.