The recent tech trend called the Internet of Things (IoT), and its amazing capabilities, derive from the constant descend of the cost of sensors, circuits, networking, storage, and processing, in combination with the strong analytical capabilities Data Science and Big Data have to offer.
According to Wikipedia, the IoT is a network of interconnected physical objects, embedded with sensors and software that allow them to send and receive information. Remotely monitoring and controlling electronic devices is not something new in the core of it, since it has been around for decades. The significantly decreased cost of implementing such systems, though, has enabled us to connect and manage way more devices than we were able to do in the past.
The opportunities of Internet of Things
This opportunity has led many sectors and industries to adopt IoT technologies, with the primary goal of saving costs, improving asset utilization, making processes more efficient, and improving productivity.
Some of the key IoT adopting industries are currently the automotive and transportation industry, healthcare, manufacturing, retail, supply chain and infrastructure, but the list only keeps growing as new capabilities and benefits of IoT applications are being discovered.
Using IoT technologies certainly has its challenges, some of which include data and information management issues, privacy and security concerns, organizational inability to manage the complexities of IoT, and finally, the lack of standards and interoperable technologies. Gladly enough, big industry players like Microsoft have stepped in to create universal IoT platforms that support many different devices, protocols, programming languages, and data managing methods. This aims to satisfy the needs of the most demanding commercial IoT applications.
Internet of Things and Microsoft Azure
Microsoft’s Azure Cloud provides a full set of interoperable cloud services that can be combined to create extremely powerful and scalable IoT systems in a matter of hours.
Naturally, the first step of implementing any IoT system, is getting the raw sensor data from the devices to the system for analysis, processing, storage, and of course action. The first endpoint of our IoT system is a new Azure service called the Azure IoT Hub – it’s a fully managed service that enables reliable and secure bidirectional communications between millions of IoT devices and a solution back end. It provides reliable device-to-cloud and cloud-to-device messaging at scale, enables secure communications, provides extensive monitoring for device connectivity and identity management, and finally it includes device libraries for the most popular languages and platforms.
The IoT Hub receives all the constant streams of raw sensor data, but does not perform any action on it – this is the job of Stream Analytics, whose role is to monitor the IoT Hub and perform operations on it, from reformatting and transferring the data, to looking for specific patterns and triggers that should result to some sort of action, depending on the event.
For example, in our solution, there is a particular Stream Analytics job that constantly monitors the raw sensor data of the IoT Hub that is related to a user’s heartrate, and when a sudden change is noticed, some action is taken (in our case, calling a person next of kin or even notifying an ambulance).
Such simple events can be identified using hard-coded rules through a SQL-like language Microsoft has developed for the Stream Analytics jobs. Detecting more complicated patterns and events, though, can be more challenging and the use of Machine Learning techniques is necessary; Machine Learning can allow the system to recognise patterns derived from previous trained use-case examples. Luckily, the people at Microsoft have also taken care of that, providing seamless integration with Azure’s Machine Learning Studio.
It is now possible to create statistical models of sensor use-cases using previous historical data, deploy them, and then use them as functions on the Stream Analytics service to help easily recognise new similar events that match the patterns of the trained models. This can be extremely helpful in many IoT cases, for example predictive monitoring, i.e. predicting when an engine will break before it does, based on similar sensor data patterns of engines that broke in the past. When those patterns are spotted, Stream Jobs can interact with other Azure Services such as Event Hubs and Web Jobs, to create triggering events and perform the necessary actions.
The last pieces of the Internet of Things and Microsoft Azure puzzle would be storing the data and visualizing it, both issues for which Microsoft Azure already provides more than enough solutions like SQL Database, SQL Data Warehouse, and DocumentDB for storage, and PowerBI for visualization.
The strongest advantage of the Internet of Things and Microsoft Azure solutions is that all the services can interact with each other seamlessly, with no delay, availability or security issues, since they all reside on the same data centres used to host the entire solution.
To the outside world, your IoT solution can seem like a black-box that takes in all the raw sensor data, stores it, and performs the necessary actions depending on the application.
To conclude, Microsoft Azure’s services can be used together to build extremely efficient and scalable IoT solutions easily, as long as one understands the high-level architecture and requirements of an IoT system, automatically handling a large percentage of the complicated technicalities, allowing the engineers to focus on the system’s bigger picture.
Written by Ion Kleopas | Data Scientist, RedPixie | See his LinkedIn Profile