Can you summarize the different layers of an IoT software stack?

and provide a couple of examples of useful tools/platforms at each layer?

I’ll start at the bottom because the bottom is kind of the easiest to talk about.

You have a bunch of nodes which have dramatically less processing power available to you than you have in the cloud (because you have almost infinite processing power in the cloud if you want it).

In that layer there are two real domains that exist, and you might be doing one or both of them.

One is command and control, this could be things like robotics or smart lights. The other is data harvesting / data gathering. If you’re doing command and control, you have to find a way to route your data and commands down to the devices.

The flip side of that is if you’re doing the data harvesting, you have X amount of nodes and you need to somehow get it all into a relatively centralized place, so you can do something with it.

So that’s kind of like an ingestion layer. That’s where you have AWS IOT Core, IOT Hub, GCP IOT, your own MQTT server setup using Mosquito, I think Arduino has their own one, Adafruit has their own one. There are tons of options out there for ingesting your data or, flipside, routing out. We have data coming in the form of things we want to read, and data going out as things I want to tell the device to do.

It’s almost like traffic control right?

MQTT is pretty much the standard way we do that now. It’s just a distributed pub sub system where you have nodes talking to channels and pretty much anyone in the system can listen to channels and then do things.
Then you get into what would be your cloud application logic. And the sky is kinda of the limit of what you can do here, right, because at this point your data is in a database in the cloud.

So if you want to do data analytics at that point, maybe you have an ETL process where you take the raw time stream data that you’ve pulled in from the devices and you put it into a data lake or a huge analytics database. And you can run machine learning, create visualizations, you can build an api…

It’s so specific as to what you want to do, as what technology you might use there, that it’s kind of hard to kind of summarize at that point. Because it’s like anything people do with computing.

1 Like