Make the Switch
Launch Your Design with TI

Looking to create ‘the next big thing’? Look no further than TI's Maker and DIY community! Launch your design with TI's low-cost, community-supported development platforms. Begin rapid prototyping applications in minutes with our microcontroller-based LaunchPad kits, Sitara™-processor-powered BeagleBoards and SimpleLink™ wireless connectivity SensorTags.

An IoT solution for perfect coffee – part 3

Aaron Kondziela is an IoT entrepreneur and designer who is guest blogging to discuss a recent project.

The first installation of this series covered constraints and component selection, and the second installation discussed performance testing, probe construction, and code. In this third part, I discuss important parts of an agile and iterative design process: the composable data services I used to build data analytics, and strategies to port this project to a new platform.

Composing data services

So now I have my data, and it’s published on a message bus. I used the wot.io bus to send these messages to scriptr.io, bip.io and Circonus to start. Scriptr uses JavaScript code to create RESTful application programming interfaces (APIs) in the cloud. (RESTful is a term derived from Representational State Transfer, a common technique for communicating with Internet-hosted services.) These APIs work well as a data transformation layer in a distributed data processing graph. Circonus is primarily aimed at DevOps monitoring and alerting, but I’m using its powerful graphing tools to log and visualize my data. In this first iteration of the data analytics, bip.io handles the bulk of my processing.

Figure 1: Bip.io graph of services

In bip.io, I composed a graph of services that checks threshold values, logs data in a Google Docs spreadsheet, and sends alerts via email and Twitter. You can see the graph pictured in Figure 1, which I used in a demonstration at World Maker Faire 2015. The Twitter and email alerts were more a part of the Maker Faire demo than the analytical solution I needed for brew optimization, but it’s so simple to assemble these systems that there’s no reason not to have these kinds of demonstrations.

Delicious results

Everything worked well, and now I’m collecting data on my morning brew, adjusting to suit the character of each new bean and roast (see Figure 2). The results, while subjective, have been impressive. I found that my drip coffee maker has terrible regulation and barely reaches the ideal brewing temperature at all. The pourover results depend in part on ambient and apparatus temperatures. The french press temperature curve as it cools is heavily influenced by ambient air temperature. With these new insights gained from the time-series data I collected, I’ve been able to adjust my technique and produce a far more consistent cup. Each bean and each roast benefits from a unique brewing treatment, and It’s become simple to adjust brewing temperature up to decrease acidity, or down to decrease bitterness.

Iterating the design

My next iteration of this setup will be to integrate the LM35 probe with a BeagleBone Black open-source computer, just like I did recently using TI SimpleLink™ multi-standard CC2650 SensorTag kits. The BeagleBone Black is a fantastic platform, powered by a Sitara™ AM3358 processor based on an ARM Cortex-A8 CPU running at 1 GHz. I plan to use the SensorTag kits to check ambient air temperature and relative humidity, and collect that data with the brewing results to tweak things. Because bip.io can even talk to my Nest thermostat, I can collect data from both and make adjustments each morning to ensure perfect brewing based on the conditions in my house.

 

Figure 2: “The Perfect Cup,” a temperature-controlled coffee maker

Translating the code to the BeagleBone Black should be simple enough by running Node.js and adapting the JavaScript I already wrote. I could compile the open-source KinomaJS for the Sitara AM3358 processor CPU target and use an identical runtime environment. Or I could use Python and any number of RESTful APIs integrated by wot.io for data ingestion. The whole idea, after all, is rapid prototyping with interchangeable parts. TI’s extensive resources and product selection make this possible, while wot.io’s composable data services empower makers to create production-ready solutions at a fraction of the effort it used to take. With these kinds of tools at our fingertips, realizing the promise of the Internet of Things is only a matter of time.

Meanwhile, I’ll be enjoying my now-excellent coffee, as I pour over data sheets for whatever is next.

Additional resources

Comments