Module 4-IoT Notes
Module 4-IoT Notes
Introduction
Sensor nodes are the key components of Internet of Things (IoT). These nodes are resource-
constrained in terms of storage, processing, and energy.
Moreover, in IoT, the devices are connected and communicate with one another by sharing the
sensed and processed data.
Handling the enormous data generated by this large number of heterogeneous devices is a non-
trivial task.
Consequently, cloud computing becomes an essential building block of the IoT architecture.
Cloud computing is more than traditional network computing.
Unlike network computing, cloud computing comprises a pool of multiple resources such as
servers, storage, and network from single/multiple organizations. These resources are allocated
to the end users as per requirement, on a payment basis.
In cloud computing architecture, an end user can request for customized resources such as
storage space, RAM, operating systems, and other software to a cloud service provider (CSP) as
shown in Figure 10.1. For example, a user can request for a Linux operating system for running
an application from a CSP; another end user can request for Windows 10 operating system from
the same CSP for executing some application.
The cloud services are accessible from anywhere and at any time by an authorized user through
Internet connectivity.
Cloud computing comprises a shared pool of computing resources, which are accessible dynamically,
ubiquitously, and on-demand basis by the users.
This shared pool of resources includes networks, storage, processor, and servers. These resources are
accessible by multiple users through a regular command-line terminal at the same or different time
instants.
The services of cloud computing are based on the pay-per-use model. The concept is the same as paying
utility bills based on consumption.
In cloud computing, a user pays for the cloud services as per the duration of their resource usage. On the
other hand, there is a CSP that provides cloud services to end user organizations.
Virtualization
The key concept of cloud computing is virtualization. The technique of sharing a single resource
among multiple end user organizations or end users is known as virtualization.
In the virtualization process, a physical resource is logically distributed among multiple users.
However, a user perceives that the resource is unlimited and is dedicatedly provided to him/her.
Figure 10.2(a) represents a traditional desktop, where an application (App) is running on top of
an OS, and resources are utilized only for that particular application.
On the other hand, multiple resources can be used by different end users through virtualization
software, as shown in Figure 10.2(b). Virtualization software separates the resources logically so
that there is no conflict among the users during resource utilization.
Advantages of virtualization
In such a scenario, cloud computing plays a vital role by keeping backups through
virtualization.
Primarily, there are two entities in a cloud computing architecture: end users and CSP.
Both end users and CSP are benefited in several aspects through the process of
virtualization.
The major advantages, from the perspective of the end user and CSP, are as follows:
Advantages for End Users
(a) Variety:
The process of virtualization in cloud computing enables an end user organization to use
various types of applications based on the requirements.
As an example, suppose John takes up still photography as a hobby. His resource-
limited PC can barely handle the requirements for a photo editing software, say X-
photoeditor. In order to augment his PC’s regular performance, he uninstalls the X-
photoeditor software and purchases a cloud service, which lets him access a virtual
machine (VM).
In his VM, he installs the X-photoeditor software, by which he can edit photos
efficiently and, most importantly, without worrying about burdening his PC or running
out of processing resources.
After six months, John’s interest in his hobby grows and he moves on to video-editing
too. For editing his captured videos, he installs video editing software, Y-videoeditor, in
his VM and can edit videos efficiently.
(b) Availability:
The concept of virtualization makes available a considerable amount of resources as per
user requirements. The end users feel that there are unlimited resources present
dedicatedly for him/her.
Let us suppose that Jane uses a particular email service. Her account has been active for
over ten years now; however, it offers limited storage of 2 GB. Due to the
ever accumulating file attachments in different emails, her 2 GB complimentary space
is exhausted.
However, there is a provision that if she pays $100 annually, she can attach additional
space to her mail service. This upgrade allows her to have more storage at her disposal
for a considerable time in the future.
(c) Portability:
Portability signifies the availability of cloud computing services from anywhere in the
world, at any instant of time.
For example, a person flying from the US to the UK still has access to their documents,
although they cannot physically access the devices on which the data is stored. This has
been made possible by platforms such as Google Drive.
(d) Elasticity:
Through the concept of virtualization, an end user can scale-up or scale-down resource
utilization as per requirements. The cloud computing is based on a pay-per-use model.
The end user needs to pay the amount based on their usage.
For example, Jack rents two VMs in a cloud computing infrastructure from a CSP. VM1
has the Ubuntu operating system (OS), on which Jack is simulating a network scenario
using Network Simulator-2 (NS2). VM2 has Windows 10 OS, on which he is running a
MATLAB simulation.
However, after a few days, Jack feels that his VM2 has served its purpose and is no
longer required. Consequently, he releases VM2 and, after that, he is only billed for
VM1. Thus, Jack can scale-up or scale-down his resources in cloud computing, which
employs the concept of virtualization.
A CSP generates revenue from the end users based on resource utilization. As an
example, today, a user A is utilizing storage facility from a particular CSP. The user will
release the storage after a few days when his/her requirement is complete.
The CSP earns some revenue from user A for the utilization of the allocated storage
facility. In the future, the CSP can provide the same storage facility to a different user,
B. Again, the CSP can generate revenue from user B for his/her storage utilization.
Types of virtualization
(i) Hardware Virtualization: This type of virtualization indicates the sharing of hardware
resources among multiple users. For example, a single processor appears as many different
processors in a cloud computing architecture. Different operating systems can be installed in
these processors and each of them can work as stand-alone machines.
(ii) Storage Virtualization: In storage virtualization, the storage space from different entities is
accumulated virtually, and seems like a single storage location. Through storage virtualization, a
user’s documents or files exist in different locations in a distributed fashion. However, the users
are under the impression that they have a single dedicated storage space provided to them.
(iii) Application Virtualization: A single application is stored at the cloud end. However, as per
requirement, a user can use the application in his/her local computer without ever actually
installing the application. Similar to storage virtualization, in application virtualization, the users
get the impression that applications are stored and executed in their local computer.
(iv) Desktop Virtualization: This type of virtualization allows a user to access and utilize the
services of a desktop that resides at the cloud. The users can use the desktop from their local
desktop.
Cloud Models
Software-as-a-Service (SaaS)
Platform-as-a-Service (PaaS) and
Infrastructure-as-a-Service (IaaS)
The deployment model is further categorized as:
Private cloud
Community cloud
Public cloud and
Hybrid cloud
This service provides access to different software applications to an end user through
Internet connectivity. For accessing the service, a user does not need to purchase and
install the software applications on his/her local desktop.
The software is located in a cloud server, from where the services are provided to
multiple end users. SaaS offers scalability, by which users have the provision to use
multiple software applications as per their requirements.
Additionally, a user does not need to worry about the update of the software
applications.
(b) Platform-as-a-Service (PaaS):
PaaS provides a computing platform, by which a user can develop and run different
applications. The cloud user need not go through the burden of installing and managing
the infrastructure such as operating system, storage, and networks.
However, the users can develop and manage the applications that are running on top of
it. An example of PaaS is Google App Engine.
IaaS provides infrastructure such as storage, networks, and computing resources. A user
uses the infrastructure without purchasing the software and other network components.
In the infrastructure provided by a CSP, a user can use any composition of the operating
system and software. An example of IaaS is Google Compute Engine.
(a) Private Cloud: This type of cloud is owned explicitly by an end user organization. The
internal resources of the organization maintain the private cloud.
(b) Community Cloud: This cloud forms with the collaboration of a set of organizations for a
specific community. For a community cloud, each organization has some shared interests.
(c) Public Cloud: The public cloud is owned by a third party organization, which provides
services to the common public. The service of this cloud is available for any user, on a payment
basis.
(d) Hybrid Cloud: This type of cloud comprises two or more clouds (private, public, or
community).
Cloud Implementation
Cloud simulation
It is challenging to estimate the performance of an IoT system with the cloud before real
implementation. On the other hand, real deployment of the cloud is a complex and costly
procedure.
Thus, there is a requirement for simulating the system through a cloud simulator before real
implementation. There are many cloud simulators that provide pre-deployment test services
for repeatable performance evaluation of a system.
(i) CloudSim
(a) Description:
(b) Features:
(1) The CloudSim simulator provides various cloud computing data centers along with different
data center network topologies in a simulation environment.
(4) It allows users to define their own policies for the allocation of host resources to VMs.
(6) A user can stop and resume the simulation at any instant of time.
(ii) CloudAnalyst
(a) Description:
CloudAnalyst is based on CloudSim. This simulator provides a graphical user
interface (GUI) for simulating a cloud environment, easily.
The CloudAnalyst is used for simulating large-scale cloud applications.
(b) Features:
(1) The CloudAnalyst simulator is easy to use due to the presence of the GUI.
(2) It allows a user to add components and provides a flexible and high level of
configuration.
(3) A user can perform repeated experiments, considering different parameter values.
(iii) GreenCloud
(a) Description:
GreenCloud is developed as an extension of a packet level network simulator,
NS2. This simulator can monitor the energy consumption of different network
components such as servers and switches.
(b) Features:
(1) GreenCloud is an open-source simulator with user-friendly GUI.
(2) It provides the facility for monitoring the energy consumption of the network and its
various components.
(3) It supports the simulations of cloud network components.
(4) It enables improved power management schemes.
(5) It allows a user to manage and configure devices, dynamically, in simulation.
Sensor-Cloud: Sensors-as-a-Service
Virtualization of resources is the backbone of cloud computing. Similarly, in a sensor-
cloud, virtualization of sensors plays an essential role in providing services to multiple
users.
Typically, in a sensor-cloud architecture, multiple users receive services from different a
sensor nodes, simultaneously. However, the users remain oblivious to the fact that a set of
sensor nodes is not dedicated solely to them for their application requirements.
In reality, a particular sensor may be used for serving multiple user applications,
simultaneously. The main aim of sensor-cloud infrastructure is to provide an opportunity
for the common mass to use Wireless Sensor Networks (WSNs) on a payment basis.
Similar to cloud computing, sensor-cloud architecture also follows the pay-per-use model.
Importance of sensor-cloud
The sensor-cloud infrastructure is based on the concept of cloud computing, in which a
user application is served by a set of homogeneous or heterogeneous sensor nodes.
These sensor nodes are selected from a common pool of sensor nodes, as per the
requirement of user applications. Using the sensor-cloud infrastructure, a user receives data
for an application from multiple sensor nodes without owning them.
Unlike sensor-cloud, if a user wants to use traditional WSN for a certain application,
he/she has to go through different pre-deployment and post-deployment hurdles.
The advantages of sensor-cloud over traditional WSN Case Study:
John is a farmer, and he has a significantly vast farmable area with him. As manual
supervision of the entire field is very difficult, he has planned to deploy a WSN in his
farming field. Before purchasing the WSN, he has to decide which sensors should be used
in his fields for sensing the different agricultural parameters.
Additionally, he has to decide the type and number of other components such as an
electronics circuit board and communication module required along with the sensors. As
there are numerous vendors, it is challenging for him to choose the correct (in terms of
quality and cost) vendor, as well as the sensor owner from whom the WSN will be
procured.
He finally decides the type of sensors along with the other components that are required for
monitoring his agricultural field. Now, John faces the difficulty of optimally planning the
sensor node deployment in his fields.
After going through these hurdles, he decides on the number of sensor nodes that are
required for monitoring his field. Finally, John procures the WSNs from a vendor.
After procurement, he deploys the sensor nodes and connects different components. As
WSN consists of different electronic components, he has to maintain the WSN after its
deployment.
After three months, as his requirement of agricultural field monitoring is completed, he
removes the WSN from the agricultural field.
Six months later, John plans to use the WSN that was deployed in the agricultural field for
home surveillance. As the agriculture application is different from the home surveillance
application, the sensor required for the system also changes.
Thus, John has to go through all the steps again, including maintenance, deployment, and
hardware management, for the surveillance system. Hence, the users face different
responsibilities for using a WSN for an application. In such a situation, if sensor-cloud
architecture is present, John can easily use WSNs for his application on a rental basis.
Moreover, through the use of sensor-cloud, John can easily switch the application without
any manual intervention. On the other end, service providers of the sensor-cloud
infrastructure may serve multiple users with the same sensors and earn profit.
Architecture of a sensor-cloud platform
In a traditional cloud computing architecture, two actors, cloud service provider (CSP) and end
users (customer) play the key role. Unlike cloud computing, in sensor-cloud architecture, the
sensor owners play an important role along with the service provider and end users. However, a
service provider in sensor-cloud architecture is known as a sensor-cloud service provider
(SCSP).
Actors in sensor-cloud architecture
Introduction
Currently, IoT-enabled technologies are widely used for increasing crop productivity,
generating significant revenue, and efficient farming. The development of the IoT paradigm
helps in precision farming.
Agricultural loT systems perform crop health monitoring, water management, crop security,
farming vehicle tracking, automatic seeding, and automatic pesticide spraying over the
agricultural fields.
In an IoT based agricultural system, different sensors necessarily have to be deployed over
agricultural fields, and the sensed data from these sensors need to be transmitted to a
centralized entity such as a server, cloud, or fog devices. Further, these data have to be
processed and analyzed to provide various agricultural services. Finally, a user should be able
to access these services from handheld devices or computers.
• Cloud computing:
Sensors such as the camera, devices to measure soil moisture, soil humidity, and soil pH-
level are used for serving different agricultural applications. These sensors produce a huge
amount of agricultural data that need to be analyzed.
Sometimes, based on the data analysis, action needs to be taken, such as switching on the
water pump for irrigation. Further, the data from the deployed sensors are required to be
stored on a long-term basis since it may be useful for serving future applications.
• Sensors:
Sensors are the major backbone of any IoT application. Similarly, for agricultural IoT
applications, the sensors are an indispensable component. A few of the common sensors
used in agriculture are sensors for soil moisture, humidity, water level, and temperature.
• Cameras:
Imaging is one of the main components of agriculture. Therefore, multispectral, thermal, and
RGB cameras are commonly used for scientific agricultural IoT.
These cameras are used for estimating the nitrogen status, thermal stress, water stress, and crop
damage due to inundation, as well as infestation. Video cameras are used for crop security.
• Satellites:
• Analytics:
• Wireless connectivity:
One of the main components of agricultural IoT is wireless connectivity. Wireless connectivity
enables the transmission of the agricultural sensor data from the field to the cloud/server. It also
enables farmers to access various application services over handheld devices, which rely on
wireless connectivity for communicating with the cloud/server.
• Handheld devices:
Over the last few years, e-agriculture has become very popular. One of the fundamental
components of e-agriculture is a handheld device such as a smartphone. Farmers can access
different agricultural information, such as soil and crop conditions of their fields and market
tendency, over their smartphones. Additionally, farmers can also control different field
equipment, such as pumps, from their phones.
Drones:
Currently, the use of drones has become very attractive in different applications such as
surveillance, healthcare, product delivery, photography, and agriculture. Drone imaging
is an alternative to satellite imaging in agriculture.
In continuation to providing better resolution land mapping visuals, drones are used in
agriculture for crop monitoring, pesticide spraying, and irrigation.
AGRI-CHAIN
An agricultural food chain (agri-chain) represents the different stages that are involved in
agricultural activity right from the agricultural fields to the consumers. In the agri chain,
we consider farming as the first stage.
In farming, various operations, such as seeding, irrigation, fertilizer spreading, and
pesticide spraying, are involved. For performing these operations, different IoT
components are used. As an example, for monitoring the soil health, soil moisture and
temperature sensors are used; drones are used for spraying pesticides; and through
wireless connectivity, a report on on-field soil conditions is sent directly to a users’
handheld device or cloud.
After farming, the next stage in the agri-chain is transport. Transport indicates the
transfer of crops from the field to the local storage, and after that, to long-term storage
locations. In transport, smart vehicles can automatically load and unload crops.
The global positioning system (GPS) plays an important role by tracking these smart
devices, and radio frequency identification (RFID) is used to collect information
regarding the presence of a particular container of a crop at a warehouse.
Storage is one of the important operations in the agri-chain. It is responsible for storing
crops on a long- term basis. Typically, cold storage is used for preserving the crops for a
long time and providing them with the necessary climatic and storage conditions and
protection.
In the storage, cameras are used to keep a check and protect the harvested crops. The
camera feeds are transferred through wireless connectivity to a remote server or a cloud
infrastructure. Moreover, the amount and type of crops stored in a storage location are
tracked and recorded with the help of sensors and cloud computing.
For pushing the crops into the market, processing plays a crucial role in an agri chain.
Processing includes proper drying and packaging of crops. For drying and packaging,
different sensors are used.
Packaging is the immediate operation prior to pushing the crop into the market. Thus, it is
essential to track every package and store all the details related to the crops in the cloud.
Logistics enables the transfer of the packed crops to the market with the help of smart
vehicles. These smart vehicles are equipped with different sensors that help in loading
and unloading the packed crop autonomously.
Additionally, GPS is used in these smart vehicles for locating the position of the packed
crops at any instant and tracking their whereabouts. All the logistical information gets
logged in the cloud with the help of wireless connectivity.
Finally, the packed items reach the market using logistical channels. From the market,
these items are accessible to consumers. The details of the sale and purchase of the items
are stored in the form of records in the cloud.
Advantages of IoT in agriculture
Modern technological advancements and the rapid developments in IoT components have
gradually increased agricultural productivity. Agricultural IoT enables the autonomous execution
of different agricultural operations. The specific advantages of the agricultural IoT are as
follows:
These Gs and R connect and form a star topology. A solar panel is used to charge the
cluster head. The system is based on IoT architecture. Therefore, a cluster head is
attached to a central base station, which acts as a gateway. Further, this gateway connects
to an IoT infrastructure.
Hardware
For sensing and transmitting the data from the deployment fields to a centralized unit,
such as a server and a cloud, different hardware components are used in the system.
The commercial off-the-shelf (COTS) TelosB platform is used in the system. The TelosB
motes are equipped with three types of sensors: temperature, humidity, and light sensors.
With the help of an optical filter and diffuser accessory on the light sensors, the PAR is
calculated to estimate the LAI.
The system is based on the cluster concept. A Raspberry-Pi is used as a cluster head,
which connects with four ground sensor motes. The Raspberry-Pi is a tiny single board,
which works as a computer and is used to perform different operations in IoT.
Humidity and wet plants intermittently cause attenuation to the system, which is
minimized with the help of forward error coding (FEC) technique. The real deployment
of the LAI assessment system involves various environmental and wild-life challenges.
Therefore, for reliable data delivery, the authors take the redundant approach of using
both wired and wireless connectivity. In the first deployment generation, USB power
supply is used to power-up the sensors motes.
Additionally, the USB is used for configuring the sensor board and accessing the failure
as per requirement.
In this setup, a mechanical timer is used to switch off the sensor nodes during the night.
In the second deployment generation, the cluster is formed with wireless connectivity.
The ground sensor motes consist of external antennas, which help to communicate with
the cluster head. A Raspberry-Pi with long-term evolution (LTE) is used as a gateway in
this system. Communication
The LAI system consists of multiple components, such as WSN, IoT gateway, and
IoT based network. All of these components are connected through wired or wireless
links. The public land mobile network (PLMN) is used to establish connectivity between
external IoT networks and the gateway.
The data are analyzed and visualized with the help of a farm management information
system (FMIS), which resides in the IoT-based infrastructure. Further, a prevalent data
transport protocol: MQTT, is used in the system.
MQTT is a very light-weight, publish/subscribe messaging protocol, which is widely
used for different IoT applications. The wireless LAN is used for connecting the cluster
head with a gateway. The TelosB motes are based on the IEEE 802.15.4 wireless
protocol.
Software
Software is an essential part of the system by which different operations of the system are
executed. In order to operate the TelosB motes, TinyOS, an open-source, low-power
operating system, is used. This OS is widely used for different WSN applications.
Typically, in this system, the data acquired from the sensor node is stored with a timestamp
and sequence number (SN). For wired deployments (the first generation deployment), the
sampling rate used is 30 samples/hour. However, in the wireless deployment (the second
generation), the sampling rate is significantly reduced to 6 samples/hour.
The TinyOS is capable of activating low-power listening modes of a mote, which is used for
switching a mote into low-power mode during its idle state. In the ground sensor, TelosB
motes broadcast the data frame, and the cluster head (Raspberry-Pi) receives it.
This received data is transmitted to the gateway. Besides acquiring ground sensor data, the
Raspberry-Pi works as a cluster head. In this system, the cluster head can re-boot any affected
ground sensor node automatically.
IoT Architecture The MQTT broker runs in the Internet server of the system. This broker is
responsible for receiving the data from the WSN. In the system, the graphical user interface
(GUI) is built using an Apache server.
The visualization of the data is performed at the server itself. Further, when a sensor fails, the
server informs the users. The server can provide different system-related information to the
smartphone of the registered user.
Smart irrigation management system
In precision agriculture, the regular monitoring of different agricultural parameters, such
as water level, soil moisture, fertilizers, and soil temperature are essential. Moreover, for
monitoring these agricultural parameters, a farmer needs to go to his/her field and collect
the data.
Excess water supply in the agricultural field can damage the crops. On the other hand,
insufficient water supply in the agricultural field also affects the healthy growth of crops.
Thus, efficient and optimized water supply in the agricultural field is essential.
This case study highlights a prototype of an irrigation management system, developed at
the Indian Institute of Technology Kharagpur, funded by the Government of India.
The primary objective of this system is to provide a Web-based platform to the farmer for
managing the water supply of an irrigated agricultural field. The system is capable of
providing a farmer-friendly interface by which the field condition can be monitored.
With the help of this system, a farmer can take the necessary decision for the agricultural
field based on the analysis of the data. However, the farmer need not worry about the
complex background architecture of the system.
It is an affordable solution for the farmers to access the agricultural field data easily and
remotely. Architecture The architecture of this system consists of three layers: Sensing
and actuating layer, remote processing and service layer, and application layer. The
detailed functionalities of different layers of this system are as follows:
The system has been deployed and experimented in two agricultural fields: