0% found this document useful (0 votes)
21 views

Iot Unit-4 Notes

This document discusses the architecture and functionalities of IoT platforms, emphasizing their role as middleware for connecting devices to the cloud and managing data. It highlights key components such as Arduino and Raspberry Pi, and details the technology stack, scalability, customizability, and security considerations of advanced IoT platforms. Additionally, it provides an overview of various Arduino boards, their features, and components, particularly focusing on the Arduino UNO as an entry point for learning electronics and coding.

Uploaded by

pendemvikas0915
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

Iot Unit-4 Notes

This document discusses the architecture and functionalities of IoT platforms, emphasizing their role as middleware for connecting devices to the cloud and managing data. It highlights key components such as Arduino and Raspberry Pi, and details the technology stack, scalability, customizability, and security considerations of advanced IoT platforms. Additionally, it provides an overview of various Arduino boards, their features, and components, particularly focusing on the Arduino UNO as an entry point for learning electronics and coding.

Uploaded by

pendemvikas0915
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

UNIT IV BUILDING IoT WITH CLOUD AND DATA ANALYTICS

IoT platforms – Arduino – Raspberry Pi - Cloud Computing in IoT - Cloud Connectivity - Big
Data Analytics - Data Visualization

Iot Platform

An IoT platform is a multi-layer technology that enables straightforward provisioning,


management, and automation of connected devices within the Internet of Things universe. It
basically connects your hardware, however diverse, to the cloud by using flexible connectivity
options, enterprise-grade security mechanisms, and broad data processing powers. For
developers, an IoT platform provides a set of ready-to-use features that greatly speed up
development of applications for connected devices as well as take care of scalability and cross-
device compatibility.

Thus, an IoT platform can be wearing different hats depending on how you look at it. It is
commonly referred to as middleware when we talk about how it connects remote devices to user
applications (or other devices) and manages all the interactions between the hardware and the
application layers. It is also known as a cloud enablement platform or IoT enablement platform
to pinpoint its major business value, that is empowering standard devices with cloud-based
applications and services. Finally, under the name of the IoT application enablement platform, it
shifts the focus to being a key tool for IoT developers.

IoT platform as the middleware :

IoT platforms originated in the form of IoT middleware, which purpose was to function as a
mediator between the hardware and application layers. Its primary tasks included data collection
from the devices over different protocols and network topologies, remote device configuration
and control, device management, and over-the-air firmware updates.

To be used in real-life heterogeneous IoT ecosystems, IoT middleware is expected to support


integration with almost any connected device and blend in with third-party applications used by the
device. This independence from underlying hardware and overhanging software allows a single IoT
platform to manage any kind of connected device in the same straightforward way.
Modern IoT platforms go further and introduce a variety of valuable features into the hardware
and application layers as well. They provide components for frontend and analytics, on-device
data processing, and cloud-based deployment. Some of them can handle end-to-end IoT solution
implementation from the ground up.

IoT platform technology stack

In the four typical layers of the IoT stack, which are things, connectivity, core IoT features, and
applications & analytics, a top-of-the-range IoT platform should provide you with the majority of
IoT functionality needed for developing your connected devices and smart things.
Your devices connect to the platform, which sits in the cloud or in your on-premises data center,
either directly or by using an IoT gateway. A gateway comes useful whenever your endpoints
aren’t capable of direct cloud communication or, for example, you need some computing power
on edge. You can also use an IoT gateway to convert protocols, for example, when your
endpoints are in LoRaWan network but you need them to communicate with the cloud over
MQTT.
An IoT platform itself can be decomposed into several layers. At the bottom there is the
infrastructure level, which is something that enables the functioning of the platform. You can
find here components for container management, internal platform messaging, orchestration of
IoT solution clusters, and others.
The communication layer enables messaging for the devices; in other words, this is where
devices connect to the cloud to perform different operations.
The following layer represents core IoT features provided by the platform. Among the essential
ones are data collection, device management, configuration management, messaging, and OTA
software updates.
Sitting on top of core IoT features, there is another layer, which is less related to data exchange
between devices but rather to processing of this data in the platform. There is reporting, which
allows you to generate custom reports. There is visualization for data representation in user
applications. Then, there are a rule engine, analytics, and alerting for notifying you about any
anomalies detected in your IoT solution.
Importantly, the best IoT platforms allow you to add your own industry-specific components and
third-party applications. Without such flexibility adapting an IoT platform for a particular
business scenario could bear significant extra cost and delay the solution delivery indefinitely.
Advanced IoT platforms
There are some other important criteria that differentiate IoT platforms between each other, such
as scalability, customizability, ease of use, code control, integration with 3rd party software,
deployment options, and the data security level.

• Scalable (cloud native) – advanced IoT platforms ensure elastic scalability across
any number of endpoints that the client may require. This capability is taken for
granted for public cloud deployments but it should be specifically put to the test in
case of an on-premises deployment, including the platform’s load balancing
capabilities for maximized performance of the server cluster.
• Customizable – a crucial factor for the speed of delivery. It closely relates to
flexibility of integration APIs, louse coupling of the platform’s components, and
source code transparency. For small-scale, undemanding IoT solutions good APIs
may be enough to fly, while feature-rich, rapidly evolving IoT ecosystems usually
require developers to have a greater degree of control over the entire system, its
source code, integration interfaces, deployment options, data schemas,
connectivity and security mechanisms, etc.
• Secure – data security involves encryption, comprehensive identity management,
and flexible deployment. End-to-end data flow encryption, including data at rest,
device authentication, user access rights management, and private cloud
infrastructure for sensitive data – this is the basics of how to avoid potentially
compromising breaches in your IoT solution.

Cutting across these aspects, there are two different paradigms of IoT solution cluster
deployment offered by IoT platform providers: a public cloud IoT PaaS and a self-hosted private
IoT cloud.

IoT cloud enablement

An IoT cloud is a pinnacle of the IoT platforms evolution. Sometimes these two terms are used
interchangeably, in which case the system at hand is typically an IoT platform-as-aservice
(PaaS). This type of solution allows you to rent cloud infrastructure and an IoT platform all from
a single technology provider. Also, there might be ready-to-use IoT solutions (IoT cloud
services) offered by the provider, built and hosted on its infrastructure. However, one important
capability of a modern IoT platform consists in a private IoT cloud enablement. As opposed to
public PaaS solutions located at a provider’s cloud, a private IoT cloud can be hosted on any
cloud infrastructure, including a private data center. This type of deployment offers much greater
control over the new features development, customization, and third-party integrations. It is also
advocated for stringent data security and performance requirements.

