Azure IoT Development Cookbook

By Yatish Patil
    What do you get with a Packt Subscription?

  • Instant access to this title and 7,500+ eBooks & Videos
  • Constantly updated with 100+ new titles each month
  • Breadth and depth in over 1,000+ technologies
  1. Free Chapter
    Getting Started with the Azure IoT Platform
About this book

Microsoft’s end-to-end IoT platform is the most complete IoT offering, empowering enterprises to build and realize value from IoT solutions efficiently. It is important to develop robust and reliable solutions for your organization to leverage IoT services.

This book focuses on how to start building custom solutions using the IoT hub or the preconfigured solution of Azure IoT suite. As a developer, you will be taught how to connect multiple devices to the Azure IoT hub, develop, manage the IoT hub service and integrate the hub with cloud. We will be covering REST APIs along with HTTP, MQTT and AMQP protocols. It also helps you learn Pre-Configured IoT Suite solution.

Moving ahead we will be covering topics like:-Process device-to-cloud messages and cloud-to-device messages using .Net-Direct methods and device management-Query Language, Azure IoT SDK for .Net-Creating and managing, Securing IoT hub, IoT Suite and many more. We will be using windows 10 IoT core, Visual Studio, universal Windows platform. At the end, we will take you through IoT analytics and provide a demo of connecting real device with Azure IoT.

Publication date:
August 2017
Publisher
Packt
Pages
254
ISBN
9781787283008

 

Getting Started with the Azure IoT Platform

In this chapter, you will learn the following recipes:

  • Creating Azure IoT Hub from the portal
  • Creating Azure IoT Hub from the Command Prompt
  • Creating Azure IoT Hub from PowerShell
  • Understanding the Azure IoT Suite
  • Using Azure IoT SDK
  • Calculating the pricing of IoT Hub
 

Introduction

IoT is the next revolution in computing and is truly the first step toward a digital business. Connected sensors, devices, and intelligent operations can transform businesses and enable new growth opportunities. A critical part of IoT is cloud-based solutions that enable you to connect, secure, and manage IoT devices, as well as providing deep insights from IoT data. Microsoft Azure is an all-in-one IoT platform which provides ways to implement end-to-end IoT solutions.

The recipes in this chapter will primarily focus on getting you started with the Microsoft Azure IoT platform, understanding the IoT lifecycle, and each phase of the IoT solution, followed by which, we will also consider how to create an IoT Hub and how the IoT Hub endpoints work. You will also be introduced to the Azure IoT Suite introduction. We will go through the sizing of different IoT Hub instances and will end with pricing calculations for IoT Hubs. IoT Hub is a central connection point for IoT devices and IoT solution, the features Hub supports are IoT specific.

Getting started with the Microsoft Azure IoT platform

Microsoft Azure supports connectivity, data ingestion, storage, to analytics using a diverse set of cloud offerings. One can easily adopt the Microsoft platform for reliable and secure IoT device-to-cloud communication when you build any IoT solution.

Azure IoT Suite image from Microsoft documentation

Components of the IoT platform

Today, IoT is described using various definitions; however, it essentially consists of four basic areas:

  • Things: Any physical thing, such as line-of-business assets, including industry devices or sensors
  • Connectivity: Those things that have connectivity to the internet
  • Data: Those things that can collect and communicate information – this information may include data collected from the environment
  • Analytics: The analytics that come with the data produce insight and enable people or machines to take actions that drive business outcomes

Microsoft's IoT platform's core foundation is the Azure cloud platform; it has a set of services to help companies achieve the benefits of implementing an IoT strategy. Microsoft's Azure IoT services are a set of IoT capabilities, outlined in the following, enabling enterprises to build and realize value from IoT solutions quickly and efficiently. As part of core IoT offerings, Microsoft Azure IoT services enable Microsoft to meet the customers wherever they are in their IoT journey – whether they are focused on where to start, or are ready to scale IoT scenarios which will transform their digital business.

The Azure IoT approach to providing such an IoT platform is built on three foundational pillars. These IoT services set Microsoft apart from other vendors – no other vendor delivers the breadth of capabilities, enterprise level service, and scale that Microsoft does.

  • Comprehensive technology: The most comprehensive set of IoT technologies, to help customers connect, analyze, and act on insights
  • Enterprise focus: The services are built on an enterprise grade cloud that take advantage of all the scalability and security features we have enabled in our cloud
  • Global scale: By leveraging Azure IoT services, customers can seamlessly scale from Proof of Concept (PoC) to global deployment on Microsoft's hyper-scale worldwide infrastructure

