simplifying iot app development - a whitepaper by rapidvalue

19
SIMPLIFYING IoT APPLICATION DEVELOPMENT A step by step guide to build IoT application on Azure without using complex hardware. A Whitepaper by RapidValue Solutions

Upload: rapidvalue

Post on 21-Jan-2018

100 views

Category:

Technology


1 download

TRANSCRIPT

Simplifying IoT Application Development

SIMPLIFYING IoT APPLICATION DEVELOPMENTA step by step guide to build IoT application on Azure without using complex hardware.

A Whitepaper by RapidValue Solutions

Simplifying IoT Application Development

index

01 Executive Summary

02 How does IoT work?

03 Rise of IoT

05 Setting the context for building our demo application

06 Simplified architecture

0808

11

13

14

15

Five steps to build a simpleAzure IoT application

Set up an Azure IoT hub

Create a new Azure IoT device

Creation of simulator device app

Creation of telemetry receiver app

Graphical view of the data in web application

16 Conclusion

©RapidValue Solutions

17 About RapidValue

Simplifying IoT Application Development

Hello connected world!

Who wouldn’t want to wake up to a smart coffee

maker, a smart refrigerator, connected cars,

smarter energy management systems, intelligent

fleet tracking and many such things?

With Internet of Things (IoT) technology growing

leaps and bounds, we are moving towards a future

where devices have become smarter and humans

are in control of the devices. As this technology

brings in a lot of curiosity and uncertainty among

people and enterprises alike, many startups and

global corporations are embarking on a journey to

build innovative IoT applications.

“Business Insider predicts that total business

spending on IoT solutions will reach $6 trillion by

2021.”

This paper illustrates a step by step approach on

building an IoT application without using complex

hardware. This paper is a guide for technical and

ExecutiveSummary

non- technical professionals to get started on IoT

development. It explains how you can build and

try out a basic solution using a simulator device on

your PC that can send trigger events to the Azure

IoT Hub rather than having a need to buy or build

an actual hardware device.

Note: There are various IoT platforms like Predix,

Amazon Web Services (AWS), ThingWorx, Azure,

IBM Watson etc. with different capabilities

available in the market which provide quick

deployment of IoT applications. You can select the

platform based on your business requirements

and existing IT systems that your enterprises use,

along with other aspects such as functionality,

protocols supported, scalability, security and

adaptability. For demonstration purpose, we have

tried to outline a methodical approach to build

a basic IoT application on top of Azure platform

using simulated device. This can trigger sensor’s

readings. Readers can try a similar approach on

other platforms as well.

1

©RapidValue Solutions

SIMPLIFYINGIoT APPLICATION DEVELOPMENT

1

Simplifying IoT Application Development

How does IoT work?

Let’s take an simple example, a fleet scheduling

application, which provides the information about

the location of the vehicle from fleet of trucks.

Let’s begin with the data of location, for instance,

location of the truck which is sent via a GPS device

enabled in the truck. This device is connected

to network using a GSM or cellular connectivity

to send the data to IoT hub. The IoT hub in turn

receives data and stores it on the cloud. This data

is then made available to the application and the

users can access and interact with the application

using a mobile app or a web interface.

2

SIMPLIFYINGIoT APPLICATION DEVELOPMENT

©RapidValue Solutions

Simplifying IoT Application Development

Rise of IoT

The rise of IoT has left many enterprises wondering

how to build a secured IoT application. As a

thumb rule, any new area that is explored usually

starts with an experimentation phase. In case of

IoT applications, enterprises are following the

same principles of Proof of Concepts (POCs) and

pilots. They want to look at a quick win simplified

use case and leverage many of the ready to use

IoT platforms to try out their solution. Solution

providers are going through the dilemma of how

to internally build capabilities and knowledge

base for helping their customers in these kinds of

POC engagements.

The first stepping stone for these POCs are, at a

developer level, getting familiarized with the

platforms, solution stack and how to get started

developing some application before buying some

complex hardware.

45%developers are

currently buildingIoT apps

77%are excited

about the IoT

3

SIMPLIFYINGIoT APPLICATION DEVELOPMENT

©RapidValue Solutions

Simplifying IoT Application Development

Settingthe contextfor building thedemo application

©RapidValue Solutions

4

SIMPLIFYINGIoT APPLICATION DEVELOPMENT

Simplifying IoT Application Development

Components of the demo app