Arduino is a prototype platform (open-source) based on an easy-to-use hardware and software. It


consists of a circuit board, which can be programed (referred to as a microcontroller) and a
ready-made software called Arduino IDE (Integrated Development Environment), which is used
to write and upload the computer code to the physical board.
The key features are −
• Arduino boards are able to read analog or digital input signals from different sensors and
turn it into an output such as activating a motor, turning LED on/off, connect to the cloud
and many other actions.
• You can control your board functions by sending a set of instructions to the
microcontroller on the board via Arduino IDE (referred to as uploading software).
• Unlike most previous programmable circuit boards, Arduino does not need an extra piece
of hardware (called a programmer) in order to load a new code onto the board. You can
simply use a USB cable.
• Additionally, the Arduino IDE uses a simplified version of C++, making it easier to learn
to program.
• Finally, Arduino provides a standard form factor that breaks the functions of the micro-
controller into a more accessible package.

Board Types

Various kinds of Arduino boards are available depending on different microcontrollers used.
However, all Arduino boards have one thing in common: they are programed through the
Arduino IDE.
The differences are based on the number of inputs and outputs (the number of sensors,
LEDs, and buttons you can use on a single board), speed, operating voltage, form factor etc.
Some boards are designed to be embedded and have no programming interface (hardware),
which you would need to buy separately. Some can run directly from a 3.7V battery, others need
at least 5V.
Here is a list of different Arduino boards available.

Arduino boards based on ATMEGA328 microcontroller

Board Name Operating Clock Digital Analog PWM UART Programming


Volt Speed i/o Inputs Interface

Arduino Uno R3 5V 16MHz 14 6 6 1 USB via


ATMega16U2

Arduino Uno R35V 16MHz 14 6 6 1 USB via


SMD ATMega16U2

Red Board 5V 16MHz 14 6 6 1 USB via FTDI


Arduino Pro 3.3v/8 3.3V 8MHz 14 6 6 1 FTDICompatible
MHz Header

Arduino Pro5V 16MHz 14 6 6 1 FTDICompatible


5V/16MHz Header

Arduino mini 05 5V 16MHz 14 8 6 1 FTDICompatible


Header

Arduino Pro mini 3.3V 8MHz 14 8 6 1 FTDICompatible


3.3v/8mhz Header

Arduino Pro mini 5V 16MHz 14 8 6 1 FTDI-


5v/16mhz Compatible
Header

Arduino Ethernet 5V 16MHz 14 6 6 1 FTDICompatible


Header

Arduino Fio 3.3V 8MHz 14 8 6 1 FTDICompatible


Header

LilyPad Arduino 3.3V 8MHz 14 6 6 1 FTDICompatible


328 main board Header
LilyPad 3.3V 8MHz 9 4 5 0 FTDICompatible
Arduino Header
simple board

Arduino boards based on ATMEGA32u4 microcontroller

Board Name Operating Clock Digital Analog PWM UART Programming


Volt Speed i/o Inputs Interface

Arduino 5V 16MHz 20 12 7 1 Native USB


Leonardo

Pro micro 5V 16MHz 14 6 6 1 Native USB


5V/16MHz

Pro micro 5V 16MHz 14 6 6 1 Native USB


3.3V/8MHz

LilyPad 3.3V 8MHz 14 6 6 1 Native USB


Arduino
USB

Arduino boards based on ATMEGA2560 microcontroller

Board Name Operating Clock Digital Analog PWM UART Programming


Volt Speed i/o Inputs Interface

Arduino Mega 5V 16MHz 54 16 14 4 USB via


2560 R3 ATMega16U2B

Mega Pro 3.3V 3.3V 8MHz 54 16 14 4 FTDICompatible


Header
Mega Pro 5V 5V 16MHz 54 16 14 4 FTDICompatible
Header

Mega Pro Mini 3.3V 8MHz 54 16 14 4 FTDICompatible


3.3V Header

Arduino boards based on AT91SAM3X8E microcontroller

Board Name Operating Clock Digital Analog PWM UART Programming


Volt Speed i/o Inputs Interface

Arduino Mega 3.3V 84MHz 54 12 12 4 USB native


2560 R3

In this chapter, we will learn about the different components on the Arduino board. We will
study the Arduino UNO board because it is the most popular board in the Arduino board family.
In addition, it is the best board to get started with electronics and coding. Some boards look a bit
different from the one given below, but most Arduinos have majority of these components in
common.
Power USB
Arduino board can be powered by using the USB cable from your computer. All
you need to do is connect the USB cable to the USB connection (1).

Power (Barrel Jack)


Arduino boards can be powered directly from the AC mains power supply by
connecting it to the Barrel Jack (2).

Voltage Regulator
The function of the voltage regulator is to control the voltage given to the
Arduino board and stabilize the DC voltages used by the processor and other
elements.
Crystal Oscillator
The crystal oscillator helps Arduino in dealing with time issues. How does
Arduino calculate time? The answer is, by using the crystal oscillator. The
number printed on top of the Arduino crystal is 16.000H9H. It tells us that the
frequency is 16,000,000 Hertz or 16 MHz.

Arduino Reset
You can reset your Arduino board, i.e., start your program from the beginning.
You can reset the UNO board in two ways. First, by using the reset button (17)
on the board. Second, you can connect an external reset button to the Arduino
pin labelled RESET (5).

Pins (3.3, 5, GND, Vin)


• 3.3V (6) − Supply 3.3 output volt
• 5V (7) − Supply 5 output volt
• Most of the components used with Arduino board works fine with 3.3
volt and 5 volt.
• GND (8)(Ground) − There are several GND pins on the Arduino, any of
which can be used to ground your circuit.
• Vin (9) − This pin also can be used to power the Arduino board from an
external power source, like AC mains power supply.

Analog pins
The Arduino UNO board has six analog input pins A0 through A5. These pins
can read the signal from an analog sensor like the humidity sensor or
temperature sensor and convert it into a digital value that can be read by the
microprocessor.
Main microcontroller
Each Arduino board has its own microcontroller (11). You can assume it as the
brain of your board. The main IC (integrated circuit) on the Arduino is slightly
different from board to board. The microcontrollers are usually of the ATMEL
Company. You must know what IC your board has before loading up a new
program from the Arduino IDE. This information is available on the top of the
IC. For more details about the IC construction and functions, you can refer to
the data sheet.

