The Internet of Things (IoT) sits atop a 3-legged stool. Each leg is as important as the next. If any are missing it all falls down. What are these all-important legs you ask? Strategy, Connected Things, and Platform.
All of the buzz and hype, all of the conversations I’ve had with manufacturing and product development clients, can be grouped into one of those categories. I can’t stress enough how important it is to have those three ‘legs’ supporting any IoT initiative. The hard part is keeping a balanced approach so each leg of the stool is supporting its fair share of the load. This is especially hard when you consider the ‘non-traditional’ product development players the IoT brings to the table. It’s shifting the value of products and transforming companies altogether.
Sometimes this transformation causes such a stir that people and companies tend to ignore the groundwork and adopt a more ad-hoc approach. That’s unfortunate because now, more than ever, business strategists, engineers, and IT need to come together to support a new breed of products.
Let’s build a (theoretical) stool. In the next few paragraphs I’ll explain EAC Connect Services’ 3-Legged Stool analogy.
First, consider Strategy — the ‘why’ leg of the stool. There needs to be a clear connection between any IoT efforts and the value they bring to core business strategy. Since the IoT is clearly shifting product value by adding more information about status, usage, location, efficiency, etc, there can be pretty clear connections made between corporate initiatives and enhanced products with sensors, connectivity and analytics. What’s challenging is bridging the gap created by the language used in different groups. We often see people rattle off business initiatives such as Grow Revenue, Improve Service, Increase Customer Engagement, and Reduce Scrap. Rarely does anyone jump up and say ‘IoT is the Answer.’ Interestingly, the IoT can directly impact each of those goals. The IoT can create new revenue streams based on data acquisition or alternatives to existing service models. It could even change the way products are sold — think ‘Product As A Service’ versus high capital expenditures. How could you be more engaged with customers than through an on-going subscription and monitoring program? And as for scrap, things like machine learning, predictive failure and real-time operational efficiency are just the tip of the iceberg.
Second, let’s consider Connected Things — the ‘what’ leg of the stool. Take a moment and look around the room…seriously, look around the room in which you currently reside. How many connected devices do you see? Now think about the connected devices and systems that you don’t see. I call this ‘pervasive connectivity.’ It’s the notion that connected things are rapidly outnumbering us. Analysts expect there will be about 7 connected and addressable things per person by 2020. These things may connect via bluetooth, WiFi, ethernet, long-range radio, cellular, and satellite signals amongst others. Couple this with ever-shrinking energy-efficient sensors piggybacking on existing products or embedded directly within new ones and we’re ready to analyze streams of data. This could happen real-time, locally or post-facto in the cloud. These connected and enabled things provide data junkies with more data than they know what to do with. And one cool twist is that the back-end systems are learning to mine and manage data on their own. In short, the ‘how’ of smart and connected products comes in layers — base product infrastructure, sensor systems and connectivity form the foundation. Then depending on the objective, analytics may occur real-time, be short-term local or happen ‘in the cloud.’
Third is Platform — the ‘how’ leg of the stool. Consider for a moment the possibilities of a truly scalable cloud IoT purpose-built platform. One where security, connectivity and flexibility are a part of the DNA and easy connection to other enterprise systems like PLM, CRM, MES and the like are not just a notion, but a reality. Picture a platform where these converging streams of data can be analyzed by a learning system that determines what ‘normal’ looks like and autonomously notifies other systems with the right information based on the audience or system. At this point, integrating service information through augmented reality seems like a natural extension and provides the next step in connected product development and the over-the-top service we’re all pursuing. And for some icing on our proverbial cake, how about the ability for ‘non-developers’ to quickly build role-specific dashboards and mashups without needing to write piles of code? While new platforms are springing up, ThingWorx is already in place and providing a central hub for the connected enterprise to meet and even exceed its business objectives.
While all three elements — Strategy, Connected Things, and true IoT platforms — seem somewhat elemental, balancing these will be central to the success of any IoT enabled business initiative. This is the approach we take at EAC through our Connect Services. Whether you’d like help in one, two or all three of these areas, we’d love to partner with you and see your next IoT project flourish.
A spring, a trigger, and a board — the gold standard for catching mice. So much so, that ‘building a better mousetrap’ has become a colloquialism for futility. I’d like to challenge the notion that we can’t improve the value of a mature/fully-vetted product. Maybe it isn’t something we can achieve by redesigning the core product. But, what about transforming it? Shifting value and enhancing what the product is through connectivity and the Internet of Things (IoT). Think about it. What if the classic mousetrap sent trap status alerts and thereby gave you peace of mind. Or better still, that your strategically placed trap has done its job and needs to be emptied and reset.
The 5-Layers of an IoT Connected Thing:
To start our grand journey to the engineer’s happy place, let’s run with the mousetrap example and explore the 5 layers it takes to connect any ‘thing’ to the IoT.
Layer 1 — Core Product Infrastructure
As with any product initiative, it’s important to start with a solid core product infrastructure. The standard mousetrap is both solid and elegant (and lethal) – a board, a spring and a trigger. The physical product has to function…well. But we’re adding value by awareness, so let’s build onto the first layer with a sensor circuit.
Layer 2 — A Sensor Circuit
This is where we consider what data could support analysis to determine the status of our trap. Lots of options exist – accelerometers, a switch, a photo resistor, a force-sensitive resistor, or even an ultrasonic transducer come to mind. Selecting one (or more) depends on other layers and the approach to analytic logic. Always select your sensors with end goal in mind. While it might be fun to integrate a laser of some sort, we’ll keep it simple – a micro switch with a circuit that is held closed by an ‘armed’ trap.
The next two layers help us deal with the data coming from our micro switch circuit connected to a microcontroller.
Layer 3 — Connectivity
The connectivity layer requires cost/function/environmental tradeoffs. Options run the gamut from radio to Ethernet to Wi-Fi, to Long Range vhf/uhf radio and even cellular – each with benefits and challenges. For simplicity and example sake, we’ll consider a Bluetooth connection to a home computer. It’s likely a good solution given range and pervasive connectivity.
Layer 4 — Analytics
The connectivity layer flows into the analytics layer and approach – how, where and when we determine a ‘sprung’ trap. Once it’s determined and we process any other salient information, we would likely pass that info through our connectivity layer to our Smart Application in the IoT Platform layer at the top of our IoT stack.
3 Realms of Performing IoT Analytics
Before we get carried away, however, let’s unpack 3 realms of performing analytics; Real-time, Local and Cloud.
- Real-time analysis would typically be high-frequency evaluation of a trigger or a calculation based on multiple values to determine some sort of event before storing or pushing data to the cloud. For example, this ‘live’ processing could evaluate accelerometer data to determine if someone took a step in the case of a wearable IoT device. In the case of our trap, it could be used to ‘wake up’ the monitoring system once a mouse is sensed sniffing the trap.
- Local Storage of data before going to the cloud provides for some short-term hysteresis, filtering or perhaps comparison to a time-based goal as in number of steps in a day — or mice sniffing our trap.
- Cloud — Real-time and local storage data can be streamed to the cloud for long-term storage, trending, historical analysis and such. It could even be used to feed a machine-learning algorithm for predictive failure analyses.
For our simple mousetrap example, we’d likely just monitor the micro-switch at some reasonable interval and send the status to our IoT Platform – likely ThingWorx.
Layer 5 — IoT Platform
So now that our newly enhanced trap can sense, connect, analyze, and communicate its status, we can share that with an IoT platform to aggregate data and either perform additional analytics or communicate with other traps, sensors, or systems. This is where the IoT can really take off by being the refinery of crude data from various streams and start to head for a connected stream of autonomous systems of systems – but I’m getting ahead of myself. We’ll address that in a future blog on IoT platforms.
Applications communicating autonomously on a defined platform are what facilitate this shift of product value. This is why a powerful, scalable and secure platform for application development is just as important a layer as the rest. It’s here that we can actually see the newfound value of our connected mousetrap – Is it still armed? – Was it tripped? Do I need to check on it? With enough sensors, good analytics, and a flexible platform, we could ascertain which of many traps has had an event, if it’s full, or just been ‘sniffed.’ When an event happens an email or text can be sent to someone with the delightful responsibility to do something about it!
And so that’s how we can make a better mousetrap, tractor, valve, medical device, etc. A “better mousetrap” is a simple example, but if we can add value to the mousetrap just imagine how you could add value to your products. Each of the 5 layers of the IoT stack plays a role — core product infrastructure, sensor systems, connectivity, analytics, and smart applications on an IoT platform.
If you’d like to build your better mousetrap, or more likely, if you’d like to transform the way you design, manufacture, connect to, or service your products, EAC would love to help. Let’s connect.
Why bother with the Internet of Things (IoT)?
Great question! Maybe to understand your product, make a deeper connection with customers, create a new business model, increase revenue or even build a new revenue stream. Perhaps you’d like to find out what your products are doing after you sell them and figure out which features to include or remove from your next iteration. There are piles of ideas and ways to make the IoT work for you. In short, however, it depends on your initiatives — and the IoT could be just the thing you need to move your initiatives from “How are we gonna do that?” to “This is gonna be awesome!”
When considering your corporate initiatives and the IoT, I’d encourage you to integrate them rather than looking at them as separate things. At EAC, our Connect Services (the way we help customers achieve their IoT objectives) starts with strategy. You’ve got to make a connection between the motivation to have smart and connected products and your initiatives. In other words, your approach to the IoT could be the central catalyst of your initiatives. Otherwise, it’s just a fun and techy science project without clear direction.
Let’s say you’re a forward thinking company and you call yourself innovative while having a goal of improving dealer service capabilities and increasing end-customer engagement. Perhaps you could build a whole new business unit that collects data from your product in the field and distributes use and service information back to your dealers as they provide service. It could increase revenue (data/subscription sales to dealers), increase your ‘innovative edge’ as perceived by your end customers (through apps and product information) and feeds feature and performance data back into your design cycle. You could aggregate the data from your products in the field to your ERP and MRP systems and have truly integrated (connected) PLM into your business. Just for the sake of argument, this could include role-specific mobile device apps for dealers, DIY repair, data junkies and regional usage maps. We could even weave this into production and procurement roles and have data actually ‘flowing’ in several directions. Who knows where it could lead.
Ok, now back to avoiding the ‘science project.’ The key is to have a strategy — figure out why you want to be part of the IoT and then go do it. Our goal at EAC is to help companies transform the way they design, manufacture, connect to and service their products. As a part of that, we’d like to help you build your strategy, devise ‘connected things,’ and implement a facilitating platform easing the access, sharing and use of the information. This 3-legged stool is what we place our IoT strategy on — next time I’ll talk more about the ‘things’ or the ‘platform.’ For now, how can we help you build your IoT strategy? Let us know…
Imagine getting a text from your equipment in the field telling you there’s been a problem. Not too far of a stretch, right? Well, let’s take the situation a bit further. What if you get an unsolicited thank-you email from your customer who was excited about how fast their last service call went since the service rep had the right parts for the particular problem on the machine. That’s because the cloud-based machine monitoring system had automated communications between the equipment, the supply chain, the service reps truck inventory and the recent training the rep had completed for just this situation. Even further, once on site, the rep pointed an iPad at the equipment and the video displayed an augmented reality video of the machine with overlaid graphics showing both the internal geometry and streaming sensor data indicating the problem and highlighting failing parts. Here’s the kicker — when the rep clicked on the screen to see the details of the issue, a ‘how-to’ video popped up on the screen to step the rep through the repair. By the way, did I mention that the issue was predicted by a different cloud computer monitoring huge stores of data and ‘learning’ while it’s predicting issues?
Ok, so I’m not much of a science writer, but it doesn’t matter because this isn’t ‘the sci-fi of the future.’ This is today. This is what the Internet of Things looks like, and it’s both growing and accelerating. Last week, I attended LiveWorx ’15 with 2500 other like-minded professionals. This PTC Internet of Things conference had another 5000 in attendance virtually as the Boston venue had sold out locally. It was pretty obvious that the buzz continues to grow around this topic and that we’re all interested in growing and accelerating business and product development leveraging these technologies.
While some of the technology and science behind cloud computing is ground-breaking and game-changing, it’s not just about the technology. That’s why having both a business and product development strategy are just as important as integrating the technology into the products. At EAC, we’ve been developing products and helping others do the same for the last 20 years. We’re especially excited about helping companies build and execute their IoT strategy since the opportunity and impact are only limited by the imagination. We’re talking about deeper engagement with customers, reducing operating and service cost, new revenue streams, even products that tell product managers and engineers what customers want in additional functionality or how they’re using your product today. If you’re considering developing or leveraging smart and connected products as a part of your product development and business strategy, we’d love to hear from you and partner with you along the way. If you’re not planning out an IoT strategy, we should talk.
EAC Product Development Solutions is a Minnesota based company providing engineering and product development software, service and consulting to the discrete manufacturing industry. Rob is currently leading the EAC business effort related to product development for the Internet of Things. You can reach out to us and contact Rob at www.eacpds.com/eacpdtcontact.
There’s a lot of buzz these days about leveraging the internet and the ‘cloud’ for business — especially in the realms of product development. Phrases like Internet of Things (IoT), Machine 2 Machine, Product as a Service, Internet of Everything, Cloud Things, Connected Products and others get thrown around daily. Regardless of the term you use, the real intent of any of these IoT projects is to generate some additional value. That could be from more capability, deeper customer interaction, predictive maintenance, new revenue streams, market share, knowledge of how the product is being used or many other scenarios. I thought it would be fun to leverage it for gardening!
This time of year, there are a lot of northern gardeners are doing a dance with garden plants they’ve started from seed while winter was still rolling along. Now the seedlings want to be outside in the sun, but its too cold at night. The plants are getting crowded and too big to park in a window in the living room. Build a plastic tent outside as a make-shift greenhouse and it’s too hot during the day. So you’re left with shuffling the plants inside and outside to follow the spring sun and avoid a late frost. But how do you balance this while keeping your day job?
Enter the IoT and a little project in our parking lot… With a little creativity, some parts we had around and a few extra parts from the thrift store, we built an ‘almost’ free greenhouse we can monitor through any web-browser. Our interest at first is simply to monitor the temperature, relative humidity and light level both inside and outside the greenhouse. It’s fun to see the values ebb and flow with the day and with the weather. This was achieved through an Ethernet connected Arduino wired to a photoresistor and a pair of DHT11 Digital Humidity and Temperature sensors. Currently the system feeds into ThingSpeak for graphical representation with plans to port it over to ThingWorx in upcoming days.
Since the sun is hot this time of year but the cold weather isn’t over, we’ll likely experience some high temperature spikes and some cold nights that could damage the tomatoes. This brings up phase 2 — ‘control.’ Our near term plans are to have powered ventilation and heating to kick in either by reaching through the internet or with the internal controller. Eventually we’ll get to a fully autonomous greenhouse that manage temperature, have sensors in the soil monitoring moisture and turning on/off soaker hoses and misting fans all the while keeping us informed on a smart phone. Those are going to be happy tomatoes with their own twitter account…
Maybe all this tech and automation will take some of the fun out of gardening and fiddling with the plants to get it ‘just right’. What’s more likely is that it will just encourage the acquisition of more plants and the need for a bigger garden and a bigger greenhouse with more automation — but that would be fun too…
EAC Product Development Solutions is a Minnesota based company providing engineering and product development software, service and consulting to the discrete manufacturing industry. With 20 years of product development experience, EAC is seeking to help companies that desire to get more from their products through the IoT. We engage in all aspects of product strategy, product design and enabling technology to achieve those goals. Please contact Rob at rmiller@eacpds.com to find out more.
This tutorial is a follow-up to my previous tutorial, “Getting Started with the Arduino Uno and ThingWorx.” Connecting to ThingWorx with the Arduino is easy if you possess an Ethernet or WiFi Shield but you can still connect without one! Using the Processing language you can send data from your Arduino to a computer via a serial connection and push it to ThingWorx.
Requirements:
- ThingWorx hosted instance
- Arduino Uno
- Processing Environment (found at Processing.org)
- Arduino Environment
In this post:
Introduction to Processing:
Processing is the language that the Arduino language is built on. This means that the syntax is very similar. I would recommend visiting the tutorials and documentation that is provided on the Processing.org site as it is very informative and helpful.
Tutorial:
In order to push data to your ThingWorx thing refer to my previous tutorial, “Getting Started with the Arduino Uno and ThingWorx,” to get a Thing and Service set up. Next, copy and paste the example code that is included with this post. That’s really all you need to do!
More specifically, enter all of your pertinent server and thing information into your processing code. You should now be ready to start pushing data to ThingWorx. Fire up your Arduino and upload the example code to it. Next, push the “play” button at the top of your Processing Environment.
You may run into a few issues. One, if your Processing code throws an error about your serial port (it will say something about a “null exception”) you’ll need to determine which serial port your Arduino is at. The Processing code will print a list of available ports and default to the first one on the list. If your port is different then you can change it in the code:
You can either change the highlighted number to match the position that the port is listed or just change the highlighted variable portName to the actual name of the port:
You will also have an issue if you try and open your Serial Monitor in your Arduino Environment. This will cause your port to become unavailable.
Advantages and Disadvantages: Now that you know how to connect your Arduino to ThingWorx using three different methods, let’s discuss some possible advantages and disadvantages of each. In the case of the Ethernet Shield, you are able to move from one network to another without much issue. No new coding is needed. With the WiFi shield, you must recode your Arduino any time that you switch networks so you can enter the SSID and Security Code if needed. However, once the Arduino is configured correctly, you merely turn it on and it runs as a standalone device.
The serial connection allows you connect to the internet without the use of a shield. The cost of an Ethernet or WiFi shield is typically between $30 and 80$ depending on the manufacturer. A disadvantage is that you must be tethered to the Arduino with a computer if you want to send data.
The Processing language is very easy to learn and there are tutorials on the web that will instruct you on how to build user interfaces that you can control your Arduino with. This makes the serial connection an attractive option if you want some control over pins or variables on your Arduino!
And now for some code…
/***************************************************************************************************
ThingWorx Serial Example for Arduino Uno
This Arduino and Processing code allows you to connect to ThingWorx without the use of an Ethernet
or WiFi Shield. The data is sent from the Arduino to the computer via the serial (USB) connection
to your computer. All server and “Thing” data goes into the Processing code that is commented out
at the end of the Arduino Code. When you are running this code do NOT use the Serial Monitor in the
Arduino environment as it will interrupt the Serial connection to Processing. The Processing language
can be found at Processing.org.
Created by Nick Milleson
Design Engineer
EAC Product Development Solutions
nmilleson@eacpds.com
***************************************************************************************************/
//Make sure that SENSORCOUNT matches SENSORCOUNT in the Processing code
#define SENSORCOUNT 4
double sensorValues[SENSORCOUNT];
//Denote the pins you will be using
int sensorPins[] = {A0, A1, A2, A3};
void setup() {
//begin Serial connection
Serial.begin(9600);
for (int idx = 0; idx < SENSORCOUNT; idx++)
{
pinMode(sensorPins[idx], INPUT);
}
}
void loop() {
//Read info from the pins
for (int idx = 0; idx < SENSORCOUNT; idx++)
{
sensorValues[idx] = analogRead(sensorPins[idx]);
}
//send out a serial message that tells your Processing code that you are beginning a transmission
Serial.println(“begin”);
for (int idx = 0; idx < SENSORCOUNT; idx++)
{
//Send data over the serial port
Serial.println(sensorValues[idx]);
}
delay(1000);
}
/***************************************************************************************************
ThingWorx Serial Example for Arduino Uno
This Arduino and Processing code allows you to connect to ThingWorx without the use of an Ethernet
or WiFi Shield. The data is sent from the Arduino to the computer via the serial (USB) connection
to your computer.
Enter your Server, appKey, Thing, Service, and sensorNames to match up with the data being sent by
the Arduino. Make sure that you do NOT use the Serial monitor in the Arduino Environment. It will
disrupt the connection.
For a tutorial on creating your Thing and Service, visit:
Getting Started with the Arduino Uno and ThingWorx
https://www.eacpds.com/product-development-system-blog/getting-started-with-the-arduino-uno-and-thingworx/
Created by Nick Milleson
Design Engineer
EAC Product Development Solutions
nmilleson@eacpds.com
***************************************************************************************************/
/*
import processing.net.*;
import processing.serial.*;
Client myClient; // Client object
Serial myPort; // The serial port
final int SENSORCOUNT = 4; // This value must match SENSORCOUNT in your Arduino Code
String sensorValues[] = new String[SENSORCOUNT];
String junk;
String beginString = “begin”;
String myServer = “enter server here”;
String appKey = “enter appKey here”;
String thingName = “enter Thing here”;
String serviceName = “Enter Service here”;
String myURI = “POST /Thingworx/Things/” + thingName + “/Services/” + serviceName + “?appKey=” + appKey + “&method=post&x-thingworx-session=true<“;
String myHost = “Host: ” + myServer;
String myContent = “Content-type: text/htmln”;
String sensorNames[] = {
“valueOne”, “valueTwo”, “valueThree”, “valueFour”
}; //Enter your variable names (these must match the inputs in your Service)
void setup() {
// Print a list of the serial ports, for debugging purposes:
println(Serial.list());
String portName = Serial.list()[0];
myPort = new Serial(this, portName, 9600);
myClient = new Client(this, myServer, 80);
}
int idx = SENSORCOUNT + 2;
void draw() {
if (myPort.available() > 0)
{
junk = null;
junk = myPort.readStringUntil(‘n’);
// look for the initial “begin” string that Arduino sends
if (junk != null)
{
if (beginString.equals(trim(junk)))
{
junk = null;
idx=0;
}
}
//Read each sensor value
if ((junk != null) && (idx < SENSORCOUNT))
{
sensorValues[idx] = junk;
junk = null;
idx++;
}
//When all sensor values have been read, send the info to ThingWorx
if (idx == SENSORCOUNT)
{
myClient.write(myURI);
for (int index = 0; index < SENSORCOUNT; index++)
{
myClient.write(“&” + sensorNames[index] + “=” + trim(sensorValues[index]));
}
myClient.write(“> HTTP/1.1n”);
myClient.write(myHost + ‘n’);
myClient.write(myContent + ‘n’);
println(“Sending this REST call:”);
print(myURI);
for (int index = 0; index < SENSORCOUNT; index++)
{
print(“&” + sensorNames[index] + “=” + trim(sensorValues[index]));
}
print(“> HTTP/1.1n”);
print(myHost + ‘n’);
print(myContent + ‘n’);
print(‘n’);
idx = SENSORCOUNT + 2;
}
}
}
*/