15IT422E- INTERNET OF THINGS
Developing Internet of
Things
I5IT422E Dr.Suresh Sankaranarayanan 05/01/2018 1
SYLLABUS…
IoT platforms design methodology
IoT Physical devices and endpoints
IoT physical servers and cloud offerings (Cloud
computing for IoT)
IoT Design Methodology
IoT design Methodology includes:
Step 1: Purpose & Requirements Specification
Step 2: Process Specification
Step 3: Domain Model Specification
Step 4: Information Model Specification
Step 5: Service Specification
IoT Design Methodology(cont.,)
Step 6: IoT Level Specification
Step 7: Functional view Specification
Step 8: Operational view Specification
Step 9: Device Component Integration
Step 10: Application Development
IoT Physical devices and endpoints
Building blocks of an IoT
Exemplary Devices: Raspberry pi
Raspberry Pi interfaces
Programming Raspberry pi with pyton
Other IoT devices
What is an IoT device
Things in IoT
things refers IoT devices which have unique identities to
perform
Remote sensing
Actuating
Monitoring capabilities
IoT devices exchange data or collect data and process
the data either locally or send to centralized servers or
cloud based application back ends
Basic building blocks of an IoT device
Sensing
Actuation
Communication
Analysis and Processing
Raspberry Pi
Low cost mini computer with physical size of a
credit card
Runs various flavors of Linux image
Raspberry pi allows interfacing sensors and
actuators using general purpose I/O pins
Uses python programming
About the board
Processor and RAM
USB Ports
Ethernet ports
HDMI Output
Composite Video Output
Audio Output
GPIO pins
Display Serial Interface(DSI)
Camera Serial Interface(CSI)
Status LEDS
SD card slot
Power input
Linux on Raspberry Pi
Raspberry pi supports various flovors of Linux
image.
Raspian Linux (Debian wheezy port optimized for
raspberry pi)
Arch Linux port for AMD devices
Pidora Linux is a Fedora Linux
RaspBMC is an XBMC media center distribution for
Raspberry pi
Open ELEC is fast userfriendly
RISC OS fast and compact
Raspberry pi interfaces
Serial
Receive and transmit pins
SPI(Serial Pheripheral Interface)
MISO(Master in slave out)
MOSI(Master out slave in)
SCK(serial clock)
CE0(chip enable 0)
CE1(chip enable 1)
I2C
two pins
1) SDA (data line)
2)SCL(clock Line)
Cloud computing for IoT
Cloud storage models and communication
Web Application Messaging Protocol(WAMP)
Xively cloud for IoT
Python web application framework-Django
Developing applications woth Django
Developing REST web services
Amazon Web services for IoT
SkyNet IoT Messaging Platform
Cloud storage models and
communication
Cloud computing is a model for enabling
uniquitous, convenient, on demand network
access to a shared pool of configurable
computing resourses(e.g, networks, servers,
storage, applications and services)
WAMP-AutoBahn for IoT
Web Application Messaging Protocol(WAMP) is a
sub protocol of websocket which provides publish
subscribe and RPC messaging patterns.
Key concepts of WAMP
Xively cloud for IoT
Xively libraries leverage standards based API over
HTTP, sockets and MQTT for connecting IoT
devices to xively cloud.
Xively uses python libraries.
Xively uses Feed ID and API key to connect to the
device.
Each device has unique Feed ID (collection of
channels and datastreams defined for a device
and associated meta data)
Python web application framework-
Django
Xively for PaaS for collecting and processing data
from IoT system in the cloud.
Xively cloud or any other data collection systems
would require some type of web application
framework.
Django is an open source web application
framework for developing web applications in
Python.
A “web application framework” is a collection of
solutions, packages and best practices that
allows development of web applications and
dynamic websites
Django is based on the well known Model-
Template-view architechture.
Provides a separation of the data model from the
business rules
Django provides unified API to a database
backend.
Django works with different databases without
requiring any code changes.
Provide flexibility in web application design
Best suited for IoT applications
Django Architecture
Amazon Web services for IoT
Amazon EC2 (provides IaaS)
Amazon Autoscaling (scaling Amazon EC2
capacity up and down)
Amazon S3(online cloud based data storage
infrastructure)
Amazon RDS(web service for to create MySQL,
Oracle or Microsoft SQL server in the cloud)
Amazon Web services for IoT
Amazon Dynamo DB(no SQL database – scalable
data storage for IoT)
Amazon kinesis(real time processing of Streaming
data)
Amazon SQS(queue system that stores and
releases messages in a scalable manner)
Amazon EMR(webservice that utilizes Hadoop
framework for running Amazon EC2 and Amazon
S3)
Amazon EC2 (provides IaaS)
Amazon Autoscaling
Amazon S3
Amazon RDS
Amazon Dynamo DB(no SQL database)
Amazon dynamo DB is a fully managed scalable
high performance No SQL database service.
Scalable data store for IoT
IoT system developers can store any amount of
data and serve any level of requests for the data.
Dynamo DB established by calling
boto.dynamodb.connect_to_region.
A schema for the new table is created by calling
conn.create_schema
Amazon kinesis(real time processing of Streaming
data)
Amazon SQS
Amazon SQS offers
Scalable
Reliable
Hosted queue for storing messages as travel between
distinct components of applications.
Similar to amazon kinesis
SQS is simply a queue system that stores and releases
messages in a scalable manner.
SQS service estblished by calling
boto.sqs.connect_to_region
To create a new queue conn.create_queue funcion used.
To retrieve SQS queues conn.get_all_queues
Amazon EMR
Amazon EMR is a web service that utilizes Hadoop
Framework running on Amazon EC2 and Amazon
S3.
EMR allows processing of massive scale data
Suitable for iot applications
Generate large volume of data that needs to be
analyzed.
Data processing jobs are formulated with the
MapReduce parallel data processing model.
SkyNet IoT Messaging Platform
Open source instant messaging platform for IoT.
SkyNet API supports both HTTP REST and real-
time web sockets.
Need to register devises on the network.
Device can be anything including
Sensors
Smart home devices
Cloud resources
Drones
SkyNet IoT Messaging Platform
Each device in skyNet assigned UUID and secret
token.
Devices and client application can suscribe to
other devices and receive/send messages.
REFER NOTES SECTION OF THIS SLIDE
Arshdeep Bahga, Vijay Madisetti, “Internet of
Things, A Hands -on Approach”, 1st Edition 2015,
University Press, ISBN: 978-81-7371- 954-7
37