simplifying iot app development - a whitepaper by rapidvalue
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
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
©RapidValue Solutions September, 2017