The app after an alarm (either for time or for tea strength) has been triggered.
The app when no jug has been placed and so water cannot start boiling yet.
The app when no brew command has been recently sent.
The app while the water is boiling (negative time, indicating progress towards "pouring" point)
The app after the water is done boiling (positive time, indicated progress after "pouring" point)
Our team has a shared love of strong tea. The trouble with this is that brewing tea for a long time requires two trips to the kettle, separated by an awkward-length gap, when it's impossible to do anything useful. Even worse, there is a danger of forgetting about the tea and massively over-stewing it, leaving only a cold, bitter sludge to drink. While thinking about these issues, we decided that we should make a solution to allow remote brewing of tea, over a network.
What it does
IoTea consists of an automatic pouring kettle with a servo attached that flips the boil switch. Via a web interface, the user can brew new pot of tea remotely, and view brewing-related stats such as temperature and colour of the tea.
We use an RFID tag attached to the teapot to detect its presence under the kettle, which allows the user to tell whether brewing is possible. The webapp will also notify the user when their tea has finished brewing, either by the length of time since the water boiled or by the desired final colour of the tea.
How we built it
The kettle is a commercial off-the-shelf self-pouring model with an Arduino attached that controls the servo (to switch on the boil) and sensors for tea temperature, colour and the RFID reader for teapot detection. The readings to these sensors are sent to a server written in D, that provides a REST API to control the kettle's functionality remotely. The web frontend is written in ReactJS, and performs all of the API requests to brew tea, and collect stats about the tea, presenting these nicely to the user.
Challenges we ran into
- It turns out to be surprisingly difficult to flip a simple switch automatically using a servo.
- There were some dodgy hardware bugs with the Arduino's sensors.
- Dependency nightmares with dlang for the server backend.
Accomplishments that we're proud of
- Getting the whole system integrated and working, when it contains so many parts.
- Building the sturdy frame of the kettle on which to mount sensors (which took a long time).
What we learned
- Components can be tricky to integrate, even if they work well separately.
- Always develop on the system you will be running the code on - porting things can be nastier than you think.
What's next for IoTea?
- Automatic loading and removing of teabags.
- Brewing of different tea varieties.