Automatic Smart Coffee Maker With Arduino and Bluetooth
by Gyula Ősi in Circuits > Arduino
12975 Views, 122 Favorites, 0 Comments
Automatic Smart Coffee Maker With Arduino and Bluetooth
Smart automatic Coffee Maker with Graph, can be controlled
via Bluetooth... or just load fresh water, and the system will start automatically!
Every each parts are handmade and all of the functions are my own ideas.
I also coded a function called "Test Mode", so the controller can be
used as a multipurpose temperature meter with external temperature sensor.
How to start
- Autostart: in standby mode the system cyclically measures the temperature in the background. Loading fresh water causes temperature drop, and the system will start. This function can be enabled / disabled by sending "auto" from Smartphone, and the setting will be stored in the EEPROM memory.
- Press button: to start / interrupt coffee making, or exit Test Mode.
- Send "start" message from your smartphone, or "stop".
Supplies
Developed on Arduino Nano / Uno, uses ST7920 display,
HC-05 Bluetooth adapter, Dallas DS18B20 temperature sensor, relay to control the heater coil, button with leds, buzzer and a CD4017BE decade counter drives the LED bar.
Video
Show all working ways, how its made, how it looks like...
One Time Analysis During Coffee Making
After 60 seconds from start the MCU compares the stored initial and the current temperature values in order to draw conclusions based only on temperature and elapsed time, which can be:
- "You forgot the water." - (temperature went too high)
- "Coffee for Two." - (less water - more tempr elevation)
- "Coffee for Six." - (more water - less tempr elevation)
- "Heating Coil error!" - (no significant tempr elevation)
In addition the Sensor Error detection works continuously as long as the coffee machine is switched on.
As can be seen on the picture, six dose of water required more time to reach the same temperature which the small dose reached much sooner.
Starting without water results very high temperature, however the flat line indicates unchanged temperature thus a heater coil error.
Changing Measurement Unit
The measurement unit can be changed by sending "c" or "f" from the Smartphone, even during a coffee making procedure, and it leaves no mark on the graph.
Stored initial and previous temperature values will be converted by a program function call I coded - used for statistics and analysis. This setting is also stored in the EEPROM memory.
Dynamic Screen Elements
These six small animated images above shows what I coded.
If the screen is full, the graph starts to roll to the left.
Depends on the measured value some screen element can be in its way. To keep avoid collision, their places are dynamic.
Test Mode
By the time I created all of these, the idea came up, why not use the graph for other purposes?
So I coded the Test Mode; just attach an external temperature sensor and
the system can be used as a multipurpose temperature meter with graph.
In this working way the extreme values of the graph are -20°C (-4°F) and +128°C (+262°F).
Sending numbers from the Smartphone between 1 and 999999 will be accepted as measurement interval in seconds, so the width of the graph is between 128 seconds and 11.57 days.
Bluetooth Communication
Accepts commands and sends reports, detects if a smartphone connects or disconnects. The full command set can be seen on the screenshot.
Sent messages are blue and the response / report messages are green sent by the coffee maker.
My favourite Android App is the "Serial Bluetooth Terminal" created by Kai Morich:
Led Control
A CD4027BE decade counter drives the LED bar, receives CLK from the MCU at every temperature messurement, and increases the position. If a new coffee making procedure or the Test Mode starts, the Atmega 328P sends an RST signal to set the default position.
The button has a bicolor LED with only two pins, so my simple and funny solution can be seen in the code, how to control it.
- Solid Green: standby or the coffee is ready, the coil is off
- Solid Red: coffee making in progress, the heater coil is on
- Red / Green in turn: Test Mode
- Flashing Red: error occurred, that can be
-Sensor error,
-Heater Coil error, or
-You forgot the water, so the coffee making procedure was interrupted by the system
Creating the Arduino Controller
It needs a bit creativity, all photos explains itselfs, gives you very good ideas and guidance. I divided the system into functional modules.
Refurbish an Old Coffee Maker
My project is based on an old, well used coffe maker from the 90's - full of rust, every seal was defective, leaking water... it was also a challenging part of the project how to fix all of these problems.