Microsoft Azure IoT platform

The IoT solutions offered by Microsoft Azure are broadly divided into two categories. These are Azure IoT Suite and Azure IoT Hub. IoT solutions, including Azure IoT Suite and Azure IoT Hub, harness the power of our full cloud, data and developer offerings for the enterprise to provide hyper-scale IoT services, rich data and analytics, and deep integration. The IoT Suite is generally used by developers to build custom solutions using IoT SDKs. Microsoft Azure IoT SDK are open source are easily available to download from GitHub. It supports various language like C#, Node.JS, C, and Java. you can use any machine which is capable of development with these technologies.

The Azure IoT offerings are customizable to fit the unique needs of organizations. It will provides finished applications to speed deployment of common scenarios we see across many industries. Some example of such common scenarios are remote monitoring, asset management and predictive maintenance. It can grow and scale solutions to millions of things. The Azure platform provides a simple pricing model while providing a rich set of capabilities, so companies can plan and budget appropriately. This approach is aimed at simplifying the complexities that often exist with implementing and costing IoT solutions. Along with this, Microsoft and its partners also provide a workshop in which one can identify IoT scenarios, and at the end of this workshop, they can decide to work on common goals. These workshops have various stages starting right from business problem identification, implementing PoC, to development and trials with organizational readiness and implementing it across an organization to achieve the business outcome following the path for the digitization of the business.

Developers can start building custom solutions using IoT Hub or get started quickly with the comprehensive pre-configured solutions of Azure IoT Suite (which includes Azure IoT Hub). This book will focus mostly on Azure IoT Hub and IoT Suite.

 

Creating Azure IoT Hub from the portal

Microsoft Azure is a leading PaaS service provider. The Azure IoT Hub is nothing but a fully managed service that enables secure and bidirectional communication with millions of IoT enabled devices using IoT protocols such as HTTPS, AMQP, and MQTT. It helps to connect, control, and manage these devices. Microsoft Azure provides easy-to-easy IoT SDK, which are available in various languages, such as C#, C, Node.js, and so on.

Getting ready

Azure IoT Hub provides:

  • Device identity and registry
  • Device-to-cloud and cloud-to-device communication, including one way or bidirectional
  • It also supports file transfer messages
  • We can query the device store information to find out device properties, firmware versions, and other configurations
  • SDK for most platforms and languages to support development
  • Secure authentication on a per-device basis
  • Monitoring for devices and messages

Azure IoT Hub diagram from Microsoft Azure documentation

How to do it...

To create your first IoT Hub, you will need a Microsoft Azure account. You can easily get registered on Azure.com.

Once you have access, you can follow the steps to create your IoT Hub:

  1. Log in to https://portal.azure.com.
  2. Once you are logged in, click on the New menu:
  1. This blade will show all the Azure services available, we need to expand the Internet of Things and hit the IoT Hub, as shown in the following:
  1. This will come up with a new blade, where we need to fill in the details and hit the button to the create IoT Hub:
    • We will give the Name as IoTHubCookeBook
    • Pricing and scale tier should be F1 - Free
Microsoft Azure provides free tier. This is useful for learning, as well as to evaluate any PoC on how the IoT solution will be developed.
  1. We will select the data center of our choice from the list of the many available.
  2. Partitions: A default value is set when the IoT Hub is created. You can change the number of partitions through this setting:
  1. Hit the Create button and Azure will create the free tier IoT Hub for you in a moment:
 

Creating Azure IoT Hub from the Command Prompt

How to do it...

In this section, let's look at creating an IoT Hub using CLI:

  1. Open the Command Prompt within administrator mode.
  2. Use the login command in Command Prompt:
azure login
  1. It will ask you to login using a web browser with the link displayed in the Command Prompt:
Login command
  1. The web link will validate the code generated in Command Prompt:
Login authenticate through web
  1. Once you successfully log in, it will show a message on the browser and you can go back to the Command Prompt for your work:
Login validated successfully
  1. Now, select the account with which you want to work and create the IoT Hub:
azure account set “Visual Studio Enterprise”
Select Azure account
  1. Now, we need to create a resource group, which this IoT Hub will be a part of:
azure group create -n MyBookIoTHub -l westus
  1. We use the following command to create a new IoT Hub using the Command Prompt:
azure iothub create -g MyBookIoTHub -n MyBookIoTHub -l westus -k s1 -u 1

In the preceding create IoT Hub command, the parameters are resource group, IoT Hub name, location, instance size, and unit.

 

Creating Azure IoT Hub from PowerShell

