Excellentea is an automatic tea maker. The user can operate the machine remotely through an online interface. In other words, you can order your tea, by chosing from several modes, as you leave work and find it ready when you get home. An LCD display provides feedback of the progress status.
The application requires the user to have Apache and php installed on their Raspberry Pi. Use your favourite package manager to install the packages apache2 and php or, alternatively, open the terminal and use the commands below.
sudo apt-get update
sudo apt-get install apache2 php libapache2-mod-php -y
The One-wire and I2C protocols must be activated for the application to work. Run the following command:
sudo raspi-config
and navigate to Interfacing options to enable I2C and 1-Wire.
Clone the repository to your Raspberry Pi and run the following commands:
./configure
make
make install
Initialise and start the apache web interface (change the default pi with your user name):
sudo chown -R pi /var/www/html/
rm /var/www/html/index.html
cp GUI/* /var/www/html/
sudo reboot
Find your local IP with:
hostname -I
The program can then be started by running the command
sudo excellentea
from the terminal, and the web interface will be available at the IP address found previously. The web interface can then be accessed by external hosts by enabling router port forwarding.
-
Load your cup with water
-
Load your tea infuser with the tea of your choice
-
Activate the tea maker from the online user interface
-
Choose the brewing mode of your tea
-
Wait...tea is ready:)
Watch Excellentea in action:
An in-depth description of the project can be found on our wiki. The following sections will briefly describe the main components and their implementation in the overall design.
- 1 Raspberry PI microcontroller board (tested on version 3 Model B)
- 1 Stepper motor (MIKROE-1530)
- 1 Digital temperature sensor (ds18b20)
- 12V DC power supply
- 1 heating element (12V) (B004O8BGXE)
- 1 tea infuser
- 1 reed float sensor (59630)
- 2 Darlington transistor array (ULN2803A)
- LCD
- 2 N-channel logic-level MOSFET (FQP30N06L)
- MOSFET heat sink (507222B00000G)
The project also requires standard passive components (e.g. resistors), prototyping tools (e.g. breadboard/pcb) and materials for the encasing. Check out our wiki for details.
The digital temperature sensor DS18B20 communicates with the board through the one-wire protocol on pin 7 (BCM4). The reed float sensor only outputs two-states so a communication protocol is not required.
The software was written to reflect the data flow depicted below. The float switch is used as a safety feature to ensure that the heating element cannot be switched on in the absence of water. Once the cup is full of water, the program will wait for a user interaction through the web interface. The main program will receive the signal to initiate the tea making procedure, using a temporary communication file, with two main parameters, the brewing temperature and the brewing time. The heating element is turned on and the temperature is monitored periodically via the sensor on the One-wire bus. Once the temperature reaches the desired value, the heating element is switched off and the preloaded tea infuser is lowered by the stepper motor. Once the desired brewing time has elapsed, the stepper motor rewinds the strainer and the tea is ready. Full software documentation can be found here.
- Andrea Spanou - Initial work
- Ciaran McGeady - Initial work
- Simone Marcigaglia - Initial work
See also the list of contributors who participated in this project. Check out our Twitter page to be up-to-date with the latest developments!
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
This project is licensed under the MIT License - see the LICENSE file for details.
We would like to thank the weather in Glasgow for making us think about tea all the time.