The components that can be a part of the

demo application are:

• Simulator app

• Smart phone/tablet/PC

Hardware

Software

• Data collection, analysis and

visualization

• Stream processing

• Protocol - AMQP

• Message brokers

• Security and authentication

• Language - NodeJS

Solution brief

This smart bin application will help

monitoring the capacity in real-time

and sending notification or alerts to the

users about the capacity of the bin. The

application is aimed at reducing the

manual efforts for checking and collecting

the garbage. The alerts can be set based on

the user preferences.

Problem statement

Typically, the bins have to be checked on

a regular basis for disposal whenever it is

full and the process is time consuming and

costly, where someone has to manually

check every now and then.

Setting the context for building the demo application

Objective

We are building a smart bin monitoring

application to monitor the garbage bins

remotely. This application will allow users

to monitor the capacity of the bin and

notify them when it is full or almost full for

collection of garbage.

Note: Microsoft Azure supports different languages

like .Net, Java, NodeJS and Python.

5

SIMPLIFYINGIoT APPLICATION DEVELOPMENT

©RapidValue Solutions

Simplifying IoT Application Development

For this demo app, we will use a simulator device

which will send continuous data to Azure IoT hub

on the level of garbage or how full the bin is. The

data sent will be in the unit of percentage of the

total capacity. The Azure IoT hub will receive the

data and later we can pull that data and store

it in a database and visualize it in a web/mobile

application.

Below is the pictorial representation of the same.

Simplified architecture

Event Producer

Ingestor(Message Broker)

TransformationMiddleware

Simulator Receiver

Azure IoT Hub

6

SIMPLIFYINGIoT APPLICATION DEVELOPMENT

©RapidValue Solutions

Simplifying IoT Application Development

Transformation

Once data is ingested from the Ingestor,

transformation layer needs to pick subsets

of events based on business need, transform

the shape of the data and route to specific

storage location.

Ingestor

Ingestor is to scale and handle incoming

data quickly without decelerating down

the entire process. Once the simulator app

is registered and it sends telemetry data,

Azure IoT hub ingests device events and

scales it.

Azure IoT hub scales by considering these

factors:

Event Producer

Event producer produces telemetry

data from the simulator application. This

application will simulate data like an IR

sensor. These simulators have to follow a

network prototype (like AMQP, MQTT or

HTTP) to send the telemetry data. The data

will be in increasing percentage values

across time series until a maximum of 100%

is reached. Once it reaches the maximum it

will again be reset to zero.

• Size of the message

• Frequency at which it sends

telemetry

• Number of active devices

It also, provides different packages from

where you can choose based on the

number of devices and messages you

require. To begin with, we can go with

a free plan since we are simulating

the data with one simulator app

and with limited messages per day.

7

SIMPLIFYINGIoT APPLICATION DEVELOPMENT

©RapidValue Solutions

Simplifying IoT Application Development

Five steps to build asimple Azure IoT application

1. Set up Azure IoT hub

2. Create new Azure IoT device

3. Create simulator device app

4. Create telemetry receiver app

5. Monitor data using web/mobile

application

Set up Azure IoT hub01

Navigate to the Azure portal and

login to the account. If you do not have an

account you can create an account quickly

using your email id.

Click on new menu option in the

upper-left. Select ‘Internet of Things’ and

then, Azure IoT hub.

8

SIMPLIFYINGIoT APPLICATION DEVELOPMENT

©RapidValue Solutions

Simplifying IoT Application Development

Create IoT hub by giving it a name,

select or create a new resource group and

location (choose the one closest to your

location).

9

SIMPLIFYINGIoT APPLICATION DEVELOPMENT

©RapidValue Solutions

Simplifying IoT Application Development

After the IoT hub is created,

navigate into it and click on the shared

access policies.

In the next blade, click on the

iothubowner.

Copy the connection string - the

primary key to your clipboard.

10

SIMPLIFYINGIoT APPLICATION DEVELOPMENT

©RapidValue Solutions

Simplifying IoT Application Development

In this step, we will create a new device

identity. This will ensure an entry point

to Azure IoT hub. The connection is

established between IoT hub and devices

based on the TLS (Transport Layer Security).

Thus, the communication of the device is

encrypted in the IoT hub to guarantee the

data confidentiality.

To get started, download the code from this

link. After the device identity is created,

a new token will be generated as below

which is used to create a simulator app.

