Project background
I am a (software) engineer and an espresso coffee enthusiast. As a result, I could not settle for an ordinary instant capsule coffee with hightech chemistry but without real smell and taste of proper coffee (i.e speciality coffee). So I got myself an old school professional espresso coffee machine, revived it and I am enjoying quality coffee at home... well kind of. These old heat exchange espresso machines, require expert handling, to produce decent coffee. It's not like you press a button, and magic happens. You need to warm it up for 30+ minutes, and then heat flush (throw away some hot water) to bring it to perfect temperature (somewhere between 90 - 94C) so you can brew your espresso. In addition to water temperature, the volume of water and brew time have a major effect on the end result taste. As if this wasn't enough, one should also consider grind setting combined the amount of coffee per shot, (and freshness of beans, and room humidity :-P)
I guess that's why most people prefer ready-to-use coffee capsules, but sometimes I like the long way home :-)
As a home-barista I am constantly trying to improve my skill, and resulted coffee. This requires attention to details so that I can reproduce the same result. It would have been so much easier if I could see all brewing related values, store logs among with comments on the coffee taste, so I can study them later, and improve/reproduce the best results. Therefore it is now time for my old espresso machine to get an upgrade to the IoT world !
Introducing Espresso ex Machina!
Core objectives, espresso machine mod: (in blue color)
- add temperature sensors (need to decide between thermocouples, thermistors, ICs etc)
- PID control of heating element via SSR using Arduino SAMA5D4
- connect water flow sensor, to Arduino (and calibrate). This is needed to keep track of water volume in produced coffee.
- old/original sensor already deployed. I am assuming it's an open collector output, but will find out more
- add one or two RGB led stripes to give some “life” to the machine using the Infineon Lighting RGB LED Arduino Shield. Will try the “breath in/out” effect, and use color to describe if boiler is ready/worm (takes about 30 minutes)
- Connect a speaker to SAMA5D4 and run a “text to speech” application for reading out loud temperature values, and other coffee related information.
- Will also try some “speech to text” (e.g. trigger readings on word “coffee”). This could be possible with android on SAMA5D4 but I will experiment first with yocto/linux and openhab
- log and submit all readings (temp, timestamp, duration, volume) to a cloud service (e.g. Xively, thingspeak) via http or mqtt
- tag readings somehow with my “coffee taste review” (could be via the machine again, and a 5 star rating via keyboard, or via smartphone using some basic app)
I guess the above could be accomplished on Arduino Yun , but to play with text to speech (and my favourite OpenHAB) I will be using SAMA5D4.
Extra objectives if time permits: (in pink)
- Add Arduino Yun to log and submit grinding duration, hence estimate of coffee grams, but I need to find a way to read grinding settings automatically. (?)
- add a pressure sensor, to log actual water pressure as well
- control rotary pump speed, to adjust pressure, hence do “pressure profiling” which makes a big difference in espresso taste.
- need to replace the AC motor, with a DC equivalent, and use the Infineon DC Motor Control Shield for Arduino
- alternative lame approach, keep AC motor, add an adjustable Voltage Regulator. Connect servo on the potentiometer, use Infineon shield to control servo, to control voltage regulator, to control AC motor :-P
Any ideas on how to tackle these issues, easy, quick and cheap, are more than welcome.
Next >> [ExM] #2 First attempt on the Atmel SAMA5D4, installing JAVA