Introduction to Internet of Things
As more and more devices are released in the market with the attempt at automating and improving our lives, one of the biggest buzzwords that has seized the world by storm is the Internet of Things or IoT for short. While the exact definition of IoT is very difficult, the following principles can be used to characterize a typical IoT system:- Each IoT system targets a clearly well defined goal. E.g. Purify the city's water, improve my posture, track my business growth, track the country's weather trends. Rarely do two IoT system's goals overlap each other. While one IoT system may borrow or cross link data from another, each one has clearly defined boundaries and its own purpose.
- There are one or more devices which record input. More often than not, the input is a direct result of some event or action, triggered by a sensor or electronic input. E.g. for a system tracking a user's running efficiency, the shoe will record foot pressure as soon the runner steps on the ground. The frequency at which the data is recording is important to the accuracy of the system.
- Each device is connected to the internet in some way. This may be via WiFi or via bluetooth to a phone which has a WiFi or data plan.
- Each device posts the recorded data to pre-defined endpoints. This may be in real-time or after a certain amount of recorded data is batched up. The endpoints are reached by using many different internet protocols available and various data formats available. The end points are typically personal computers, high-end servers or the cloud. All of these of course need to be networked to the recording devices either through a local network or via the Internet.
- Endpoints are responsible for dumping the received data into data stores. Recent advances in data science has made it possible to use highly advanced technologies such as Big Data.
- The received data is actually in its rawest form and not quite useful to the user of the system. E.g. Our runner's data is a sequence of mere numbers measuring foot pressure in pascals with a frequency of ten measurements a second. The numbers need to be analyzed. The analysis is typically done using technologies such as big query, map reduce, etc. Once the numbers run though the queries, the newly derived analysis is used to present insightful information to the user.
- Each IoT system has a phone / tablet / web accessible Management Information System. This is a information presentation system where the analysed data from the above step is presented to the user in the most insightful way possible. Tables to show numeric data, bar graphs & line graphs to show progress, pie chart to show shares & break-ups, colour codes to show positives and negatives and other such best practices in data presentation are vital to keep the user engaged. Some systems include comparisons, rewards & perks such as standings against other users of the system, goodies & badges for milestones and the like. But those are not necessarily part of the definition of IoT.
- Each IoT system ends up recording so much data that in the end it is able to learn about the user and predict behaviour.
Case Study: Waze
Waze is a system which is used to help a vehicle driver navigate his way from point A to point B on the best route possible, keeping in mind the distance, the traffic conditions and any known blockages such as road repairs, constructions, toll booths, etc. Waze is able to tap into its huge bank of information about roadways around the world. Their information was deemed so useful that recently Google purchased their data and used it to highlight traffic information on their own Google Maps. How does Waze do it? Let us revisit the points above and map each one to Waze.
- Data Recording: Waze's huge wealth of data starts from their mobile app. They have made an app for every platform imaginable: Android, iOS, Nokia, Windows Phone, Blackberry and other unconventional, but very useful sources such as the operating systems running on car dashboards, such as those made by Ford & Blaupunkt. The app records speed and GPS in realtime. In addition, users can record data such as road block, diversions and even a police check when they spot one.
- The phones of course remain connected with Internet, mostly via data plans. However things can be recorded even when offline and batched and uploaded when the phone connects back to the Internet.
- The data eventually finds its way into the huge cloud owned by Waze where they are stored and backed up multiple times.
- The data is then churned and analyzed from every possible angle.
- The user gets back useful data. Red lines on the roads indicate heavy traffic with slow drive speed, while green ones indicate high speed & free roads. Turn by turn navigation is announced to the user once routes are calculated. If the driver takes wrong turns, then the route is recalculated within a short duration. In traffic junctions and round abouts, the direction of the turn and the which road to take are clearly announced. Similarly events happening up ahead on the road are announced in real time with enough distance to spare. E.g. road block 4km ahead or traffic jam building 3km ahead or an accident having occured 5km ahead are reported well in time, along with any available diversions which may be available.
- Waze learns extensively about the user. E.g. If it notes that the user leaves for work at 7am everyday, then the moment the user starts Waze on his / her phone after several uses at around 7am in the morning, Waze prompts offers to show navigation to the workplace without the user having to start up the navigation by him/herself.
Conclusion
While IoT seems to work rather seamlessly and intuitively from the user's point of view, a huge effort is needed by the engineers of the system itself. They need to delve into a wide array of technologies. In our next post, we shall peel IoT into various layers and see what hardware, software and protocols goes under the making of each layer.