IoT this, IoT that. At this point it's everywhere. That may seem overwhelming for newer programmers.
My goal with this and following articles is, to bring you closer and give you a better understanding about the "internet of things".
IoT (short for Internet of Things) are everyday objects, that are connected to the internet to send around data. That data can be used for all sorts of stuff, like analytics, notifications and everything else imaginable. For an example of that, let us dig into the history of IoT.
IoT as a concept was first thoroughly documented and investigated by Mark Weiser in his The Computer for the 21st Century, released in 1991.
The first ideas of what we would consider IoT date back even further to 1982, where the Computer Science students at the CMU (Carnegie Mellon University) connected a coke machine to the ARPANET.
The history of the coke machine went just like you expect any story, in which CS students are the main characters, to go.
There was a central coke machine, which sold the drinks a bit cheaper than at other places.
The fact that drinks where cheaper really sold it to fellow caffeine addicts (also called Programmers), which wanted the coke. The problem was: Sometimes you would walk all the way there, just to find out that the machine was empty. And even if there was coke, imagine spending your hard earned money just to find out that the coke was warm...
Modern problems require modern solutions, so the team had to do the only reasonable thing: Invent an entire new industry.
What they did, was install micro switches in every slot the coke could be at. Then they would measure how long each coke was inside of the machine. If it was three hours or longer, the machine wold mark it as "cold". Otherwise it would just mark it as being there. You could then query the machine from inside the network with a simple
finger coke@cmua. That would give you a response that could look as follows:
> > EMPTY EMPTY 1h 3m > COLD COLD 1h 4m >
What they had created, was an IoT device, which could send data about itself over the internet.
If I had to describe the internet of things in one sentence: making everyday objects digital and connecting them to the internet. We find applications of that everywhere, especially with the huge leaps that AI has made in the past 10-ish years.
Like every interesting concept that digital engineering has brought us, there are people that think it can solve every problem that we ever had (yes, I'm talking about crypto).
What we need to keep in mind is, that there are limitations. The bigger ones being: Connection dependency, security, privacy, power consumption and a lot more. While those problems have potential to be resolved/mitigated, we cannot ignore those.
One of the most common IoT devices nowadays is the Amazon Alexa. Problems start to arise, when you realize, that Alexa records that data so it can train. The issue isn't the training part itself, but rather that it's a supervised process, meaning a human listens to the data). Next to that, your entire life and all your private conversations are just one data leak away from being public. If that isn't scary enough: Personalized ads are already selling your entire person away for pennies.
While I believe, that we are moving in a good direction with IoT, there are very big drawbacks. I'm primarily talking about your privacy (which is the reason I don't have a smart home). And as long as your IoT devices come from big companies that's a risk. Even if they don't sell your data off, leaks can and will happen.
As a developer, it is definitely worth to take a dive into this interesting place. Nowadays you can even start, without owning any hardware, by simulating stuff on TinkerCAD.
Happy hacking :)