The past few weeks I have been digging deeper into subjects surrounding software engineering and programming languages to brush on basics that did not fully sink in from my bootcamp. This deep dive has been helpful but I also realize that having somewhat of an understanding of assembly language or the difference between compiled vs interpreted languages is pretty removed from the way we as individuals interact with technology today.
A whole generation is now being raised with smart devices in their hands from childhood. They are raised in houses that have doorbells that send text messages when rung. Refrigerators that you can regulate temperature and humidity levels with from your laptop. Or are being driven to school in cars that respond to “Hey Siri, play that new Taylor Swift black metal remix.” This is not black metal by the way… I have no idea what this is but I can say that it exists 🙃.
This is a new frontier for how the internet is used. The internet initially was designed for users to interact with other users. To share information with other people across the globe. Now giving smart appliances(a users possessions) their own IP address has shifted the relationship a bit. From this new perspective a user can get online simply to connect with their “things”. Who needs human connectivity in the post covid world when you can hang out with your thermostat online. Welcome to the Internet of Things!
Technically the internet of things, or IoT for short, is a system of interconnected devices connected to the internet designed to send and receive information to each other. So a smart home with its AC, doorbell, thermostat, smoke detectors, water heater, security alarm can all be interconnected and accessible by the user/owner of the home via smartphone or desktop application. The “things” that make up the IoT can be broken down into two different categories.
- connected via wired or wifi
- TV, air conditioning, coffee machine, blinds, lights
- rely on sensors and actuators that provide date for general devices
- measure temperature, humidity, or light intensity
The first key ingredient to this new frontier for the internet from a user perspective is access. Both of these IoT devices are connected to the network with the help of gateways/processing nodes. The gateways take in information from the sensing devices and transfer it to the server cloud. The server cloud acts as both the storage and the processing unit. Actions are performed on the collected data by the application interface.
Wifi and bluetooth help the devices maintain connectivity. The sensing devices provide the second key ingredient to the IoT. MQTT aka message queuing telemetry transport is the network protocol used by devices that makeup the IoT. Essentially the IoT has its own version of HTTP requests! The protocol itself is designed for connections with networks in remote locations with limited bandwidth. Furthermore it is designed for devices where there is a very limited amount of space for a code base. Like a sprinkler head out in the middle of your yard. Or maybe even wind turbines located way out in the plains of rural America. Technically the protocol was invented to monitor oil pipelines in the SCADA network.
Using MQTT the sensing devices are all subscribed to the broker. The broker is a server that receives messages from the user to update the status of subscribers.
The main advantages of MQTT is that:
1. Eliminates vulnerable and insecure client connections.
2. It can easily scale from a single device to thousands.
3. Manages and tracks all client connection states, including security credentials and certificates.
4. Reduced network strain without compromising the security (cellular or satellite network). — https://en.wikipedia.org/wiki/MQTT
While the MQTT is designed to have a small footprint and the code base of many of these new smart home devices are limited it is only a matter of time before the devices get much smarter. Honestly these networks are the foundation of 21st century society. Our aqueducts to solar panels to oil and natural gas lines are all regulated via the IoT. This new frontier for the internet it very helpful for users to control the environment of their homes as well as governments and companies to control the environment of their resources. It is all very exciting but does make humans more reliant on technology for basic functionality. That technology is always susceptible to security breaches so we should proceed with caution.