Getting Started with IoT Solutions on Microsoft Azure
The Internet as a Backbone
The internet has changed everything and we no longer see it as a tool to discover and gather information but a central backbone of our every day lives, in fact, we are slowly becoming dependent on it. It's a scary thought but think about how we socialise with our friends, how we read our news, how we view TV, how we order a taxi and certainly how we do our work. If the internet didn't exist, the world as we know it today, would stop working. By all accounts we are only touching the tip of the iceberg. There are many reports that estimate how many devices are today connected to the internet and how many will be in the future. 8 billion now and 20 billion by the year 2020 is probably not a bad estimate, with this only being a very small percentage of what will one day join the network. But why is this happening? It's simply the fact that more and more companies are finding ways to innovate and disrupt industry using technologies that rely on the internet. We saw this with Amazon, we see it now with Uber and we will continue to see new businesses add value to their customers by making things smarter and more connected. Of course, all of these connected devices create data and it's estimated that 90% of the data stored now was created in the last two years and by 2020 we will be storing 5 times what we have stored to date.
If you are one of those businesses looking to innovate with IoT then all of this presents some challenges:
- How do we connect a plethora of different devices that run different operating systems.
- How do we ingest all of this data? As the number of devices grow and we find more and more uses for IoT we need the bandwidth and technology that can stream this data easily and efficiently and not clog up our devices.
- How do we analyse data on the way in, to look for anomalies or triggers for alerts or other business processes. Think tsunami, fire or flood alerts systems.
- How do we decide what data to store and then store it in an efficient way so that it can be analysed easily.
- With so much data can we analyse it efficiently and gain insight quickly.
- Can we use the data to define predictive models and then integrate those models into our business processes.
This is where Cloud technologies come in, or more specifically Hyper-scale clouds. Cloud technology has made overcoming these challenges really simple, and not just for those with a big budget, but those that want to start small and grow. Microsoft Azure solves these challenges by offering a suite of managed services that each solve a specific challenge but integrate into a complete end to end IoT solution that will scale as you need it to, keep your data safe and secure as well as remove the need for you to manage the underlying infrastructure, allowing you focus on deriving business value.
The cloud solution also comes with OpenSource SDKs, written in C, Node.js, Python, Java and c#s, that support ingesting data from RTOS, Linux, Windows, iOS and Android operating systems allowing you to connect any device.
Getting Started with Azure IoT
I am the first to admit that getting started with Azure can be a challenge, considering the number of services available and how quickly they are changing. Even with in IoT now there are many services and features to understand, so here are the steps I would suggest you take to get started quickly:
- Check out this Microsoft Virtual Academy course. This is a free online training course that covers all aspects of our IoT platform.
- Check out the IoT Suite. This is a site that will allow you create a demo solution very quickly. Behind the scenes the suite creates all of the Azure components that the solution needs and will provide a web based dashboard to manage your solution. It even provides all of the code in a GitHub repository so you can customise it for your own solution. NOTE: word of caution, the suite creates quite a few resources that could burn your Azure credit quickly if you are only on a trial, e.g. the Azure IoT Hub it creates is the most scalable and expensive, so feel free to down scale some of the resources with the Azure portal.
Devices on the Edge
- If you want to build and connect devices check out the starter kits here http://azure.com/iotstarterkits. Also if you have your own devices running a RTOS, Linux or Windows or even iOS and Android check out our opensource sdks on GitHub here: https://github.com/Azure/azure-iot-sdks.
- For device level security consider devices that support TPM (Trusted Platform Module). See this link for Windows 10 IoT Core support for TPM devices.
Device Registration and Management
- At the centre of an IoT solution is the IoT hub which controls device registration, device security, management (via LWM2M) and ingestion of data. To dive deeper into connecting your own devices, check out the IoT Hub developer site.
- If you need to deploy gateways or are working with legacy gateways the IoT Gateway SDK can help with edge analytics, minimising latency, conserving network bandwidth and aggregating and securing data from multiple edge devices.
- If you plan to use MQTT then check out the protocol gateway developer page.
Business Intelligence, Analytics and Machine Learning
- The above steps will show you how to use Azure Stream Analytics to analyse data as it is being ingested. Check out this tutorial to see how Power BI can be used to visualise this real-time data.
- Check out the machine learning portal. Here you can import data and create predictive models from it. The portal has a graphical interface for developing models but you can also import your existing R code. Once your model has been trained and tested it can simply be exposed as an API for integration with other systems or business processes.
- The Cortana Intelligence Suite has a bunch of tools from Data Lake storage and analytics to Hadoop.
Demos and Opensource Code
- Check out the Clapometer demo based on the Sound Monitoring solution developed with Croke Park
- Check out my Smart HVAC demo that demonstrates an end to end solution from data ingestion to machine learning and real time analysis of data using the prediction algorithm developed in machine learning portal.
Best of luck with it and don't forget to keep an eye out on the Azure blog for more new enhancements and features.