UNIT-I INTRODUCTION TO INTERNET OF THINGS 6
Introduction – Definition and characteristics of IoT – Physical design of IoT: Things in IoT – IoT Protocols -Logical Design of IoT: IoT Functional blocks
– IoT Communication Models – IoT Communication APIs.
UNIT-II IoT DESIGN METHODOLOGY 6
IoT Architecture – IoT Reference Architecture – IOT Design Methodology – Domain Specification- Functional View, Information View, Deployment
View and Operational View, Device and Component Integration, Application development.
UNIT-III IoT ELEMENTS AND CHALLENGES 6
Building blocks of an IoT Device – Raspberry Pi, Arduino – Sensing devices, Communication Modules: Bluetooth, Zigbee, RFID, Wi-Fi - Power Sources
–Data Management, Business Processes in IoT –– Challenges in IoT: Design Challenges, Development Challenges, Security Challenges and Other
UNIT-IV IoT PHYSICAL SERVERS CLOUD OFFERINGS 6
XaaS, M2M , WAMP- AutoBahn for IoT – Xively Cloud for IoT – Django – Designing a RESTful Web API – Amazon Web Services for IoT.
UNIT-V APPLICATIONS 6
Retail, Health care, Transportation, Agriculture and environmental, Smart city, Government and military, Smart home
List of Experiments
1. Familiarization with Arduino/Raspberry Pi and perform necessary software installation.
2. To interface LED/Buzzer with Arduino/Raspberry Pi and write a program to turn ON LED for 1 sec after every 2 seconds. To
interface Push button/Digital sensor (IR/LDR) with Arduino/Raspberry Pi and write a program to turn ON LED when push
button is pressed or at sensor detection.
3. To interface DHT11 sensor with Arduino/Raspberry Pi and write a program to print temperature and humidity readings. To
interface motor using relay with Arduino/Raspberry Pi and write a program to turn ON motor when push button is pressed.
4. To interface Bluetooth/Wifi with Arduino/Raspberry Pi and write a program to send sensor data to smartphone using
5. Mini Projects(any one for each group)
i. Home Automation system with mobile Integration.
ii. Weather Monitoring system using Raspberry Pi/Arduino
iii. Automatic plant watering/irrigation system using Raspberry Pi/Arduino.
iv. Vehicle Tracking System using Raspberry Pi/Arduino.
v. Intrusion detection System using Raspberry Pi/Arduino.
vi. Smart Parking System using Raspberry Pi/Arduino
Books to follow:
1. Vijay Madisetti, Arshdeep Bahga, “Internet of Things: A Hands-On Approach”, 2014, www.internet-of-thingsbook.com
2. Perry Lea, “Internet of Things for Architects” , Packt Publishers ,2018.
3. Martin Bauer Mathieu Boussard Nicola Bui Jourik De Loof et.al,” IoT Reference Architecture”, DOI: 10.1007/978-3-
4. Jan Holler, Vlasios Tsiatis, Catherine Mulligan, Stefan Avesand, Stamatis Karnouskos, David Boyle, “From Machineto-
Machine to the Internet of Things: Introduction to a New Age of Intelligence”, 1st Edition, Academic Press, 2014.
Reference Book(s)/Web link(s):
1. Dr.Ovidiu Vermesan, Dr. Peter Friess, “Internet of Things: Converging Technologies for Smart Environments and
Integrated Ecosystems”, River Publishers,2013.
2. Peter Waher, “Learning Internet of Things”, Packt Publishing, Birminghan – Mumbai,2015
3. Bernd Scholz-Reiter, Florian Michahelles, “Architecting the Internet of Things”, ISBN 978-3-642-19156, e-ISBN 978-3-
What is IoT?
Interconnected network of networks.
Internet is a vast network that connects
computers all over the world.
Share information, communicate from
anywhere with a connection.
T – Things
A thing, is an entity or physical object that has
a unique identifier, an embedded system and
the ability to transfer data over a network.
In addition to dedicated computing devices
such as PCs, notebooks, smartphones or
tablets, the list of potential things is almost
These devices gather useful data with the help
of various existing technologies and share that
data between other devices.
• "The Internet of Things (IoT) is a system of interrelated computing devices,
mechanical and digital machines, objects, animals or people that are provided with
unique identifiers and the ability to transfer data over a network without requiring
human-to-human or human-to-computer interaction.“
• The Internet of Things is actually a pretty simple concept, it means taking
all the things in the world and connecting them to the internet.
• A dynamic global network infrastructure with self-configuring capabilities based on
standard and interoperable communication protocols where physical and virtual
"things" have identities, physical attributes, and virtual personalities and use
intelligent interfaces, and are seamlessly integrated into the information network,
often communicate data associated with users and their environments.
• Dynamic & Self Adapting: IoT devices and systems may have the capability to dynamically adapt with the changing
contexts and take actions based on their operating conditions, user’s context or sensed environment.
E.g.: the surveillance system is adapting itself based on context and changing conditions.
• Self Configuring: allowing a large number of devices to work together to provide certain functionality. These devices
have the ability to configure themselves ,setup the networking and fetch latest software upgrades with minimal manual or
• Inter Operable Communication Protocols: support a number of interoperable communication protocols and can
communicate with other devices and with infrastructure.
• Unique Identity: Each IoT device has a unique identity and a unique identifier (IP address or a URI). IoT systems may
have intelligent interfaces which adapt based on the context , allow communicating with users and the environmental
contexts. IoT device interfaces allow users to query the devices ,monitor their status , and control them remotely, in
association with the control , configuration and management infrastructure.
• Integrated into Information Network: that allow them to communicate and exchange data with other devices and
systems. IoT devices can be dynamically discovered in the network , by other devices or user applications . For example, a
weather monitoring node can describe its monitoring capabilities to another connected node so that they can communicate
and exchange data. Integration into the information network helps in making IoT systems “smarter’ due to the collective
intelligence of the individual devices in collaboration with the infrastructure . Thus , the data from a large number of
connected weather monitoring IoT nodes can be aggregated and analyzed to predict the weather.
Applications of IoT:
9) Health & Lifestyle
Brief list of IoT devices that gives you a better idea of the broad use of this technology:
• Smart TVs
• Smart speakers
• Fitness wearables
• Smart appliances
• Smart meters
• IoT blockchain
• IoT gateways
Physical Design of IoT
• The physical design of an IoT
system is referred to the
Things/Devices and protocols that
used to build an IoT system.
• All these things/Devices are called
Node Devices and every device
has a unique identity that
performs remote sensing,
actuating, and monitoring work.
and the protocols that used to
between the Node devices and
server over the internet.
Physical Design of IoT: Things in IoT
• The "Things" in IoT usually refers to IoT devices which
have unique identities and can perform remote
sensing, actuating and monitoring capabilities.
• IoT devices can:
• Exchange data with other connected devices and
applications (directly or indirectly), or
• Collect data from other devices and process the
data locally or
• Send the data to centralized servers or cloud-
based application back-ends for processing the
• Perform some tasks locally and other tasks within
the IoT infrastructure , based on temporal and
Generic block diagram of an IoT Device
• An IoT device may consist of several
interfaces for connections to other
devices, both wired and wireless.
• I/O interfaces for sensors
• Interfaces for Internet connectivity
• Memory and storage interfaces
• Audio/video interfaces.
• IoT devices can also be varied types,
such as wearable sensors, smart
watches, LED lights, automobiles and
• Almost all IoT devices generate data in
some or other which when processed by
data analytics systems leads to useful
information to guide further actions
locally or remotely.
• Link Layer : Protocols determine
how data is physically sent over
the network’s physical layer or
medium. Local network connect to
which host is attached. Hosts on
the same link exchange data
packets over the link layer using
link layer protocols. Link layer
determines how packets are coded
and signaled by the h/w device
over the medium to which the host
Link Layer Protocols:
• 802.3-Ethernet: IEEE802.3 is collection of wired Ethernet standards for the link layer. E.g.: 802.3 uses
co-axial cable; 802.3i uses copper twisted pair connection; 802.3j uses fiber optic connection; 802.3ae
uses Ethernet over fiber.
• 802.11-WiFi: IEEE802.11 is a collection of wireless LAN(WLAN) communication standards including
extensive description of link layer. E.g.: 802.11a operates in 5GHz band, 802.11b and 802.11g operates
in 2.4GHz band, 802.11n operates in 2.4/5GHz band, 802.11ac operates in 5GHz band, 802.11ad
operates in 60Ghzband.
• 802.16 - WiMax: IEEE802.16 is a collection of wireless broadband standards including exclusive
description of link layer. WiMax provide data rates from 1.5 Mb/s to 1Gb/s.
• 802.15.4-LR-WPAN: IEEE802.15.4 is a collection of standards for low-rate wireless personal area
network(LR-WPAN). Basis for high level communication protocols such as ZigBee. Provides data rate
from 40kb/s to250kb/s.
• 2G/3G/4G-Mobile Communication: Data rates from 9.6kb/s(2G) to up to100Mb/s(4G).
Responsible for sending IP datagrams from source n/w to destination n/w. Performs the
host addressing and packet routing. Datagrams contains source and destination address.
• IPv4: Internet Protocol version4 is used to identify the devices on a n/w using a
hierarchical addressing scheme. 32 bit address. Allows total of 2**32addresses.
• IPv6: Internet Protocol version6 uses 128 bit address scheme and allows 2**128
• 6LoWPAN:(IPv6overLow power Wireless Personal Area Network)operates in 2.4
GHz frequency range and data transfer 250 kb/s.
Provides end-to-end message transfer capability independent of the underlying n/w. Set up on connection
with ACK as in TCP and without ACK as in UDP. Provides functions such as error control,
segmentation, flow control and congestion control.
• TCP: Transmission Control Protocol used by web browsers(along with HTTP and HTTPS),
email(along with SMTP, FTP). Connection oriented and stateless protocol. IP Protocol deals with
sending packets, TCP ensures reliable transmission of protocols in order. Avoids n/w congestion and
• UDP: User Datagram Protocol is connectionless protocol. Useful in time sensitive applications, very
small data units to exchange. Transaction oriented and stateless protocol. Does not provide guaranteed
Defines how the applications interface with lower layer protocols to send data over the n/w. Enables process-to-process
communication using ports.
• HTTP: Hyper Text Transfer Protocol that forms foundation of WWW. Follow request- response model Stateless protocol.
• CoAP: Constrained Application Protocol for machine-to-machine (M2M) applications with constrained devices,
constrained environment and constrained n/w. Uses client- server architecture.
• WebSocket: allows full duplex communication over a single socket connection.
• MQTT: Message Queue Telemetry Transport is light weight messaging protocol based on publish-subscribe model. Uses
client server architecture. Well suited for constrained environment.
• XMPP: Extensible Message and Presence Protocol for real time communication and streaming XML data between
network entities. Support client-server and server-server communication.
• DDS: Data Distribution Service is data centric middleware standards for device-to-device or machine-to-machine
communication. Uses publish-subscribe model.
• AMQP: Advanced Message Queuing Protocol is open application layer protocol for business messaging. Supports both
point-to-point and publish-subscribe model.
Logical Design of IoT
• Logical design of an IoT system refers to an abstract representation of the entities and processes
without going into the low-level specifics of the implementation.
• An IoT system comprises of a number of functional blocks that provide the system the capabilities
for identification, sensing, actuation, communication, and management.
• Refers to an abstract represent of entities and processes without going into the low level specifies of
1) IoT Functional Blocks
2) IoT Communication Models
3) IoT Communication APIs
IoT Functional Blocks
Provide the system the capabilities for identification, sensing, actuation, communication and
management . These functional blocks are described as follows:
• Device: An IoT system comprises of devices that provide sensing, actuation, monitoring and control
• Communication: handles the communication for IoT system.
• Services: for device monitoring, device control services, data publishing services and services for
• Management: Provides various functions to govern the IoT system.
• Security: Secures IoT system and priority functions such as authentication ,authorization, message and
context integrity and data security.
• Application: IoT application provide an interface that the users can use to control and monitor various
aspects of IoT system.
• Request-Response is a
communication model in which the
client sends requests to the server
and the server responds to the
• When the server receives a request,
it decides how to respond, fetches
the data, retrieves resource
representations, prepares the
response, and then sends the
response to the client.
Publish-Subscribe communication model
• Publish-Subscribe is a
communication model that
involves publishers, brokers and
• Publishers are the source of data.
Publishers send the data to the
topics which are managed by the
broker. Publishers are not aware
of the consumers.
• Consumers subscribe to the topics
which are managed by the broker.
• When the broker receives data for
a topic from the publisher, it
sends the data to all the
Push-Pull communication model
• Push-Pull is a communication model in
which the data producers push the data
to queues and the consumers pull the
data from the queues.
• Producers do not need to be aware of
• Queues help in decoupling the
messaging between the producers and
• Queues also act as a buffer which helps
in situations when there is a mismatch
between the rate at which the
producers push data and the rate at
which the consumers pull data.
Exclusive Pair communication model
• Exclusive Pair is a bidirectional,
fully duplex communication model
that uses a persistent connection
between the client and server.
• Once the connection is setup it
remains open until the client
sends a request to close the
• Client and server can send
messages to each other after
IoT Communication APIs
• The application program (or programming) interface, or API, is arguably what
really ties together the connected “things” of the “internet of things.”
• IoT APIs are the points of interaction between an IoT device and the internet
and/or other elements within the network.
• As API management company Axway puts it, “APIs are tightly linked with IoT
because they allow you to securely expose connected devices to customers, go-
to-market channels and other applications in your IT infrastructure.”
Why are IoT APIs important?
• “APIs are the market enabler, and ‘internet of things’ devices would be useless
• By exposing data that enables multiple devices to be connected, APIs provide an
interface between the internet and the things to reveal previously unseen
possibilities,” said Chris O’Connor, IBM’s GM for IoT, in a blog entry.
• “In the year to come, the power and importance of APIs will be at the forefront of
the conversation around enabling—and more important—monetizing the ‘internet
Types of APIs
Generally, we used Two APIs For IoT Communication.
These IoT Communication APIs are:
• REST-based Communication APIs
• WebSocket-based Communication APIs
REST-based Communication APIs
• Representational State Transfer (REST) is a set of architectural principles by which you can design
web services and web APIs that focus on a system’s resources and how resource states are addressed
• REST APIs follow the request response communication model.
• The REST architectural constraints apply to the components, connectors, and data elements, within a
distributed hypermedia system.
• The REST architectural constraints: Fig. shows communication between client server with REST
• Client-Server: The principle behind client-server constraint is the separation of concerns. Separation
allows client and server to be independently developed and updated.
• Stateless: Each request from client to server must contain all the info. Necessary to understand the
request and cannot take advantage of any stored context on the server.
• Cache-able: Cache constraint requires that the data within a response to a request be implicitly or
explicitly labeled as cache-able or non-cacheable. If a response is cache-able, then a client cache is
given the right to reuse that response data for later, equivalent requests.
• Layered System: constraints the behavior of components such that each component cannot see
beyond the immediate layer with which they are interacting.
• User Interface: constraint requires that the method of communication between a client and a server
must be uniform.
• Code on Demand: Servers can provide executable code or scripts for clients to execute in their
context. This constraint is the only one that is optional.
Request-Response model used by REST:
• RESTful web service is a collection
of resources which are
represented by URIs. RESTful web
API has a base URI(e.g.:
• The clients and requests to these
URIs using the methods defined by
the HTTP protocol(e.g: GET, PUT,
POST or DELETE). A RESTful web
service can support various
internet media types.
WebSocket based communication API
• WebSocket APIs allow bi-directional, full duplex communication between clients and servers. WebSocket
APIs follow the exclusive pair communication model.
• Unlike request-response model such as REST, the WebSocket APIs allow full duplex communication and
do not require new connection to be setup for each message to be sent.
• WebSocket communication begins with a connection setup request sent by the client to the server. The
request (called WebSocket handshake) is sent over HTTP and the server interprets it is an upgrade
• If the server supports WebSocket protocol, the server responds to the WebSocket handshake response.
After the connection setup client and server can send data/messages to each other in full duplex mode.
• WebSocket API reduce the network traffic and latency as there is no overhead for connection setup and
termination requests for each message.
• WebSocket suitable for IoT applications that have low latency or high throughput requirements. So ,Web
socket is most suitable IoT Communication APIs for IoT System.