ICSP pin
Mostly, ICSP (12) is an AVR, a tiny programming header for the Arduino
consisting of MOSI, MISO, SCK, RESET, VCC, and GND. It is often referred
to as an SPI (Serial Peripheral Interface), which could be considered as an
"expansion" of the output. Actually, you are slaving the output device to the
master of the SPI bus.

Power LED indicator


This LED should light up when you plug your Arduino into a power source to
indicate that your board is powered up correctly. If this light does not turn on,
then there is something wrong with the connection.

TX and RX LEDs
On your board, you will find two labels: TX (transmit) and RX (receive). They
appear in two places on the Arduino UNO board. First, at the digital pins 0 and
1, to indicate the pins responsible for serial communication. Second, the TX
and RX led (13). The TX led flashes with different speed while sending the
serial data. The speed of flashing depends on the baud rate used by the board.
RX flashes during the receiving process.

Digital I/O
The Arduino UNO board has 14 digital I/O pins (15) (of which 6 provide PWM
(Pulse Width Modulation) output. These pins can be configured to work as
input digital pins to read logic values (0 or 1) or as digital output pins to drive
different modules like LEDs, relays, etc. The pins labeled “~” can be used to
generate PWM.
AREF
AREF stands for Analog Reference. It is sometimes, used to set an external
reference voltage (between 0 and 5 Volts) as the upper limit for the analog
input pins.

After learning about the main parts of the Arduino UNO board, we are ready to learn how to set
up the Arduino IDE. Once we learn this, we will be ready to upload our program on the Arduino
board.
In this section, we will learn in easy steps, how to set up the Arduino IDE on our computer and
prepare the board to receive the program via USB cable.
Step 1 − First you must have your Arduino board (you can choose your favorite board) and a
USB cable. In case you use Arduino UNO, Arduino Duemilanove, Nano, Arduino Mega 2560, or
Diecimila, you will need a standard USB cable (A plug to B plug), the kind you would connect to
a USB printer as shown in the following image.

In case you use Arduino Nano, you will need an A to Mini-B cable instead as shown in the
following image.

Step 2 − Download Arduino IDE Software.


You can get different versions of Arduino IDE from theDownload pageon the Arduino Official
website. You must select your software, which is compatible with your operating system
(Windows, IOS, or Linux). After your file download is complete, unzip the file.

Step 3 − Power up your board.


The Arduino Uno, Mega, Duemilanove and Arduino Nano automatically draw power from
either, the USB connection to the computer or an external power supply. If you are using an
Arduino Diecimila, you have to make sure that the board is configured to draw power from the
USB connection. The power source is selected with a jumper, a small piece of plastic that fits
onto two of the three pins between the USB and power jacks. Check that it is on the two pins
closest to the USB port.
Connect the Arduino board to your computer using the USB cable. The green power LED
(labeled PWR) should glow.
Step 4 − Launch Arduino IDE.
After your Arduino IDE software is downloaded, you need to unzip the folder. Inside the folder,
you can find the application icon with an infinity label (application.exe). Double-click the icon to
start the IDE.

Step 5 − Open your first project.


Once the software starts, you have two options −

• Create a new project.


• Open an existing project example.
To create a new project, select File → New.

To open an existing project example, select File → Example → Basics → Blink.


Here, we are selecting just one of the examples with the name Blink. It turns the LED on and off
with some time delay. You can select any other example from the list.

Step 6 − Select your Arduino board.


To avoid any error while uploading your program to the board, you must select the correct
Arduino board name, which matches with the board connected to your computer.
Go to Tools → Board and select your board.
Here, we have selected Arduino Uno board according to our tutorial, but you must select the
name matching the board that you are using.
Step 7 − Select your serial port.
Select the serial device of the Arduino board. Go to Tools → Serial Port menu. This is likely to
be COM3 or higher (COM1 and COM2 are usually reserved for hardware serial ports). To find
out, you can disconnect your Arduino board and re-open the menu, the entry that disappears
should be of the Arduino board. Reconnect the board and select that serial port.
Step 8 − Upload the program to your board.
Before explaining how we can upload our program to the board, we must demonstrate the
function of each symbol appearing in the Arduino IDE toolbar.

A − Used to check if there is any compilation error.


B − Used to upload a program to the Arduino board.
C − Shortcut used to create a new sketch.
D − Used to directly open one of the example sketch.
E − Used to save your sketch.
F − Serial monitor used to receive serial data from the board and send the serial data to the board.
Now, simply click the "Upload" button in the environment. Wait a few seconds; you will see the
RX and TX LEDs on the board, flashing. If the upload is successful, the message "Done
uploading" will appear in the status bar.
IoT Platforms Overview: Arduino, Raspberry Pi

The IoT concepts imply a creation of network of various devices interacting with each other and
with their environment. Interoperability and connectivity wouldn’t be possible without hardware
platforms that help developers solve issues such as building autonomous interactive objects or
completing common infrastructure related tasks.

Let’s go through the most popular IoT platforms and see how they work and benefit IoT software
developers.

Arduino

The Arduino platform was created back in 2005 by the Arduino company and allows for open
source prototyping and flexible software development and back-end deployment while providing
significant ease of use to developers, even those with very little experience building IoT
solutions.

Arduino is sensible to literally every environment by receiving source data from different
external sensors and is capable to interact with other control elements over various devices,
engines and drives. Arduino has a built-in micro controller that operates on the Arduino software.
Projects based on this platform can be both standalone and collaborative, i.e. realized with use of
external tools and plugins. The integrated development environment (IDE) is composed of the
open source code and works equally good with Мac, Linux and Windows OS. Based on a
processing programming language, the Arduino platform seems to be created for new users and
for experiments. The processing language is dedicated to visualizing and building interactive
apps using animation and Java Virtual Machine (JVM) platform.

Let's note that this programming language was developed for the purpose of learning basic
computer programming in a visual context. It is an absolutely free project available to every
interested person. Normally, all the apps are programmed in C/C++, and are wrapped with avr-
gcc (WinAVR in OS Windows).
Arduino offers analogue-to-digital input with a possibility of connecting light, temperature or
sound sensor modules. Such sensors as SPI or I2C may also be used to cover up to 99% of these
apps’ market.

Arduino is a microcontroller (generally it is the 8-bit ATmega microcontroller), but not a mini-
computer, which makes Arduino somehow limited in its features for advanced users. Arduino
provides an excellent interactivity with external devices and offers a wide range of user manuals,
project samples as well as a large community of users to learn from / share knowledge with.

Raspberry Pi

Raspberry Pi(/paɪ/) is a series of smallsingle-board computersdeveloped in theUnited


Kingdomby theRaspberry Pi Foundationin association withBroadcom. Early on, the Raspberry Pi
project leaned towards the promotion of teaching basiccomputer sciencein schools and
indeveloping countries. Later, the original model became far more popular than
anticipated,selling outside itstarget marketfor uses such asrobotics. It is now widely used in many
areas, such as for weather monitoring,because of its low cost, modularity, and open design.
After the release of the second board type, the Raspberry Pi Foundation set up a new entity,
named Raspberry Pi Trading, and installedEben UptonasCEO, with the responsibility of
developing technology.The Foundation was rededicated as an educational charity for promoting
the teaching of basic computer science in schools and developing countries.The Raspberry Pi is
one of the best-sellingBritish computers.
The Raspberry Pi hardware has evolved through several versions that feature variations in the
type of the central processing unit, amount ofmemorycapacity, networking support, and
peripheral-device support.

This block diagram describes Model B and B+; Model A, A+, and the Pi Zero are similar, but
lack theEthernetandUSBhub components. The Ethernet adapter is internally connected to an
additional USB port. In Model A, A+, and the Pi Zero, the USB port is connected directly to
thesystem on a chip(SoC). On the Pi 1 Model B+ and later models the USB/Ethernet chip
contains a five-port USB hub, of which four ports are available, while the Pi 1 Model B only
provides two. On the Pi Zero, the USB port is also connected directly to the SoC, but it uses
amicro USB(OTG) port. Unlike all other Pi models, the 40 pin GPIO connector is omitted on the
Pi Zero, with solderable through-holes only in the pin locations. The Pi Zero WH remedies this.
Processor speed ranges from 700 MHz to 1.4 GHz for the Pi 3 Model B+ or 1.5 GHz for the Pi 4;
on-board memory ranges from 256MiBto 1GiBrandom-access memory(RAM), with up to 8 GiB
available on the Pi 4.SecureDigital(SD) cards in MicroSDHC form factor (SDHC on early
models) are used to store the operating system and program memory. The boards have one to
fiveUSBports. For video output,HDMIandcomposite videoare supported, with a standard 3.5
mmtip-ring-sleevejack for audio output. Lower-level output is provided by a number
ofGPIOpins, which support common protocols likeI²C. The B-models have an8P8CEthernetport
and the Pi 3, Pi 4 and Pi Zero W have on-boardWi-
Fi802.11nandBluetooth.

Raspberry Pi is a mono-board computing platform that's as tiny as a credit card. Initially it was
developed for computer science education with later on progress to wider functions.

Since the inception of Raspberry, the company sold out more than 8 million items. Raspberry Pi
3 is the latest version and it is the first 64-bit computing board that also comes with built-in Wi-
Fi and Bluetooth functions. According to Raspberry Pi Foundation CEO Eben Upton, "it's been a
year in the making". The Pi3 version is replaced with a quad-core 64-bit
1.2 GHz ARM Cortex A53 chip, 1GB of RAM, VideoCore IV graphics, Bluetooth 4.1 and
802.11n Wi-Fi. The developers claim the new architecture delivers an average 50% performance
improvement over the Pi 2.

Another peculiarity of Raspberry Pi is the GPIO (General Purpose Input-Output), which is a low-
level interface of self-operated control by input-output ports. Raspberry has it as a 40pin
connector.

Raspberry Pi uses Linux as its default operating system (OS). It’s also fully Android compatible.
Using the system on Windows OS is enabled through any virtualization system like XenDesktop.
If you want to develop an application for Raspberry Pi on your computer, it is necessary to
download a specific toolset comprised of ARM-compiler and some libraries complied down to
ARM-target platform like glibc.
Cloud Computing in IOT
One component that improves the success of the Internet of Things is Cloud Computing. Cloud computing
enables users to perform computing tasks using services provided over the Internet. The use of the Internet
of Things in conjunction with cloud technologies has become a kind of catalyst: the Internet of Things and
cloud computing are now related to each other. These are true technologies of the future that will bring
many benefits.
Due to the rapid growth of technology, the problem of storing, processing, and accessing large amounts of
data has arisen. Great innovation relates to the mutual use of the Internet of Things and cloud technologies.
In combination, it will be possible to use powerful processing of sensory data streams and new monitoring
services. As an example, sensor data can be uploaded and saved using cloud computing for later use as
intelligent monitoring and activation using other devices. The goal is to transform data into insights and thus
drive cost-effective and productive action.
Benefits And Functions of IoT Cloud:

There are many benefits of combining these services –


1. IoT Cloud Computing provides many connectivity options, implying large network access.
People use a wide range of devices to gain access to cloud computing resources: mobile devices,
tablets, laptops. This is convenient for users but creates the problem of the need for network
access points.
2. Developers can use IoT cloud computing on-demand. In other words, it is a web service accessed
without special permission or any help. The only requirement is Internet access.
3. Based on the request, users can scale the service according to their needs. Fast and flexible means
you can expand storage space, edit software settings, and work with the number of users. Due to
this characteristic, it is possible to provide deep computing power and storage.
4. Cloud Computing implies the pooling of resources. It influences increased collaboration and
builds close connections between users.
5. As the number of IoT devices and automation in use grows, security concerns emerge. Cloud
solutions provide companies with reliable authentication and encryption protocols.
6. Finally, IoT cloud computing is convenient because you get exactly as much from the service as
you pay. This means that costs vary depending on use: the provider measures your usage
statistics. A growing network of objects with IP addresses is needed to connect to the Internet
and exchange data between the components of the network.
It is important to note that cloud architecture must be well-designed since reliability, security, economy, and
performance optimization depends upon it. Using well-designed CI/CD pipelines, structured services, and
sandboxed environments results in a secure environment and agile development.
Comparison of Internet of Things and Cloud Computing:

Cloud is a centralized system helping to transfer and deliver data and files to data centers over the Internet.
A variety of data and programs are easy to access from a centralized cloud system.
The Internet of Things refers to devices connected to the Internet. In the IoT, data is stored in real-time, as
well as historical data. The IoT can analyze and instruct devices to make effective decisions, as well as track
how certain actions function.
Cloud computing encompasses the delivery of data to datacenters over the Internet. IBM divides cloud
computing into six different categories:
1. Platform as a Service (PaaS) –

The cloud contains everything you need to build and deliver cloud applications so there is no
need to maintain and buy equipment, software, etc.

2. Software as a Service (SaaS) –

In this case, applications run in the cloud and other companies operate devices that connect to
users’ computers through a web browser.
3. Infrastructure as a Service (IaaS) –

IaaS is an option providing companies with storage, servers, networks and hubs processing data
for each use.

4. Public cloud –

Companies manage spaces and provide users with quick access through the public network.

5. Private cloud –

The same as a public cloud, but only one person has access here, which can be an organization,
an individual company, or a user.

6. Hybrid cloud –

Based on a private cloud, but provides access to a public cloud.


Now, the Internet of Things refers to connecting devices to the Internet. Everyday devices such as cars and
household appliances may have an Internet connection, and with the advancement of the Internet of Things,
more and more devices will join this list.
Pairing with edge computing:

Data processing at the network edge or edge computing is used with IoT solutions and enables faster
processing and response times. To get a better understanding of how this works, consider a large factory
with many implemented IoT sensors. In this situation, it makes sense, before sending data to the cloud for
processing, to aggregate it close to the border to prevent cloud overload by reducing direct connections.
Data centers with this approach make data processing much faster. Yet, an approach that is only based on
the edge will never provide a complete view of business operations. If there is no cloud solution, then the
factory only controls each unit individually. Also, it has no way of imagining how these units work in
relation to each other. This is why only the combination of the edge and the cloud will enable businesses to
benefit from IoT developments.
The Role of Cloud Computing on the Internet of Things:

Cloud computing works to improve the efficiency of daily tasks in conjunction with the Internet of Things.
Cloud computing is about providing a path for data to reach its destination while the Internet of Things
generates a huge amount of data.
According to Amazon Web Services, there are four benefits of cloud computing:
1. No need to pre-guess infrastructure capacity needs
2. Saves money, because you only need to pay for those resources that you use, the larger the scale,
the more savings
3. In a few minutes, platforms can be deployed around the world
4. Flexibility and speed in providing resources to developers

Cloud connectivity in IoT


How communication works
Cloud connectivity, a fundamental part of the majority of the Internet of Things (IoT) projects, is intertwined
with expertise in embedded systems and software integration. That’s why MCU suppliers are working
closely with cloud service providers to develop integrated hardware and software solutions that enable IoT
developers to establish an edge-to-cloud connection using out-of-the-box solutions quickly and efficiently.
These collaborations take out most of the complexities in cloud-connected IoT deployments and thus
significantly lower the barrier to entry for IoT solutions deployment. IoT developers, for instance, can
connect development boards supplied by MCU vendors to cloud services like Google’s Cloud IoT Core and
Amazon’s AWS IoT Core with a single click.

Figure 1: A view of an IoT node-to-cloud connection showing the hardware and software building blocks
employed for an end-to-end IoT connection. (Image: STMicroelectronics)
Anatomy of cloud connection

But how does an IoT-to-cloud connection actually work? For a start, like every communication cannel, the
link between an IoT device and the cloud service is established via wired or wireless communication
networks such as Ethernet and Wi-Fi. Next, there are two common transport- and application-layer protocols
that help facilitate communication between an IoT device and a cloud service.

At the transport-layer level, the device-to-cloud communication usually takes place either via Transmission
Control Protocol (TCP) or User Datagram Protocol (UDP). Here, it’s important to note that though TCP
takes more network overhead, it’s favored in IoT applications for its reliability. UDP, on the other hand, is
more suitable for applications like video streaming that can afford some data packet loss.

Next, at the application-layer level, Hyper Text Transfer Protocol (HTTP) is the common standard to send
connection requests and return responses for TCP-based communications. Message Queuing Telemetry
Transport (MQTT) is another application-layer protocol; it’s lightweight with a small code footprint and is
becoming popular in resource-constrained IoT devices.

The role of APIs

It’s a two-way data communication over the Internet between a device and a remote service. An IoT device
establishes a connection with the Internet Protocol (IP) network and is subsequently hooked to the cloud.
Here, support from MCU vendors ranges from the hardware level to the API stacks to facilitate IoT-to-cloud
development.

The APIs are well defined, and they include open-source client libraries, example codes, and protocol
stacks. Then there are third-party tools that make these APIs easier to use and deploy. So, all developers
need to learn is how to use IoT device interfaces effectively; embedded designers who know how to use or
leverage IoT device APIs are now in high demand.

Figure 2: A step-by-step display of how an MCU-based IoT device can be connected to a cloud service like
AWS IoT Core. (Image: CNX Software)
Take the example of how MCU suppliers are integrating software platforms like Amazon FreeRTOS into
their microcontroller offerings (Figure 2). Amazon FreeRTOS is an open-source real-time operating system
(RTOS) for microcontrollers that includes kernel and software libraries to connect small, low-power MCUs
to Amazon’s cloud service AWS IoT Core.

The FreeRTOS-enabled microcontrollers can directly connect to a cloud service like AWS IoT Core, or they
can connect to a local edge device such as AWS Greengrass and sustain the communications even if the IoT
device loses connection to the cloud.

BIG DATA ANALYTICS

Data Analytics is the science (and art!) of applying statistical techniques to large data sets to obtain
actionable insights for making smart decisions. It is the process to uncover hidden patterns, unknown
correlations, trends and any other useful business information.
Analysing data

IoT data needs to be analysed in order to make it useful, but manually processing the flood of data
produced by IoT devices is not practical. So, most IoT solutions rely on automated analytics. Analytics tools
are applied to the telemetry data to generate descriptive reports, to present data through dashboards and data
visualizations, and to trigger alerts and actions.
There are many different open-source analytics frameworks or IoT platforms that can be used to
provide IoT data processing and analytics to your IoT solutions. Analytics can be performed in real-time as
the data is received or through batch processing of historical data. Analytics approaches include distributed
analytics, real-time analytics, edge analytics and machine learning.

Distributed analytics

Distributed analytics is necessary in IoT systems to analyse data at scale, particularly when dealing
with historical data that is too vast to be stored or processed by a single node. Data can be spread across
multiple databases; for example, device data might be bucketed into databases for each device per time
period, such as hourly, daily, or monthly, like the IBM Watson IoT Historian Service that connects to
Cloudant NoSQL database that stores the IoT data. Analytics may involve aggregating results which are
distributed across multiple geographical locations. You’ll want to adopt a storage driver or analytics
framework that bridges distributed storage and compute infrastructure to allow seamless querying across
distributed databases. Of particular note for processing of distributed data are the ecosystem of frameworks
arising from the Hadoop community. Apache Hadoop is a batch processing framework that uses a
MapReduce engine to process distributed data. Hadoop is very mature and was one of the first open-source
frameworks to take off for big data analytics. There’s also Apache Spark, which was started later with an
intention to improve on some of the weak points of Hadoop. Hadoop and Spark are ideal for historical IoT
data analytics for batch-processing where time sensitivity is not an issue, such as performing analysis over a
complete set of data and producing a result at a later time.

Real-time analytics

Analytics for high-volume IoT data streams is often performed in real-time, particularly if the stream
includes time-sensitive data, where batch processing of data would produce results too late to be useful or
any other application where latency is a concern.
Real-time analytics are also ideal for time series data, because unlike batch processing, real-time analytics
tools usually support controlling the window of time analysis, and calculating rolling metrics, for example,
to track hourly averages over time rather than calculating a single average across an entire dataset.
Frameworks that are designed for real-time stream analytics include Apache Storm and Apache Samza
(usually used with Kafka and Hadoop YARN). Hybrid engines that can be used for either stream or batch
analytics include Apache Apex, Apache Spark, and Apache Flink. Apache Kafka acts as an ingestion layer
that can sit over the top of an engine like Spark, Storm or Hadoop. For a guide to selecting between these
open source frameworks, read Choosing the right platform for high-performance, cost-effective stream
processing applications.

Edge analytics

IoT analytics is not usually applied to raw device data. The data is pre-processed to filter out
duplicates or to re-order, aggregate or normalize the data prior to analysis. This processing typically occurs
at the point of acquisition, on the IoT devices themselves or on gateway devices that aggregate the data, to
determine which data needs to be sent upstream.
Analytics applied at the edges of the network, as close as possible to the devices generating the data
is known as edge analytics. Linux Foundation’s Edge X Foundry, an open source IoT edge computing
framework, also supports edge analytics.
Edge analytics is low-latency and reduces bandwidth requirements because not as much data needs
to be transmitted from the device. However, constrained devices have limited processing capacity, so most
IoT solutions use a hybrid approach involving edge analytics and upstream analytics.

Machine learning

Using traditional mathematical statistical models for analytics provides value as they can be used to
track goals, create reports and insights, predict trends, and create simulations that are used to predict and
optimize for specific outcomes. For example, you can predict the outcome of applying a specific action,
predict the time to failure for a given piece of equipment, or optimize the configuration of an IoT system in
terms of cost or performance.
However, the value of statistical analytics models diminishes when applied to dynamic data that
contains many variables that change over time, when you don’t know what factors to look for, or what
variables to change to achieve a desired outcome like reducing cost or improving efficiency. In these cases,
instead of using a statistical model, machine learning algorithms that learn from the data can be applied.
Machine learning can be applied to historic or real-time data. Machine learning techniques can be
used to identify patterns, identify key variables and relationships between them to automatically create and
refine analytics models, and then use those model for simulations or to produce decisions. Machine learning
approaches have the advantage over static statistical analytics models that as new data comes in, the models
can be improved over time, which leads to improved results. The state of the art Machine learning
techniques mostly come in the domain of Deep learning using neural networks (Convolutional Neural
Networks, Long Short Term Memory networks). Emerging and promising areas of research include Active
learning, Multi modal and Multi-Task learning, and Transformer-based language models. That being said,
the traditional machine learning methods like Regression, Support Vector Machines, and Decision trees can
still prove to be effective in a lot of applications.

Data Visualization

Data visualization is the graphical representation of data to uncover patterns, relationships, and insights that
might not be easily discernible in raw data. It involves transforming complex datasets into visual visuals,
such as charts, graphs, maps, and infographics, to make data more understandable and accessible to a wide
audience.

In the context of IoT, data visualization plays a crucial role in translating the massive amounts of data
generated by IoT devices into meaningful and actionable insights. It helps in uncovering hidden patterns,
trends, and anomalies within the data, leading to informed decision-making and improved business
outcomes.

Data visualization allows users to quickly grasp complex concepts and understand the significance of the
data. Instead of poring over spreadsheets or rows of numbers, data visualizations present information in a
visually appealing and intuitive manner, enabling easier interpretation and analysis.

By representing data visually, various relationships and patterns can be identified. For example, line charts
can show trends over time, scatter plots can reveal correlations between variables, and maps can display
geographic distribution.

Data visualization also offers the opportunity to explore data interactively. Users can utilize interactive
elements, such as filters, drill-downs, and zoom features, to delve deeper into the data and uncover more
detailed insights. This interactivity enhances the user experience and allows for dynamic exploration of the
data.

Furthermore, data visualization promotes data storytelling by presenting information in a compelling


narrative format. It helps to communicate complex ideas and data-driven insights effectively to a broad
audience, including non-technical stakeholders. By presenting data in a visually engaging way, data
visualizations facilitate better understanding, engagement, and decision-making.

Importance of Data Visualization in IoT


Data visualization plays a critical role in the realm of IoT, where vast amounts of data are being generated
from interconnected devices. Let’s explore the key reasons why data visualization is essential in the IoT
landscape:1. Understanding complex data: IoT devices generate massive volumes of data that can be
challenging to comprehend in its raw form. Through data visualization, complex data sets can be simplified
and presented visually, allowing users to quickly grasp patterns, trends, and outliers. This understanding is
vital for making data-driven decisions and identifying opportunities for improvement.

2. Identifying actionable insights: Data visualizations enable the identification of actionable insights from
IoT data. By representing data visually, patterns and relationships become more apparent, enabling
organizations to extract valuable insights. These insights can drive operational efficiency, optimize
processes, and uncover potential areas for innovation.

3. Real-time monitoring: IoT devices generate data in real-time, which requires near-instantaneous
analysis. Data visualizations provide real-time monitoring dashboards, enabling organizations to track key
performance indicators (KPIs), identify anomalies, and respond promptly to critical events. Real-time data
visualization empowers organizations to make informed decisions and take timely actions.

4. Improved collaboration: Data visualizations are easily understood by diverse audiences, including non-
technical stakeholders. By presenting data visually, organizations can foster collaboration between technical
and non-technical teams. This interdisciplinary collaboration facilitates a shared understanding of IoT data,
leading to more effective communication, problem-solving, and decision-making.

5. Enhanced data exploration: Data visualization tools offer interactive features that empower users to
explore and analyze IoT data in depth. These features include filters, drill-down capabilities, and dynamic
visual representations. With interactive data visualizations, users can uncover hidden insights, perform root
cause analysis, and gain a deeper understanding of IoT data.

6. Improved decision-making: Data visualization simplifies complex information, empowering decision-


makers to quickly comprehend the implications of IoT data. Visual representations enable stakeholders to
grasp the big picture, evaluate multiple data points simultaneously, and make informed decisions. This leads
to more effective problem-solving, reduced response time, and better outcomes.

7. Data-driven storytelling: Data visualization enables organizations to tell compelling stories with their
IoT data. By presenting data in a visually engaging manner, organizations can captivate audiences and
communicate data-driven insights effectively. With data-driven storytelling, organizations can gain buy-in
from stakeholders, inspire action, and drive positive business outcomes.

Benefits of Data Visualization in IoT

Data visualization in the context of IoT offers numerous benefits that help organizations harness the power
of their data. Let’s explore some of the key advantages of using data visualization in the IoT landscape:

1. Improved data comprehension: Data visualization simplifies complex data by presenting it in a visual
format that is easy to understand. By representing data using charts, graphs, and other visual elements, users
can quickly grasp patterns, trends, and relationships within IoT data. This improved comprehension
enhances decision-making and drives actionable insights.

2. Enhanced decision-making: Data visualization empowers decision-makers to make informed and data-
driven decisions. By visualizing IoT data, decision-makers can quickly identify trends, outliers, and insights
that are difficult to discern in tabular or textual formats. Visual representations facilitate quicker decision-
making, leading to better business outcomes.
3. Identification of anomalies and issues: Data visualization enables the identification of anomalies and
issues within IoT data. By spotting unusual patterns or outliers, organizations can proactively address
problems or take necessary actions. Detecting anomalies in real-time helps prevent system failures, optimize
processes, and improve overall operational efficiency.

4. Optimization of IoT systems: Data visualization provides valuable insights into the performance and
efficiency of IoT systems. By visualizing key metrics and performance indicators, organizations can identify
bottlenecks, inefficiencies, and areas for improvement. This helps optimize IoT systems, enhance device
performance, and ensure reliable and efficient operations.

5. Enhanced data exploration: Data visualization tools offer interactive features that facilitate in-depth
exploration of IoT data. Users can easily filter, drill down, and manipulate visualizations to gain deeper
insights. This interactive data exploration helps uncover hidden patterns, correlations, and dependencies
within IoT data, enabling predictive analysis and data-driven decision-making.

6. Improved communication and collaboration: Data visualizations simplify the communication of


complex IoT data to diverse audiences, including non-technical stakeholders. Visual representations make it
easier to convey insights, trends, and key findings, fostering collaboration and shared understanding. By
communicating data visually, organizations can align teams, secure buy-in from stakeholders, and drive
effective decision-making.

7. Real-time monitoring and alerts: Data visualization allows for real-time monitoring of IoT data.
Interactive dashboards provide up-to-date insights and alerts on key performance indicators and metrics.
Real-time monitoring enables organizations to respond promptly to critical events, mitigate risks, and ensure
optimal operational performance.

8. Storytelling with data: Data visualization enables impactful storytelling with IoT data. By presenting
data visually, organizations can create compelling narratives that engage and inspire audiences. Visual
storytelling helps convey the significance and implications of IoT data, driving action and enabling
stakeholders to understand the value of data-driven insights.

Common Tools and Techniques for Data Visualization in IoT

Data visualization in the IoT landscape is facilitated by a variety of tools and techniques specifically
designed to handle the complexities of IoT data. Let’s explore some of the commonly used tools and
techniques for data visualization in IoT:

1. Business Intelligence (BI) Platforms: BI platforms such as Tableau, Power BI, and QlikView provide
powerful data visualization capabilities. These platforms enable users to connect and visualize IoT data from
various sources, create interactive dashboards, and generate insightful reports. They offer a range of chart
types, advanced data manipulation options, and real-time monitoring features.

2. Custom-built Visualizations: Organizations often develop custom-built visualizations tailored to their


specific IoT data and use cases. These visualizations can be created using programming languages such as
D3.js, Python’s Matplotlib, or JavaScript frameworks like Highcharts. Custom visualizations provide
flexibility and allow for unique representations of IoT data.

3. Real-time Monitoring and Dashboarding: Real-time monitoring is crucial in IoT data visualization.
Tools such as Grafana, Kibana, and Splunk enable users to create real-time dashboards that display key
metrics, alerts, and IoT data streams. These tools offer interactive visualizations, anomaly detection, and the
ability to drill down into real-time data for in-depth analysis.
4. Geospatial Visualization: Geospatial visualization is often used in IoT applications that involve
geographic data. Platforms like ArcGIS, Google Maps API, and Mapbox provide mapping capabilities to
visualize IoT data in a spatial context. Geospatial visualizations help analyze location-based data, identify
spatial patterns, and make location-specific decisions.

5. Time-Series Analysis and Visualization: Time-series analysis is crucial in IoT, where data is collected
over time. Tools like Grafana, Python’s Matplotlib, and Excel offer specialized features for time-series
analysis and visualizations. These tools enable users to uncover trends, seasonality, and anomalies in time-
series IoT data and present them in intuitive visual formats.

6. Interactive Data Exploration: Tools like Plotly, d3.js, and ggplot2 allow for interactive data exploration
and manipulation. These tools provide users with the ability to filter, sort, and drill down into IoT data to
gain deeper insights. Interactive visualizations enhance the exploration process and support data-driven
decision-making.

7. Data Streaming Visualization: For real-time data streaming from IoT devices, tools like Apache Kafka
and Apache Flink are often used. These tools allow for the data ingestion, processing, and visualization of
high-velocity IoT data streams. They provide real-time visualizations and analytics for streaming data,
enabling organizations to monitor and analyze IoT data as it flows.

8. Machine Learning and AI Visualization: Machine learning and AI techniques are employed in IoT data
analysis. Tools like TensorFlow, RapidMiner, and KNIME provide visualization capabilities specifically
designed for machine learning models and algorithms. These tools enable users to visualize model outputs,
analyze predictions, and evaluate the performance of AI-based IoT applications.

Best Practices for Data Visualization in IoT

Effective data visualization in the IoT landscape requires adherence to certain best practices to ensure
clarity, accuracy, and actionable insights. Let’s explore some of the key best practices for data visualization
in IoT:

1. Understand the Audience: Start by understanding the target audience and their specific needs and goals.
Consider the level of technical expertise, domain knowledge, and the key insights they are seeking from the
IoT data. Customize the visualizations accordingly to ensure they resonate with the audience and effectively
convey the intended message.

2. Keep it Simple and Clear: Simplify complex data by using a minimalist approach. Avoid cluttered and
overloaded visuals that can confuse or overwhelm the viewers. Choose clean and straightforward visual
elements, removing any unnecessary embellishments. Focus on clarity and ensure that the key message is
communicated clearly.

3. Choose the Right Visualization Techniques: Select appropriate visualization techniques that best
represent the IoT data and insights you want to convey. Consider the data type, relationships, and objectives.
Whether it’s line charts, bar graphs, maps, or scatter plots, choose visuals that effectively communicate the
message and facilitate easy interpretation.

4. Provide Context: Contextualize the IoT data by providing relevant background information,
explanations, and labels. Include axes labels, titles, and legends to help viewers understand and interpret the
visualizations accurately. Adding context ensures that the viewers can grasp the significance of the data and
make informed decisions based on it.
5. Use Color and Contrast Thoughtfully: Color is a powerful tool in data visualization, but it should be
used thoughtfully. Choose a color palette that enhances the visual appeal without compromising clarity. Use
color to highlight key data points or patterns, and ensure sufficient contrast to distinguish between different
elements in the visualization.

6. Ensure Data Accuracy and Integrity: Validate the accuracy and integrity of the IoT data before
visualizing it. Check for outliers, missing data, and any data inconsistencies that could affect the reliability
and validity of the visualizations. Incorrect or misleading visualizations can lead to poor decision-making, so
ensure the data is trustworthy.

7. Make it Interactive: Incorporate interactive elements in the visualizations to enable viewers to explore
the IoT data further. Interactive features like filters, brushable charts, and tooltips allow users to analyze
specific areas of interest, drill down into details, and extract more insights. Interactivity enhances
engagement and facilitates deeper exploration of IoT data.

8. Consider Device Limitations: Keep in mind the limitations of the devices through which the
visualizations will be accessed. Ensure that the visualizations are responsive and optimized for different
screen sizes and resolutions. Consider the bandwidth and processing power of the devices to ensure a
smooth and seamless user experience.

9. Iterative Design and Testing: Take an iterative approach to design and testing of the visualizations. Seek
feedback from end users and stakeholders to fine-tune the visualizations and ensure they effectively meet
their needs. Test the visualizations on various devices and platforms to identify and resolve any usability or
compatibility issues.

10. Document and Maintain Consistency: Document the design decisions, guidelines, and standards for
data visualization in IoT. Maintain consistency in style, colors, fonts, and layouts across different
visualizations to reinforce the brand identity and create a cohesive experience. Consistency improves user
familiarity and allows for easier understanding and interpretation of the visualizations.

Real-world Examples of Data Visualization in IoT

Data visualization plays a crucial role in various real-world applications of IoT, enabling organizations to
gain valuable insights from complex data and make data-driven decisions. Let’s explore some noteworthy
examples of data visualization in IoT:

1. Smart Cities: In smart cities, IoT devices gather data on traffic patterns, air quality, energy consumption,
and more. Data visualization tools help city officials analyze and visualize this data to make informed
decisions. For example, interactive maps can display real-time traffic congestion, enabling officials to
optimize traffic flow and reduce congestion.

2. Manufacturing and Industrial IoT: In manufacturing, IoT devices collect data on the production line,
equipment performance, and product quality. Data visualizations provide real-time monitoring of
manufacturing processes, highlighting areas for improvement and identifying bottlenecks. Interactive
dashboards allow operators to adjust parameters to optimize production efficiency.

3. Agriculture and Precision Farming: In precision farming, IoT sensors collect data on soil moisture,
temperature, and crop health. Data visualization tools help farmers understand this data visually, enabling
them to make informed decisions on irrigation, fertilization, and disease control. Visualizations can display
crop health maps, showing areas that require attention.
4. Healthcare and Telemedicine: In healthcare, IoT devices and wearables monitor patient vitals and
collect health data. Data visualization tools enable healthcare professionals to monitor patients remotely,
visualize trends in health parameters, and detect anomalies. This visual information assists in making timely
decisions and providing personalized care.

5. Energy Management: IoT devices monitor energy usage in smart buildings, homes, and grids. Data
visualizations help users understand energy consumption patterns, identify areas of high energy usage, and
optimize energy efficiency. Interactive dashboards can display real-time energy consumption and provide
recommendations for reducing energy waste.

6. Retail Analytics: In the retail industry, IoT devices track customer movement, footfall, and buying
behavior. Data visualizations enable retailers to understand customer behavior, optimize store layouts, and
personalize shopping experiences. Heat maps and flow diagrams visualize foot traffic patterns, informing
strategic decisions on product placement and store design.

7. Transportation and Logistics: In the transportation sector, IoT sensors gather data on vehicle
performance, fuel consumption, and route optimization. Data visualization tools help fleet managers monitor
vehicle conditions, track routes, and identify areas for improvement. Real-time visualizations can display
live tracking of vehicles, enabling efficient routing and minimizing delays.

8. Environmental Monitoring: IoT sensors collect data on air quality, water quality, and weather
conditions. Data visualization tools transform this data into interactive maps, graphs, and heat maps,
providing a comprehensive view of environmental factors. Visualizations enable researchers and
policymakers to monitor and respond to environmental changes effectively.

You might also like