Prior to this year, it had been 6 years since Managed Solutions participated at the Westec show. While keeping up with the expanding needs of our customers, the task of preparing for Westec was growing in urgency. Two ideas were percolating here: to be more personal/welcoming and to feature something different. In order to capture our desired culture we settled on the “Westec Café CIMCO” theme. In our previous article we did mention the IoT Keurig machine, but we were a bit limited on details. Since many have asked, why not share more about it. So first let’s back-fill this story a bit.
While placing last minute orders for booth chairs, tables, TV’s and other assorted items, one nagging idea kept calling. Every time we accessed the Keurig machine to get some fresh fuel for some long days, we kept thinking “wouldn’t it be cool to connect this to CIMCO Machine Data Collection (MDC) for the Westec booth?”.
Why yes, yes it would.
Perhaps on a day where one may have over-indulged in an extra espresso or two, a late night session of planning, partial dis-assembly, and testing began. Evaluating it like we would any machine that would be monitored, we initially we looked at three “signals”:
- Cycle Start
- Cycle Stop
- Boiler on/off
This process was somewhat therapeutic and far more rewarding and fun than finding the best cocktail table, bar stool and TV combinations for the booth. Here is an early image where the 12V signal for the finish pump (the K-Cafe uses 2 pumps to complete your beverage) had been identified and tapped into:
We would then successfully locate the actual liquid pump, which was actually a multiple stage pump that ran slowly when the “strong” setting was selected and fast when it was not. This signal was used for Cycle Start. This particular signal determined we would use a Moxa E1242 which has both Digital and Analog inputs. This gave us the ability to read both pump modes and allowed additional analog signals “down the road”. An added side benefit was also the E1242 support for Modbus (allows values to be read) and SNMP (allows traps as interrupts, more on that later).
It’s good to future proof, right? There was now a viable setup for Westec, and it was a good thing because time was at a premium the rest of that week!
When we returned from the show it quickly became evident, we were not done with this project. It was too much fun sharing our IoT Keurig with the ~80+ warm drink recipients. What else could we demonstrate with this platform?
- Boiler on/off (since we ran out of time before Westec)
- Temperature sensor for the boiler
- Open/Close Sensor for the K-Cup Holder
- Open/Close Sensor for the drip tray
- Cup detector
- Stack light
- Operator Indicator Light
- Water Level Low Sensor
Adding all these signals required a more complete tear-down of the k-cafe machine, which was actually time consuming as we couldn’t locate any instructions or previous examples online anywhere, even on Youtube!
During this next phase we identified all the methods and means to add these signals. To make the project more interesting, we used the following sensors and optional add-ons:
- A Raspberry Pi w/ a IoT Relay Board
- Node Red (running on the Pi)
- MQTT (running on the Pi)
- SNMP (running on the Moxa and Pi)
- 2 Hall Effect Sensors (Drip Tray/K-Cup holder)
- Stack Light w/ Buzzer (Status light and buzzer for beverage complete/low water/high temp alarm)
- Inductive Sensor (cup sensor)
- RGB LED (User/operator feedback – blue = setup, red = cup not present, green = cup present)
We even gauged the public via LinkedIn to see what the interest was like:
Many years ago we demonstrated how to use the CIMCO API and connect analog sensor data to CIMCO MDC now we used this Keurig example to integrate some new concepts to expound on the possibilities with the extremely flexible CIMCO platform. Some key concepts that were assessed and proven:
- Using SNMP as an interrupt signal* from an SNMP trap generated from the Moxa IOLogik E1242
- Using Node-Red to read MQTT for an interrupt signal
- Using Node-Red to update indicator lights (while also filtering and providing interrupt signals to CIMCO MDC)
- Use of ridiculously cheap off the shelf sensors (technically we’ve done this before, but we did elaborate on this concept here
*There are two main ways to get data – polling based and interrupt based, they work exactly how you might think. Interrupt is useful as there is less network traffic. Polling asks at a given interval for a value. With our IT background it makes us a bit more favorable towards things that don’t generate network traffic.
Here are a few things on our “todo” list that we haven’t gotten to yet:
- Barcode scanner to read QR code and update beverage type in MDC
- Connect to our traceability demo (we’ll be sharing this late December/early January here!)
- Writing interrupts directly to the CIMCO MDC Database from Node-Red (this will allow even less network traffic, probably the lowest resource utilization for the server, would make sense for scaling a similar solution in a real world environment)
- A much “leaner” solution with a single wireless ESP32 achieving most if not all of the requisite items.
- PLC instead of the Raspberry Pi
- A purpose built device to rule them all (okay, this is a stretch goal, we’re not in the hardware business)
We’re not going to do a deep technical dive into these concepts today, but suffice to say we are not done with this platform and we’ll be using it to demonstrate IIoT / Industry 4.0 concepts. This should help educate those interested on how they can improve their business/enterprise using CIMCO Machine Data Collection combined with a little creative engineering to accomplish much more than they might have thought was possible.
There is a lot of depth to this work in progress, we’d love to hear your feedback and questions! Leave us a comment below or contact us with your questions and thoughts. On that note, this is what the IoT Keurig looks like today: