I recently completed a four year Computer Science degree via distance learning through a university in my home country of New Zealand. While extremely challenging at times, the work was compelling and it was an enjoyable endeavor overall. One of the courses I completed was called Internet of Things and Cloud Computing, which I will condense into a few points of interest below.
An Introduction to IoT and Real World Examples
This course began with an introduction to some of the core concepts, characteristics and designs of IoT. I learned that the Internet of Things is a system of physical objects that can be discovered, monitored, controlled and interacted with by electronic devices. It is an intelligent, dynamic, self adapting and configuring endless information network. Some IoT examples are; aggregating data from vehicle sensors in real-time to provide instant monitoring and control, tracking the health of patients in a hospital so that doctors can better respond to a patients needs, and creating digital twins of assets so that they can be monitored and optimized. One fact I found fascinating was that according to Cisco the number of connected devices on the Internet will exceed 50 billion by 2020 and by 2022, 1 trillion networked sensors will be embedded in the world around us, with up to 45 trillion in 20 years!
After understanding the basics it was time to get our hands dirty by playing with embedded systems. For this part of the course we were using a Raspberry Pi 3, Raspbian and Node-RED. We started out more simple and played around with getting an LED to flash on and off. Once I got the hang of the Pi and it’s GPIO I moved onto more complex applications. For this part of the course I built an application that I called “Good to go.” The idea behind it was that if I left the house with the window open or oven on it would send an alert to my phone. The IoT sensor data came from a gas/temp sensor I had mounted in my oven and a door switch that I had on my window. I used GPS to track my movement, if I stepped out of the perimeter of my property and either of the sensors were above a certain threshold then I would receive a text message alert.
This course also briefly covered artificial intelligence and the Internet of Things and real world examples related to the two. There is a clear overlap between the two technologies; IoT involves connecting machines and aggregating the data from those machines, while AI is about learning from that data, identifying patterns and detecting anomalies. One of the most common examples of this is self-driving cars. The cars act as the “things” and use the power of AI to predict the behavior of other cars and pedestrians. Another example is the Roomba, the first commercially successful automated vacuum cleaner. The vacuum robot maps and remembers your home layout and will adapt to different surfaces and new items.
The Cloud Computing Paradigm
The second part of my course focused on cloud computing. Similar to the first half, we were introduced to the core concepts, models, characteristics and applications of cloud computing. I’ve always been fascinated by cloud computing and its applications in IoT so I was excited to take a deeper dive. I learned that the two have a complimentary relationship- IoT is in the real world, small in size, constrained and able to generate massive amounts of data. Cloud computing is a virtual world, big in size with unlimited capabilities, perfect for storing large amounts of IoT data.
The Cloud Computing Platform we used in this course was Amazon Web Services. After a week of covering the different products offered by AWS it was our turn to build another application. The application I built was called “Who’s There, Who’s Here.” It used a Raspberry Pi with a camera, Amazon Rekognition, and an IoT database to analyze the movement of people in and out of an office space. The IoT database I used was, believe it or not, HarperDB. I simply searched AWS marketplace for the HarperDB AMI and followed the steps to easily install it. Rekognition is a facial recognition application that takes an image of a person and uses artificial intelligence to match that face in a stream of data. The finished application was a simple website that would display who was in and out of the office, along with a log of their movements.
I have only touched on a few small aspects of the course here, but I felt that we had covered a significant amount of material by the end of the term. The parts I enjoyed the most were the hands-on experience I gained from working with the Raspberry Pi, the IoT sensor data and IoT database. I’ll leave you with a quote that stood out to me -
“The most profound technologies are those that disappear. They weave themselves into the fabric of everyday life until they are indistinguishable from it.”
-Source: Mark Weiser. The Computer for the Twenty-First Century