Microsoft Azure IoT Edge deployment for Cloud Intelligence
Published on 1st November 2018 | Kunal Phadnis
About our Client and the core Business Challenges
Our client is the UK’s leading supplier of instrumentation and controls. It builds innovative solutions that combine software, hardware and related services to support technically-challenging industrial applications. It has turbine farms across all Europe. Monitoring conditions of the internal moving parts of a turbine or rotating equipment is a very tedious task and is carried out by field engineers at turbine sites. The data is collected manually and stored in a central server containing desktop applications & SQL database; to manage all the raw data and metadata of the turbines. However, manual data-entry errors were prevalent. And, detecting device anomalies was a time-consuming process with no automated system.
The Need for Device Intelligence – Determining the factors
Considering all these challenges, the client needed a system that would monitor turbine conditions and quickly detect anomalies automatically. This would help in proactive decision-making and in preventing failures before they occur. Our IoT consultants recommended a solution that brings cloud intelligence to the end devices by utilizing Azure IoT Edge.
The solution would detect the failures through the compute services that run at the edge of connected devices. The system would not send the raw parameters to the server, instead the containerized modules deployed on the Edge device would use the raw parameters along with the trained model built on recent data; and the machine learning algorithms would help in detecting any possible component failures. Also, a notification engine set up would trigger notifications to the concerned workforce; informing them about the potential failure possibilities. This solution would help in reducing the cost of cloud compute services, the network bandwidth and internet data; thereby would trigger quick actions without waiting for the field engineers or the diagnostic engineers to visit the field for diagnosing the problems. This system would help the field engineers in detecting turbine anomalies beforehand for preventive maintenance purposes.
What is Microsoft Azure IoT Edge?
There can be millions of devices on field like smart meters or temperature controllers, which can shut the water pumps once the tank is full or exceeds the optimum temperature. There can be devices that perform conditioning monitoring of turbines or gas pumps.
But, think about these millions of devices that capture & send data to the cloud for further analysis. This process consumes a lot of network bandwidth to communicate & share data. In addition, there might be a compute service continuously working in the background to process this received data. Ahead of this, there can also be a stream analytics pipeline plus a machine learning compute on top of the data, which helps in prediction of device failures. All these compute services and network utilization in the cloud involves high costs.
IoT Edge computing model brings down this possible computing to the device level and minimizes the network bandwidth. Azure IoT Edge is the logical extension of Microsoft’s Azure IoT platform. Importantly, this technology is available as an open source project on GitHub. Isn’t it a great thing to be happy? At the heart, the Edge works with containers.
Azure IoT Edge enables the edge devices to perform several tasks without the need of internet connectivity. Internet is required only for module deployment updates and often to send data to the cloud.
Here's how we solved the problem - Our Approach and Deployment
Dealing with enormous data volumes that multiple turbines generate and utilizing numerous raw parameters to detect device anomalies was not an easy job. Also, the challenges with the latest Azure IoT Edge technology for the solution were unknown. So, to understand & deal with all these potential impediments and create a successful implementation roadmap, our IoT consulting team proposed the client for a proof of concept.
We first started off with a C# module written in .NET Core. This module is a simulator which simulates turbine sensor data (imitating several turbines running in a large turbine farm) leveraged to detect anomalies. We used random sensor data and turbine serial numbers that use random data to be simulated. This simulator imitates an actual Edge device that receives turbine’s sensor data parameters. This engine does not send JSON object of load of sensor parameters and turbine metadata to the cloud. Instead, Edge routing is defined to transmit data to the next module which is a machine learning module.
We used random turbine data generated by the system, and this data was used for building a trained machine learning model using Python. By writing a custom Python code, a trained model was created on the local disk. Once this is done, Azure IoT Edge packaging engine generates a containerized image of the trained model and a Python code to use the trained model. Once this package was uploaded on the Docker container registry, we could use this as a module to be deployed on the Edge device. First, 70% turbine sensor data was used to build a trained model and 30% was used as a test data. Once we received a 90% plus accuracy with Multi-class Multi-label algorithm, this trained model was packaged with a module Python program to work as an independent ML module on Edge device.
Once the turbine sensor data parameters are received by the ML module from the simulator module, it uses its own local trained model on the Edge device to fit the data against it and detects if there is any possible fault in any of the turbine’s component. If there is an anomaly, the Edge device will send the related data to the cloud, else no data communication is done. This reduced the cost of bandwidth used, Edge device battery power, and the cloud compute consumption costs required; in order to process the turbine sensor data and then perform proactive actions.
Business outcome from Edge Intelligence
The Edge implementation will bring down certain cloud workloads directly to the device level, which makes the device to be capable of making decisions with no internet connection. By implementing IoT Edge, our IoT consulting team was able to prove that there are several such possibilities to make “Edge” device intelligent for improved decision-making. Moreover, these capabilities can be upgraded or enhanced at device level by using the cloud itself, with no manual intervention required to upgrade the device deployments. The client was impressed with the potential benefits that this PoC holds and agreed for its implementation on real-time data across its turbine farms.