How to do it...

Let's look at this section to create IoT Hub using PowerShell:

  1. Open PowerShell in administrator mode:
Start PowerShell in administrator mode
  1. Once the PowerShell window is ready, log in to the Azure account using the command:
'Login-AzureRmAccount'
Login to Azure account
  1. If you have only one Azure subscription, then you are good to go.
  2. If you have multiple subscriptions, first we need to select the subscription which we need to work on.
  3. To view a list of all the available Azure subscription for your work use the following command:
'Get-AzureRMSubscription'
  1. Select the subscription with the command, (in my case it is Visual Studio Enterprise):
Select-AzureRMSubscription -SubscriptionName "{subscription name}"
Select the Azure account to work with
  1. Before we create the IoT Hub, we need to create a resource group, which this IoT Hub will be a part of.
  2. The command to create a new resource group is the following:
New-AzureRmResourceGroup -Name MyBookIoTHub -Location "West US"
Add new resource group
  1. We will create the IoT Hub using the following command:
New-AzureRmIotHub `
-ResourceGroupName MyBookIoTHub `
-Name MyBookIoTHub `
-SkuName S1 -Units 1 `
-Location "West US"
Azure IoT Hub created
  1. You can log in to the Azure portal and view the newly created IoT Hub:
IoT Hub list view
  1. To view the available IoT Hub in your account, use the command:
Get-AzureRmIotHub
  1. To delete an existing IoT Hub, use the following command:
Remove-AzureRmIotHub `
-ResourceGroupName MyBookIoTHub `
-Name MyBookIoTHub
 

Understanding the Azure IoT Suite

The Azure IoT Suite is a set of Azure services that provides you with a complete solution which helps with the following:

  • Collecting data from devices
  • Analyzing data streams in-motion
  • Storing and querying large datasets
  • Visualizing both real-time and historical data
  • Integrating with backend systems
  • Managing your devices

IoT Suite architecture from Microsoft Azure documentation

The Azure IoT Suite can connect with a broad range of devices with the help of IoT SDKs. The data generated by devices can be any operational data.

These devices can send that data to the Azure IoT Hub using the Azure IoT cloud gateway. The IoT solution backend receives, processes, and stores the data from these devices. The Azure IoT and Power BI enables you to analyse the data and present it in the form of dashboards or Power BI reports.

How to do it...

We will understand pre-configured solutions in this section:

  • What is a pre-configured solution?
  • How remote monitoring works
  • How predictive maintenance works
  • How connected factory works

How it works...

Microsoft helps companies to take advantage of IoT to transform business outcomes by providing pre-configured solutions under IoT Suite, a common IoT solution pattern to reduce the time for initial base development. This is comprised of multiple Azure services which are a part of the Microsoft IoT platform. The source code is also available on GitHub, using which, one can customize the solution as per specific business scenarios.

Pre-configured solutions

Azure IoT Suite provides two common IoT solution patterns. Each solution is end-to-end, built along with the simulator to generate the telemetry data. These solutions give you the starting point for your IoT case, as well as a lesson on how a common IoT scenario works.

Microsoft Azure IoT provides three common scenarios in the form of pre-configured solutions with IoT Suite:

Remote monitoring: This preconfigured solution connects and monitors devices. Once we deploy the remote monitoring suite on Azure subscription, it also provides a simulator and these simulated devices will keep on generating data for these devices. Once the data is ingested, it will be processed against a set of rules and the data will then be presented on the dashboard. It uses a Bing map to show the live location of the devices.

Predictive maintenance: Predictive maintenance is another common IoT scenario. This solution, once deployed, starts automatically simulating the data. It also provides a predictive model, which is helpful in the case of asset maintenance. In Chapter 6, IoT Suite and Pre-Configured Solutions, we will be creating pre-configured solutions.

Connected factory: When you deploy the connected factory pre-configured solution, this solution is built with a common industrial scenario. In this scenario, factories can be connected to the solution, thus reporting the data values required to find out overall equipment efficiency (OEE) and key performance indicators (KPIs) for the factory operations. The following sections show you how to:

  • Monitor factory, production lines, station OEE, and KPI values
  • Analyze the telemetry data generated from these devices using Azure Time Series Insights
  • Act on alerts to fix issues

It also provides the dashboard view for these actions and operations as a part of this solution.

 

Using Azure IoT SDK

Azure provides SDK for the device side as well as the PaaS services which are a part of its IoT stack. Microsoft Azure IoT SDK are open source are easily available to download from GitHub. It supports various language like C#, Node.JS, C, Java. you can use any machine which is capable of development with these technologies.