Create new Azure IoT device02

11

SIMPLIFYINGIoT APPLICATION DEVELOPMENT

©RapidValue Solutions

Simplifying IoT Application Development

After the device is registered in IoT hub, for

confirmation you can check the Azure IoT

hub as below,

12

SIMPLIFYINGIoT APPLICATION DEVELOPMENT

©RapidValue Solutions

Simplifying IoT Application Development

The simulator [D2C - device to cloud app]

will send messages to the cloud both as

telemetry data and meta data. Here, we

have created one simulator device which

sends continuous telemetry data (i.e.,

micron reading) along with meta data

(i.e., DeviceID, deviceName, processor and

other information) to the cloud.

To get started, download code

from this link to create a simple simulator

app.

Run the simulator app.

Create simulator device app03

13

SIMPLIFYINGIoT APPLICATION DEVELOPMENT

©RapidValue Solutions

Simplifying IoT Application Development

Telemetry receiver [C2D - cloud to device]

app will receive the command from the

Ingestor and executes the required action.

Receiver app is a backend system which

receives messages from simulator devices.

The backend system can even receive a

confirmation message or faulty delivery

message to understand if the device has

received the command or not.

To get started, download code

from this link to create a simple receiver

app.

Run the receiver app.

Create telemetry receiver app04

14

SIMPLIFYINGIoT APPLICATION DEVELOPMENT

©RapidValue Solutions

Simplifying IoT Application Development

Graphical view of the data in web application

05

The below graphical view of the web

application displays capacity information

of the bin. This plot illustrates the data

simulated by the simulator app (simulated

by IR sensor in this instance) in the

timeseries chart where X axis refers to time

and Y axis refers to the capacity of the bin

in percentage. In the graph you can see the

data from the simulator and get to know

how full the bin is. Alerts will be generated

once it reaches the 80% mark. We can also

develop one screen for notification alerts

for the demo app.

15

SIMPLIFYINGIoT APPLICATION DEVELOPMENT

©RapidValue Solutions

Simplifying IoT Application DevelopmentConclusion

Thus, we were able to build a bin monitoring application using Azure IoT hub. This is the first step towards IoT application development. As a next step, you can experiment with devices and sensors and can also, improvise the IoT application development by adding multiple sensors and actuators to a physical device where each sensor will give different telemetry data to the IoT hub. In that case, the architecture may include gateways to communicate through a network to a backend system based on the device interoperability.

We foresee a great potential in IoT implementation in several areas. IoT creates opportunities for more direct alliance of the real world that result in economic benefit and better efficiency. The IoT applications simplify our lives and enhance comfort. It provides a lot of opportunities for the app development in aspects like smart home, wearable application, smart cities, healthcare and retail applications, transportation and many more. There is a growing demand for IoT apps in the market which has resulted in a rise in demand for quality IoT application development. It is essential to simplify IoT app development and deliver scalable and highly secure IoT applications

which are instrumental in transforming the smart dreams into reality.

Authors

If you’d like to know more about IoT Application

Development, please reach out to us at

[email protected]

We’d be happy to hear about your experience

in IoT application development or your

comments for the steps we had outlined!

Raakesh Rajan

Nandhini C

Sudhakar Jonnakuti

Senior Consultant-Digital Business Consulting

Business Development Associate

Sr. Software Engineer

16

©RapidValue Solutions

SIMPLIFYINGIoT APPLICATION DEVELOPMENT

16

Simplifying IoT Application Development

Disclaimer:

This document contains information that is confidential and proprietary to RapidValue Solutions Inc. No part of it may be used,

circulated, quoted, or reproduced for distribution outside RapidValue. If you are not the intended recipient of this report, you are

hereby notified that the use, circulation, quoting, or reproducing of this report is strictly prohibited and may be unlawful.

A global leader in digital transformation for enterprise providing end-to-end

mobility, omni-channel, IoT and cloud solutions. Armed with a large team of

experts in consulting, UX design, application development, integration and testing,

along with experience delivering projects worldwide, in mobility and cloud, we

offer a wide range of services across industry verticals. We deliver services to

the world’s top brands, fortune 1000 companies, Multinational companies and

emerging start-ups. We have offices in the United States, the United Kingdom

and India.

www.rapidvaluesolutions.com

+1 877.643.1850

www.rapidvaluesolutions.com/blog

[email protected]

©RapidValue Solutions September, 2017