Azure IoT device SDK, which runs on the IoT device side enables the device for communicating with the IoT Hub. It uses the protocols available. The application deployed on the device then sends the telemetry data to cloud. For this purpose, the device needs to be registered with the IoT Hub as well. These SDKs also help run the bidirectional commands which make it easy to control and manage the device.

Getting ready

Currently these IoT device SDKs support different programming languages, such as ANSI C using .NET C#, and for Java, Node.js and Python as well.

Likewise, these SDKs also support various OS and platforms on which we can develop the applications. Microsoft has made these SDKs portable on any platform and OS. By making these SDKs open source, they are readily available for download on GitHub to make any customization as per your needs.

How to do it...

Azure IoT service SDK provides the code that is used in building an IoT application that directly works with the IoT Hub. It will enable you to manage devices, read messages sent by devices, or even send commands to devices to control actions at the device end.

The GitHub URL to download these open source SDK's are:

Azure IoT gateway SDKs are used to simplify the connectivity to IoT Hub when we have scenarios which vary drastically between industries, and even between customers within the same industry. The Azure IoT gateway SDK can be used to implement custom-made IoT solutions for your scenario. The device SDKs can be used to implement an IoT client that facilitates connectivity to the cloud. It simply uses the supported communication protocol, it will extract and process the data using the protocol supported before sending it to the cloud.

See also

 

Calculating the pricing of IoT Hub

IoT Hub is offered in four editions: Free, S1, S2, and S3. IoT Hub is generally available. In this section, we will understand the different instance sizes and will apply a calculation to find the pricing of IoT Hub. This will help you to identify the right size, and right cost for your IoT solution.

Getting ready

The pricing table based on Microsoft Azure IoT Hub pricing is as follows:

Instance

Price

Message/Day

Message size

Free

$ 0

8,000

0.5 KB

S1

$ 50

400,000

4 KB

S2

$ 500

6,000,000

4 KB

S3

$ 5,000

300,000,000

4 KB

How to do it...

To find out the what will be the price based on the IoT solution needs we will use the pricing calculator provided by Microsoft Azure:

  1. The price is per size of the IoT Hub instance.
  2. First find out the size and units per size required.
  3. First use the following link to go to Azure pricing calculator:

https://azure.microsoft.com/en-gb/pricing/calculator/

  1. Now select the Azure service for which you want to estimate the price, in our case it is IoT Hub:
Select the service for estimation
  1. Once you have selected IoT Hub service, it will show the estimation area:
IoT Hub selected for price estimation
  1. Select the IoT Hub tier based on the number of messages per day capability you want to build in your IoT solution:
Select the IoT Hub tier
  1. Select the number of units required to full fill your requirement amount of messages per day:
Set the units for selected tier
  1. I have selected S1 tier with 2 units. It will support 800 k messages per day at $100.

There's more...

Let's consider an example to understand how the pricing works.

A device ingests the 1 KB device-to-cloud message size data per minute to the IoT Hub. The solution backend invokes a method (with 512 bytes of payload) on the device every ten minutes to trigger a specific action. The device responds to the method with a result of 200 bytes.

The device consumes 1 message * 60 minutes * 24 hours = 1440 messages per day for the device-to-cloud messages, and 2 requests plus responses * 6 times per hour * 24 hours = 288 messages for the methods, for a total of 1728 messages per day.

See also

About the Author
  • Yatish Patil

    Yatish Patil is currently working with Saviant Consulting as a technical project manager. He has delivered enterprise IoT and analytics applications using Microsoft Azure, ASP.NET, MVC, C#, SQL Server, and NoSQL. He has diverse industrial experience in IT and has worked in a variety of domains, such as utilities, manufacturing, and engineering.

    He has completed his certification in Developing Azure Solutions in the Microsoft Azure Certification.

    Yatish was also the technical reviewer for a Microsoft Azure-based technology book Microsoft Azure IaaS Essentials, which teaches guides Microsoft Azure subscribers how to design, configure, and build cloud-based infrastructure using Microsoft Azure.

    Yatish was among the industry speakers at India IoT Symposium, 2016. He delivered the industry session on remote asset monitoring with Microsoft Azure IoT Suite.

    Browse publications by this author
Latest Reviews (1 reviews total)
Azure is an immense cloud with a lot of resources, and IoT is one of its major resources. This book covers a path guiding developers in how they could extract and construct and IoT application and infraestructure using Azure.
Azure IoT Development Cookbook
Unlock this book and the full library FREE for 7 days
Start now