SlideShare a Scribd company logo
Chapter 5
IoT Design Methodology
Bahga & Madisetti, © 2015
Book website: http://www.internet-of-things-book.com
Outline
• IoT Design Methodology that includes:
• Purpose & Requirements Specification
• Process Specification
• Domain Model Specification
• Information Model Specification
• Service Specifications
• IoT Level Specification
• Functional View Specification
• Operational View Specification
• Device & Component Integration
• Application Development
Bahga & Madisetti, © 2015
Book website: http://www.internet-of-things-book.com
IoT Design Methodology - Steps
Step 1: Purpose & Requirements Specification
• The first step in IoT system design methodology is to define the
purpose and requirements of the system. In this step, the system
purpose, behavior and requirements (such as data collection
requirements, data analysis requirements, system management
requirements, data privacy and security requirements, user interface
requirements, ...) are captured.
Step 2: Process Specification
• The second step in the IoT design methodology is to define the
process specification. In this step, the use cases of the IoT system are
formally described based on and derived from the purpose and
requirement specifications.
Step 3: Domain Model Specification
• The third step in the IoT design methodology is to define the Domain
Model. The domain model describes the main concepts, entities and
objects in the domain of IoT system to be designed. Domain model
defines the attributes of the objects and relationships between
objects. Domain model provides an abstract representation of the
concepts, objects and entities in the IoT domain, independent of any
specific technology or platform. With the domain model, the IoT
system designers can get an understanding of the IoT domain for
which the system is to be designed.
Step 4: Information Model Specification
• The fourth step in the IoT design methodology is to define the
Information Model. Information Model defines the structure of all
the information in the IoT system, for example, attributes of Virtual
Entities, relations, etc. Information model does not describe the
specifics of how the information is represented or stored. To define
the information model, we first list the Virtual Entities defined in the
Domain Model. Information model adds more details to the Virtual
Entities by defining their attributes and relations.
Step 5: Service Specifications
• The fifth step in the IoT design methodology is to define the service
specifications. Service specifications define the services in the IoT
system, service types, service inputs/output, service endpoints,
service schedules, service preconditions and service effects.
Step 6: IoT Level Specification
• The sixth step in the IoT design methodology is to define the IoT level
for the system. In Chapter-1, we defined five IoT deployment levels.
Step 7: Functional View Specification
• The seventh step in the IoT design methodology is to define the
Functional View. The Functional View (FV) defines the functions of
the IoT systems grouped into various Functional Groups (FGs). Each
Functional Group either provides functionalities for interacting with
instances of concepts defined in the Domain Model or provides
information related to these concepts.
Step 8: Operational View Specification
• The eighth step in the IoT design methodology is to define the
Operational View Specifications. In this step, various options
pertaining to the IoT system deployment and operation are defined,
such as, service hosting options, storage options, device options,
application hosting options, etc
Step 9: Device & Component Integration
• The ninth step in the IoT design methodology is the integration of the
devices and components.
Step 10: Application Development
• The final step in the IoT design methodology is to develop the IoT
application.
Home Automation Case Study
Step:1 - Purpose & Requirements
• Applying this to our example of a smart home automation system, the
purpose and requirements for the system may be described as follows:
• Purpose : A home automation system that allows controlling of the lights in a home
remotely using a web application.
• Behavior : The home automation system should have auto and manual modes. In
auto mode, the system measures the light level in the room and switches on the
light when it gets dark. In manual mode, the system provides the option of manually
and remotely switching on/off the light.
• System Management Requirement : The system should provide remote monitoring
and control functions.
• Data Analysis Requirement : The system should perform local analysis of the data.
• Application Deployment Requirement : The application should be deployed locally
on the device, but should be accessible remotely.
• Security Requirement : The system should have basic user authentication capability.
Step:2 - Process Specification
Step 3: Domain Model Specification
Step 4: Information Model Specification
Step 5: Service Specifications
Step 5: Service Specifications
Step 6: IoT Level Specification
Step 7: Functional View Specification
Step 8: Operational View Specification
Step 9: Device & Component Integration
Step 10: Application Development
• Auto
• Controls the light appliance automatically based on the lighting
conditions in the room
• Light
• When Auto mode is off, it is used for manually controlling the
light appliance.
• When Auto mode is on, it reflects the current state of the light
appliance.
Implementation: RESTful Web Services
# Models – models.py
from django.db import models
class Mode(models.Model):
name = models.CharField(max_length=50)
class State(models.Model):
name = models.CharField(max_length=50)
# Serializers – serializers.py
from myapp.models import Mode, State
from rest_framework import serializers
class ModeSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Mode
fields = ('url', 'name')
class StateSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = State
fields = ('url', 'name')
REST services implemented with Django REST Framework
1. Map services to models. Model
fields store the states (on/off,
auto/manual)
2. Write Model serializers. Serializers allow
complex data (such as model instances) to be
converted to native Python datatypes that can
then be easily rendered into JSON, XML or
other content types.
Implementation: RESTful Web Services
# Views – views.py
from myapp.models import Mode, State
from rest_framework import viewsets
from myapp.serializers import ModeSerializer, StateSerializer
class ModeViewSet(viewsets.ModelViewSet):
queryset = Mode.objects.all()
serializer_class = ModeSerializer
class StateViewSet(viewsets.ModelViewSet):
queryset = State.objects.all()
serializer_class = StateSerializer
3. Write ViewSets for the Models which
combine the logic for a set of related views in
a single class.
# Models – models.py
from django.db import models
class Mode(models.Model):
name = models.CharField(max_length=50)
class State(models.Model):
name = models.CharField(max_length=50)
4. Write URL patterns for the services.
Since ViewSets are used instead of views, we
can automatically generate the URL conf by
simply registering the viewsets with a router
class.
Routers automatically determining how the
URLs for an application should be mapped to
the logic that deals with handling incoming
requests.
# URL Patterns – urls.py
from django.conf.urls import patterns, include, url
from django.contrib import admin
from rest_framework import routers
from myapp import views
admin.autodiscover()
router = routers.DefaultRouter()
router.register(r'mode', views.ModeViewSet)
router.register(r'state', views.StateViewSet)
urlpatterns = patterns('',
url(r'^', include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
url(r'^admin/', include(admin.site.urls)),
url(r'^home/', 'myapp.views.home'),
)
Implementation: RESTful Web Services
Screenshot of browsable
State REST API
Screenshot of browsable
Mode REST API
Implementation: Controller Native Service
#Controller service
import RPi.GPIO as GPIO
import time
import sqlite3 as lite
import sys
con = lite.connect('database.sqlite')
cur = con.cursor()
GPIO.setmode(GPIO.BCM)
threshold = 1000
LDR_PIN = 18
LIGHT_PIN = 25
def readldr(PIN):
reading=0
GPIO.setup(PIN, GPIO.OUT)
GPIO.output(PIN, GPIO.LOW)
time.sleep(0.1)
GPIO.setup(PIN, GPIO.IN)
while (GPIO.input(PIN)==GPIO.LOW):
reading=reading+1
return reading
def switchOnLight(PIN):
GPIO.setup(PIN, GPIO.OUT)
GPIO.output(PIN, GPIO.HIGH)
def switchOffLight(PIN):
GPIO.setup(PIN, GPIO.OUT)
GPIO.output(PIN, GPIO.LOW)
def runAutoMode():
ldr_reading = readldr(LDR_PIN)
if ldr_reading < threshold:
switchOnLight(LIGHT_PIN)
setCurrentState('on')
else:
switchOffLight(LIGHT_PIN)
setCurrentState('off')
def runManualMode():
state = getCurrentState()
if state=='on':
switchOnLight(LIGHT_PIN)
setCurrentState('on')
elif state=='off':
switchOffLight(LIGHT_PIN)
setCurrentState('off')
def getCurrentMode():
cur.execute('SELECT * FROM myapp_mode')
data = cur.fetchone() #(1, u'auto')
return data[1]
def getCurrentState():
cur.execute('SELECT * FROM myapp_state')
data = cur.fetchone() #(1, u'on')
return data[1]
def setCurrentState(val):
query='UPDATE myapp_state set name="'+val+'"'
cur.execute(query)
while True:
currentMode=getCurrentMode()
if currentMode=='auto':
runAutoMode()
elif currentMode=='manual':
runManualMode()
time.sleep(5)
Native service deployed locally
1. Implement the native service in
Python and run on the device
Implementation: Application
# Views – views.py
def home(request):
out=‘’
if 'on' in request.POST:
values = {"name": "on"}
r=requests.put('http://127.0.0.1:8000/state/1/', data=values, auth=(‘username', ‘password'))
result=r.text
output = json.loads(result)
out=output['name']
if 'off' in request.POST:
values = {"name": "off"}
r=requests.put('http://127.0.0.1:8000/state/1/', data=values, auth=(‘username', ‘password'))
result=r.text
output = json.loads(result)
out=output['name']
if 'auto' in request.POST:
values = {"name": "auto"}
r=requests.put('http://127.0.0.1:8000/mode/1/', data=values, auth=(‘username', ‘password'))
result=r.text
output = json.loads(result)
out=output['name']
if 'manual' in request.POST:
values = {"name": "manual"}
r=requests.put('http://127.0.0.1:8000/mode/1/', data=values, auth=(‘username', ‘password'))
result=r.text
output = json.loads(result)
out=output['name']
r=requests.get('http://127.0.0.1:8000/mode/1/', auth=(‘username', ‘password'))
result=r.text
output = json.loads(result)
currentmode=output['name']
r=requests.get('http://127.0.0.1:8000/state/1/', auth=(‘username', ‘password'))
result=r.text
output = json.loads(result)
currentstate=output['name']
return render_to_response('lights.html',{'r':out, 'currentmode':currentmode, 'currentstate':currentstate},
context_instance=RequestContext(request))
1. Implement Django Application View
Implementation: Application
<div class="app-content-inner">
<fieldset>
<div class="field clearfix">
<label class="input-label icon-lamp" for="lamp-state">Auto</label>
<input id="lamp-state" class="input js-lamp-state hidden" type="checkbox">
{% if currentmode == 'auto' %}
<div class="js-lamp-state-toggle ui-toggle " data-toggle=".js-lamp-state">
{% else %}
<div class="js-lamp-state-toggle ui-toggle js-toggle-off" data-toggle=".js-lamp-state">
{% endif %}
<span class="ui-toggle-slide clearfix">
<form id="my_form11" action="" method="post">{% csrf_token %}
<input name="auto" value="auto" type="hidden" />
<a href="#" onclick="$(this).closest('form').submit()"><strong class="ui-toggle-off">OFF</strong></a>
</form>
<strong class="ui-toggle-handle brushed-metal"></strong>
<form id="my_form13" action="" method="post">{% csrf_token %}
<input name="manual" value="manual" type="hidden" />
<a href="#" onclick="$(this).closest('form').submit()"><strong class="ui-toggle-on">ON</strong></a>
</form></span>
</div></div>
<div class="field clearfix">
<label class="input-label icon-lamp" for="tv-state">Light</label>
<input id="tv-state" class="input js-tv-state hidden" type="checkbox">
{% if currentstate == 'on' %}
<div class="js-tv-state-toggle ui-toggle " data-toggle=".js-tv-state">
{% else %}
<div class="js-tv-state-toggle ui-toggle js-toggle-off" data-toggle=".js-tv-state">
{% endif %}
{% if currentmode == 'manual' %}
<span class="ui-toggle-slide clearfix">
<form id="my_form2" action="" method="post">{% csrf_token %}
<input name="on" value="on" type="hidden" />
<a href="#" onclick="$(this).closest('form').submit()"><strong class="ui-toggle-off">OFF</strong></a>
</form>
<strong class="ui-toggle-handle brushed-metal"></strong>
<form id="my_form3" action="" method="post">{% csrf_token %}
<input name="off" value="off" type="hidden" />
<a href="#" onclick="$(this).closest('form').submit()"><strong class="ui-toggle-on">ON</strong></a>
</form>
</span>
{% endif %}
{% if currentmode == 'auto' %}
{% if currentstate == 'on' %}
<strong class="ui-toggle-on">&nbsp;&nbsp;&nbsp;&nbsp;ON</strong>
{% else %}
<strong class="ui-toggle-on">&nbsp;&nbsp;&nbsp;&nbsp;OFF</strong>
{% endif %}{% endif %}
</div>
</div>
</fieldset></div></div></div>
2. Implement Django Application
Template
Finally - Integrate the System
Django Application
REST services implemented with Django-REST framework
Native service implemented in Python
SQLite Database
Raspberry Pi device to which sensors and actuators are connected
OS running on Raspberry Pi
• Setup the device
• Deploy and run the REST and Native services
• Deploy and run the Application
• Setup the database

More Related Content

What's hot

IOT Platform Design Methodology
IOT Platform Design Methodology IOT Platform Design Methodology
IOT Platform Design Methodology
poonam kumawat
 
Internet of things(IoT)
Internet of things(IoT)Internet of things(IoT)
Internet of things(IoT)
NAGUR SHAREEF SHAIK
 
Introduction to Internet of Things (IoT)
Introduction to Internet of Things (IoT)Introduction to Internet of Things (IoT)
Introduction to Internet of Things (IoT)
Amarjeetsingh Thakur
 
RFID with INTERNET OF THINGS
RFID with INTERNET OF THINGSRFID with INTERNET OF THINGS
RFID with INTERNET OF THINGS
Bino Mathew Varghese
 
IoT Communication Protocols
IoT Communication ProtocolsIoT Communication Protocols
IoT Communication Protocols
Pradeep Kumar TS
 
Secure IOT Gateway
Secure IOT GatewaySecure IOT Gateway
Secure IOT Gateway
LF Events
 
Protocols for IoT
Protocols for IoTProtocols for IoT
Protocols for IoT
Aravindhan G K
 
Iot architecture
Iot architectureIot architecture
Iot architecture
Anam Iqbal
 
Technology Behind IoT (JNTUK - Unit - 1)
Technology Behind IoT (JNTUK - Unit - 1)Technology Behind IoT (JNTUK - Unit - 1)
Technology Behind IoT (JNTUK - Unit - 1)
FabMinds
 
M2M Communication
M2M CommunicationM2M Communication
M2M Communication
FabMinds
 
IoT Reference Architecture and Case Studies
IoT Reference Architecture and Case StudiesIoT Reference Architecture and Case Studies
IoT Reference Architecture and Case StudiesSerhiy (Serge) Haziyev
 
Protocols for IoT
Protocols for IoTProtocols for IoT
Protocols for IoT
Amit Dev
 
Internet of Things (IOT) - Technology and Applications
Internet of Things (IOT) - Technology and ApplicationsInternet of Things (IOT) - Technology and Applications
Internet of Things (IOT) - Technology and Applications
Dr. Mazlan Abbas
 
10 min IoT ppt
10 min IoT ppt10 min IoT ppt
10 min IoT ppt
Vaishnavu Pathayathodi
 
Iot how it works
Iot   how it worksIot   how it works
Iot how it works
S SIVARAMAKRISHNAN
 
Communication technologies
Communication technologiesCommunication technologies
Communication technologies
FabMinds
 
Physical Design of IoT.pdf
Physical Design of IoT.pdfPhysical Design of IoT.pdf
Physical Design of IoT.pdf
JoshuaKimmich1
 
Zigbee technology ppt
Zigbee technology pptZigbee technology ppt
Zigbee technology ppt
ijaranjani
 
Artificial intelligence and IoT
Artificial intelligence and IoTArtificial intelligence and IoT
Artificial intelligence and IoT
Veselin Pizurica
 
IOT
IOT IOT

What's hot (20)

IOT Platform Design Methodology
IOT Platform Design Methodology IOT Platform Design Methodology
IOT Platform Design Methodology
 
Internet of things(IoT)
Internet of things(IoT)Internet of things(IoT)
Internet of things(IoT)
 
Introduction to Internet of Things (IoT)
Introduction to Internet of Things (IoT)Introduction to Internet of Things (IoT)
Introduction to Internet of Things (IoT)
 
RFID with INTERNET OF THINGS
RFID with INTERNET OF THINGSRFID with INTERNET OF THINGS
RFID with INTERNET OF THINGS
 
IoT Communication Protocols
IoT Communication ProtocolsIoT Communication Protocols
IoT Communication Protocols
 
Secure IOT Gateway
Secure IOT GatewaySecure IOT Gateway
Secure IOT Gateway
 
Protocols for IoT
Protocols for IoTProtocols for IoT
Protocols for IoT
 
Iot architecture
Iot architectureIot architecture
Iot architecture
 
Technology Behind IoT (JNTUK - Unit - 1)
Technology Behind IoT (JNTUK - Unit - 1)Technology Behind IoT (JNTUK - Unit - 1)
Technology Behind IoT (JNTUK - Unit - 1)
 
M2M Communication
M2M CommunicationM2M Communication
M2M Communication
 
IoT Reference Architecture and Case Studies
IoT Reference Architecture and Case StudiesIoT Reference Architecture and Case Studies
IoT Reference Architecture and Case Studies
 
Protocols for IoT
Protocols for IoTProtocols for IoT
Protocols for IoT
 
Internet of Things (IOT) - Technology and Applications
Internet of Things (IOT) - Technology and ApplicationsInternet of Things (IOT) - Technology and Applications
Internet of Things (IOT) - Technology and Applications
 
10 min IoT ppt
10 min IoT ppt10 min IoT ppt
10 min IoT ppt
 
Iot how it works
Iot   how it worksIot   how it works
Iot how it works
 
Communication technologies
Communication technologiesCommunication technologies
Communication technologies
 
Physical Design of IoT.pdf
Physical Design of IoT.pdfPhysical Design of IoT.pdf
Physical Design of IoT.pdf
 
Zigbee technology ppt
Zigbee technology pptZigbee technology ppt
Zigbee technology ppt
 
Artificial intelligence and IoT
Artificial intelligence and IoTArtificial intelligence and IoT
Artificial intelligence and IoT
 
IOT
IOT IOT
IOT
 

Similar to [PPT] _ Unit 2 _ 9.0 _ Domain Specific IoT _Home Automation.pdf

IoT Methodology.pptx
IoT Methodology.pptxIoT Methodology.pptx
IOT Unit 3 for engineering second year .pptx
IOT Unit 3 for engineering second year .pptxIOT Unit 3 for engineering second year .pptx
IOT Unit 3 for engineering second year .pptx
neelamsanjeevkumar
 
iot_application_casestudies.pptx
iot_application_casestudies.pptxiot_application_casestudies.pptx
iot_application_casestudies.pptx
jainam bhavsar
 
IoTES Unit 3 ppt.pptx
IoTES Unit 3 ppt.pptxIoTES Unit 3 ppt.pptx
IoTES Unit 3 ppt.pptx
samdamfa
 
Asp.Net MVC 5 in Arabic
Asp.Net MVC 5 in ArabicAsp.Net MVC 5 in Arabic
Asp.Net MVC 5 in Arabic
Haitham Shaddad
 
Unit 4 -IOT2.pptx
Unit 4 -IOT2.pptxUnit 4 -IOT2.pptx
Unit 4 -IOT2.pptx
NutanBhor
 
IRJET- MVC Framework: A Modern Web Application Development Approach and Working
IRJET- MVC Framework: A Modern Web Application Development Approach and WorkingIRJET- MVC Framework: A Modern Web Application Development Approach and Working
IRJET- MVC Framework: A Modern Web Application Development Approach and Working
IRJET Journal
 
Spring
SpringSpring
Spring
Janu Jahnavi
 
IoT.pptx
IoT.pptxIoT.pptx
IoT.pptx
sateeshka
 
Chapter 1 updated.pdf
Chapter 1 updated.pdfChapter 1 updated.pdf
Chapter 1 updated.pdf
YashWaghmare20
 
PPT-UEU-CSI-421-IOT-Pertemuan-3.pptx
PPT-UEU-CSI-421-IOT-Pertemuan-3.pptxPPT-UEU-CSI-421-IOT-Pertemuan-3.pptx
PPT-UEU-CSI-421-IOT-Pertemuan-3.pptx
shahid sultan
 
spatial data infrastructure : data modelling and web services for data access
spatial data infrastructure : data modelling and web services for data accessspatial data infrastructure : data modelling and web services for data access
spatial data infrastructure : data modelling and web services for data access
Desconnets Jean-Christophe
 
IoT heap 1
IoT heap 1IoT heap 1
IoT heap 1
SushrutaMishra1
 
Get things done with Yii - quickly build webapplications
Get things done with Yii - quickly build webapplicationsGet things done with Yii - quickly build webapplications
Get things done with Yii - quickly build webapplications
Giuliano Iacobelli
 
Presenting Data – An Alternative to the View Control
Presenting Data – An Alternative to the View ControlPresenting Data – An Alternative to the View Control
Presenting Data – An Alternative to the View Control
Teamstudio
 
.NET Core, ASP.NET Core Course, Session 9
.NET Core, ASP.NET Core Course, Session 9.NET Core, ASP.NET Core Course, Session 9
.NET Core, ASP.NET Core Course, Session 9
aminmesbahi
 
ASP.NET MVC_Routing_Authentication_Aurhorization.pdf
ASP.NET MVC_Routing_Authentication_Aurhorization.pdfASP.NET MVC_Routing_Authentication_Aurhorization.pdf
ASP.NET MVC_Routing_Authentication_Aurhorization.pdf
setit72024
 
ASP.NET MVC 2.0
ASP.NET MVC 2.0ASP.NET MVC 2.0
ASP.NET MVC 2.0
Buu Nguyen
 
SAM-IoT: Model Based Methodology and Framework for Design and Management of N...
SAM-IoT: Model Based Methodology and Framework for Design and Management of N...SAM-IoT: Model Based Methodology and Framework for Design and Management of N...
SAM-IoT: Model Based Methodology and Framework for Design and Management of N...
Brain IoT Project
 

Similar to [PPT] _ Unit 2 _ 9.0 _ Domain Specific IoT _Home Automation.pdf (20)

IoT Methodology.pptx
IoT Methodology.pptxIoT Methodology.pptx
IoT Methodology.pptx
 
IOT Unit 3 for engineering second year .pptx
IOT Unit 3 for engineering second year .pptxIOT Unit 3 for engineering second year .pptx
IOT Unit 3 for engineering second year .pptx
 
iot_application_casestudies.pptx
iot_application_casestudies.pptxiot_application_casestudies.pptx
iot_application_casestudies.pptx
 
IoTES Unit 3 ppt.pptx
IoTES Unit 3 ppt.pptxIoTES Unit 3 ppt.pptx
IoTES Unit 3 ppt.pptx
 
Asp.Net MVC 5 in Arabic
Asp.Net MVC 5 in ArabicAsp.Net MVC 5 in Arabic
Asp.Net MVC 5 in Arabic
 
Unit 4 -IOT2.pptx
Unit 4 -IOT2.pptxUnit 4 -IOT2.pptx
Unit 4 -IOT2.pptx
 
IRJET- MVC Framework: A Modern Web Application Development Approach and Working
IRJET- MVC Framework: A Modern Web Application Development Approach and WorkingIRJET- MVC Framework: A Modern Web Application Development Approach and Working
IRJET- MVC Framework: A Modern Web Application Development Approach and Working
 
Spring
SpringSpring
Spring
 
IoT.pptx
IoT.pptxIoT.pptx
IoT.pptx
 
Chapter 1 updated.pdf
Chapter 1 updated.pdfChapter 1 updated.pdf
Chapter 1 updated.pdf
 
PPT-UEU-CSI-421-IOT-Pertemuan-3.pptx
PPT-UEU-CSI-421-IOT-Pertemuan-3.pptxPPT-UEU-CSI-421-IOT-Pertemuan-3.pptx
PPT-UEU-CSI-421-IOT-Pertemuan-3.pptx
 
Chapter - 1.pptx
Chapter - 1.pptxChapter - 1.pptx
Chapter - 1.pptx
 
spatial data infrastructure : data modelling and web services for data access
spatial data infrastructure : data modelling and web services for data accessspatial data infrastructure : data modelling and web services for data access
spatial data infrastructure : data modelling and web services for data access
 
IoT heap 1
IoT heap 1IoT heap 1
IoT heap 1
 
Get things done with Yii - quickly build webapplications
Get things done with Yii - quickly build webapplicationsGet things done with Yii - quickly build webapplications
Get things done with Yii - quickly build webapplications
 
Presenting Data – An Alternative to the View Control
Presenting Data – An Alternative to the View ControlPresenting Data – An Alternative to the View Control
Presenting Data – An Alternative to the View Control
 
.NET Core, ASP.NET Core Course, Session 9
.NET Core, ASP.NET Core Course, Session 9.NET Core, ASP.NET Core Course, Session 9
.NET Core, ASP.NET Core Course, Session 9
 
ASP.NET MVC_Routing_Authentication_Aurhorization.pdf
ASP.NET MVC_Routing_Authentication_Aurhorization.pdfASP.NET MVC_Routing_Authentication_Aurhorization.pdf
ASP.NET MVC_Routing_Authentication_Aurhorization.pdf
 
ASP.NET MVC 2.0
ASP.NET MVC 2.0ASP.NET MVC 2.0
ASP.NET MVC 2.0
 
SAM-IoT: Model Based Methodology and Framework for Design and Management of N...
SAM-IoT: Model Based Methodology and Framework for Design and Management of N...SAM-IoT: Model Based Methodology and Framework for Design and Management of N...
SAM-IoT: Model Based Methodology and Framework for Design and Management of N...
 

More from Selvaraj Seerangan

Unit 2,3,4 _ Internet of Things A Hands-On Approach (Arshdeep Bahga, Vijay Ma...
Unit 2,3,4 _ Internet of Things A Hands-On Approach (Arshdeep Bahga, Vijay Ma...Unit 2,3,4 _ Internet of Things A Hands-On Approach (Arshdeep Bahga, Vijay Ma...
Unit 2,3,4 _ Internet of Things A Hands-On Approach (Arshdeep Bahga, Vijay Ma...
Selvaraj Seerangan
 
Unit 5 _ Fog Computing .pdf
Unit 5 _ Fog Computing .pdfUnit 5 _ Fog Computing .pdf
Unit 5 _ Fog Computing .pdf
Selvaraj Seerangan
 
CAT III Answer Key.pdf
CAT III Answer Key.pdfCAT III Answer Key.pdf
CAT III Answer Key.pdf
Selvaraj Seerangan
 
END SEM _ Design Thinking _ 16 Templates.pptx
END SEM _ Design Thinking _ 16 Templates.pptxEND SEM _ Design Thinking _ 16 Templates.pptx
END SEM _ Design Thinking _ 16 Templates.pptx
Selvaraj Seerangan
 
Design Thinking _ Complete Templates.pptx
Design Thinking _ Complete Templates.pptxDesign Thinking _ Complete Templates.pptx
Design Thinking _ Complete Templates.pptx
Selvaraj Seerangan
 
CAT 3 _ List of Templates.pptx
CAT 3 _ List of Templates.pptxCAT 3 _ List of Templates.pptx
CAT 3 _ List of Templates.pptx
Selvaraj Seerangan
 
[PPT] _ Unit 5 _ Evolve.pptx
[PPT] _ Unit 5 _ Evolve.pptx[PPT] _ Unit 5 _ Evolve.pptx
[PPT] _ Unit 5 _ Evolve.pptx
Selvaraj Seerangan
 
[PPT] _ Unit 4 _ Engage.pptx
[PPT] _ Unit 4 _ Engage.pptx[PPT] _ Unit 4 _ Engage.pptx
[PPT] _ Unit 4 _ Engage.pptx
Selvaraj Seerangan
 
[PPT] _ Unit 3 _ Experiment.pptx
[PPT] _ Unit 3 _ Experiment.pptx[PPT] _ Unit 3 _ Experiment.pptx
[PPT] _ Unit 3 _ Experiment.pptx
Selvaraj Seerangan
 
CAT 2 _ List of Templates.pptx
CAT 2 _ List of Templates.pptxCAT 2 _ List of Templates.pptx
CAT 2 _ List of Templates.pptx
Selvaraj Seerangan
 
Design Thinking - Empathize Phase
Design Thinking - Empathize PhaseDesign Thinking - Empathize Phase
Design Thinking - Empathize Phase
Selvaraj Seerangan
 
CAT-II Answer Key.pdf
CAT-II Answer Key.pdfCAT-II Answer Key.pdf
CAT-II Answer Key.pdf
Selvaraj Seerangan
 
PSP LAB MANUAL.pdf
PSP LAB MANUAL.pdfPSP LAB MANUAL.pdf
PSP LAB MANUAL.pdf
Selvaraj Seerangan
 
18CSL51 - Network Lab Manual.pdf
18CSL51 - Network Lab Manual.pdf18CSL51 - Network Lab Manual.pdf
18CSL51 - Network Lab Manual.pdf
Selvaraj Seerangan
 
DS LAB MANUAL.pdf
DS LAB MANUAL.pdfDS LAB MANUAL.pdf
DS LAB MANUAL.pdf
Selvaraj Seerangan
 
CAT 1 _ List of Templates.pptx
CAT 1 _ List of Templates.pptxCAT 1 _ List of Templates.pptx
CAT 1 _ List of Templates.pptx
Selvaraj Seerangan
 
[PPT] _ UNIT 1 _ COMPLETE.pptx
[PPT] _ UNIT 1 _ COMPLETE.pptx[PPT] _ UNIT 1 _ COMPLETE.pptx
[PPT] _ UNIT 1 _ COMPLETE.pptx
Selvaraj Seerangan
 
CAT-1 Answer Key.doc
CAT-1 Answer Key.docCAT-1 Answer Key.doc
CAT-1 Answer Key.doc
Selvaraj Seerangan
 
Unit 3 Complete.pptx
Unit 3 Complete.pptxUnit 3 Complete.pptx
Unit 3 Complete.pptx
Selvaraj Seerangan
 
[PPT] _ Unit 2 _ Complete PPT.pptx
[PPT] _ Unit 2 _ Complete PPT.pptx[PPT] _ Unit 2 _ Complete PPT.pptx
[PPT] _ Unit 2 _ Complete PPT.pptx
Selvaraj Seerangan
 

More from Selvaraj Seerangan (20)

Unit 2,3,4 _ Internet of Things A Hands-On Approach (Arshdeep Bahga, Vijay Ma...
Unit 2,3,4 _ Internet of Things A Hands-On Approach (Arshdeep Bahga, Vijay Ma...Unit 2,3,4 _ Internet of Things A Hands-On Approach (Arshdeep Bahga, Vijay Ma...
Unit 2,3,4 _ Internet of Things A Hands-On Approach (Arshdeep Bahga, Vijay Ma...
 
Unit 5 _ Fog Computing .pdf
Unit 5 _ Fog Computing .pdfUnit 5 _ Fog Computing .pdf
Unit 5 _ Fog Computing .pdf
 
CAT III Answer Key.pdf
CAT III Answer Key.pdfCAT III Answer Key.pdf
CAT III Answer Key.pdf
 
END SEM _ Design Thinking _ 16 Templates.pptx
END SEM _ Design Thinking _ 16 Templates.pptxEND SEM _ Design Thinking _ 16 Templates.pptx
END SEM _ Design Thinking _ 16 Templates.pptx
 
Design Thinking _ Complete Templates.pptx
Design Thinking _ Complete Templates.pptxDesign Thinking _ Complete Templates.pptx
Design Thinking _ Complete Templates.pptx
 
CAT 3 _ List of Templates.pptx
CAT 3 _ List of Templates.pptxCAT 3 _ List of Templates.pptx
CAT 3 _ List of Templates.pptx
 
[PPT] _ Unit 5 _ Evolve.pptx
[PPT] _ Unit 5 _ Evolve.pptx[PPT] _ Unit 5 _ Evolve.pptx
[PPT] _ Unit 5 _ Evolve.pptx
 
[PPT] _ Unit 4 _ Engage.pptx
[PPT] _ Unit 4 _ Engage.pptx[PPT] _ Unit 4 _ Engage.pptx
[PPT] _ Unit 4 _ Engage.pptx
 
[PPT] _ Unit 3 _ Experiment.pptx
[PPT] _ Unit 3 _ Experiment.pptx[PPT] _ Unit 3 _ Experiment.pptx
[PPT] _ Unit 3 _ Experiment.pptx
 
CAT 2 _ List of Templates.pptx
CAT 2 _ List of Templates.pptxCAT 2 _ List of Templates.pptx
CAT 2 _ List of Templates.pptx
 
Design Thinking - Empathize Phase
Design Thinking - Empathize PhaseDesign Thinking - Empathize Phase
Design Thinking - Empathize Phase
 
CAT-II Answer Key.pdf
CAT-II Answer Key.pdfCAT-II Answer Key.pdf
CAT-II Answer Key.pdf
 
PSP LAB MANUAL.pdf
PSP LAB MANUAL.pdfPSP LAB MANUAL.pdf
PSP LAB MANUAL.pdf
 
18CSL51 - Network Lab Manual.pdf
18CSL51 - Network Lab Manual.pdf18CSL51 - Network Lab Manual.pdf
18CSL51 - Network Lab Manual.pdf
 
DS LAB MANUAL.pdf
DS LAB MANUAL.pdfDS LAB MANUAL.pdf
DS LAB MANUAL.pdf
 
CAT 1 _ List of Templates.pptx
CAT 1 _ List of Templates.pptxCAT 1 _ List of Templates.pptx
CAT 1 _ List of Templates.pptx
 
[PPT] _ UNIT 1 _ COMPLETE.pptx
[PPT] _ UNIT 1 _ COMPLETE.pptx[PPT] _ UNIT 1 _ COMPLETE.pptx
[PPT] _ UNIT 1 _ COMPLETE.pptx
 
CAT-1 Answer Key.doc
CAT-1 Answer Key.docCAT-1 Answer Key.doc
CAT-1 Answer Key.doc
 
Unit 3 Complete.pptx
Unit 3 Complete.pptxUnit 3 Complete.pptx
Unit 3 Complete.pptx
 
[PPT] _ Unit 2 _ Complete PPT.pptx
[PPT] _ Unit 2 _ Complete PPT.pptx[PPT] _ Unit 2 _ Complete PPT.pptx
[PPT] _ Unit 2 _ Complete PPT.pptx
 

Recently uploaded

Technical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prismsTechnical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prisms
heavyhaig
 
Building Electrical System Design & Installation
Building Electrical System Design & InstallationBuilding Electrical System Design & Installation
Building Electrical System Design & Installation
symbo111
 
Investor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptxInvestor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptx
AmarGB2
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
Kamal Acharya
 
Fundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptxFundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptx
manasideore6
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
SUTEJAS
 
Water billing management system project report.pdf
Water billing management system project report.pdfWater billing management system project report.pdf
Water billing management system project report.pdf
Kamal Acharya
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
Amil Baba Dawood bangali
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
SamSarthak3
 
Forklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella PartsForklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella Parts
Intella Parts
 
PPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testingPPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testing
anoopmanoharan2
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
Kamal Acharya
 
CW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERS
CW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERSCW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERS
CW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERS
veerababupersonal22
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
AJAYKUMARPUND1
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Christina Lin
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
Kerry Sado
 
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdfTutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
aqil azizi
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
obonagu
 
Fundamentals of Induction Motor Drives.pptx
Fundamentals of Induction Motor Drives.pptxFundamentals of Induction Motor Drives.pptx
Fundamentals of Induction Motor Drives.pptx
manasideore6
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
VENKATESHvenky89705
 

Recently uploaded (20)

Technical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prismsTechnical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prisms
 
Building Electrical System Design & Installation
Building Electrical System Design & InstallationBuilding Electrical System Design & Installation
Building Electrical System Design & Installation
 
Investor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptxInvestor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptx
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
 
Fundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptxFundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptx
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
 
Water billing management system project report.pdf
Water billing management system project report.pdfWater billing management system project report.pdf
Water billing management system project report.pdf
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
 
Forklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella PartsForklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella Parts
 
PPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testingPPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testing
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
 
CW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERS
CW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERSCW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERS
CW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERS
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
 
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdfTutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
 
Fundamentals of Induction Motor Drives.pptx
Fundamentals of Induction Motor Drives.pptxFundamentals of Induction Motor Drives.pptx
Fundamentals of Induction Motor Drives.pptx
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
 

[PPT] _ Unit 2 _ 9.0 _ Domain Specific IoT _Home Automation.pdf

  • 1. Chapter 5 IoT Design Methodology Bahga & Madisetti, © 2015 Book website: http://www.internet-of-things-book.com
  • 2. Outline • IoT Design Methodology that includes: • Purpose & Requirements Specification • Process Specification • Domain Model Specification • Information Model Specification • Service Specifications • IoT Level Specification • Functional View Specification • Operational View Specification • Device & Component Integration • Application Development Bahga & Madisetti, © 2015 Book website: http://www.internet-of-things-book.com
  • 4. Step 1: Purpose & Requirements Specification • The first step in IoT system design methodology is to define the purpose and requirements of the system. In this step, the system purpose, behavior and requirements (such as data collection requirements, data analysis requirements, system management requirements, data privacy and security requirements, user interface requirements, ...) are captured.
  • 5. Step 2: Process Specification • The second step in the IoT design methodology is to define the process specification. In this step, the use cases of the IoT system are formally described based on and derived from the purpose and requirement specifications.
  • 6. Step 3: Domain Model Specification • The third step in the IoT design methodology is to define the Domain Model. The domain model describes the main concepts, entities and objects in the domain of IoT system to be designed. Domain model defines the attributes of the objects and relationships between objects. Domain model provides an abstract representation of the concepts, objects and entities in the IoT domain, independent of any specific technology or platform. With the domain model, the IoT system designers can get an understanding of the IoT domain for which the system is to be designed.
  • 7. Step 4: Information Model Specification • The fourth step in the IoT design methodology is to define the Information Model. Information Model defines the structure of all the information in the IoT system, for example, attributes of Virtual Entities, relations, etc. Information model does not describe the specifics of how the information is represented or stored. To define the information model, we first list the Virtual Entities defined in the Domain Model. Information model adds more details to the Virtual Entities by defining their attributes and relations.
  • 8. Step 5: Service Specifications • The fifth step in the IoT design methodology is to define the service specifications. Service specifications define the services in the IoT system, service types, service inputs/output, service endpoints, service schedules, service preconditions and service effects.
  • 9. Step 6: IoT Level Specification • The sixth step in the IoT design methodology is to define the IoT level for the system. In Chapter-1, we defined five IoT deployment levels.
  • 10. Step 7: Functional View Specification • The seventh step in the IoT design methodology is to define the Functional View. The Functional View (FV) defines the functions of the IoT systems grouped into various Functional Groups (FGs). Each Functional Group either provides functionalities for interacting with instances of concepts defined in the Domain Model or provides information related to these concepts.
  • 11. Step 8: Operational View Specification • The eighth step in the IoT design methodology is to define the Operational View Specifications. In this step, various options pertaining to the IoT system deployment and operation are defined, such as, service hosting options, storage options, device options, application hosting options, etc
  • 12. Step 9: Device & Component Integration • The ninth step in the IoT design methodology is the integration of the devices and components.
  • 13. Step 10: Application Development • The final step in the IoT design methodology is to develop the IoT application.
  • 15. Step:1 - Purpose & Requirements • Applying this to our example of a smart home automation system, the purpose and requirements for the system may be described as follows: • Purpose : A home automation system that allows controlling of the lights in a home remotely using a web application. • Behavior : The home automation system should have auto and manual modes. In auto mode, the system measures the light level in the room and switches on the light when it gets dark. In manual mode, the system provides the option of manually and remotely switching on/off the light. • System Management Requirement : The system should provide remote monitoring and control functions. • Data Analysis Requirement : The system should perform local analysis of the data. • Application Deployment Requirement : The application should be deployed locally on the device, but should be accessible remotely. • Security Requirement : The system should have basic user authentication capability.
  • 16. Step:2 - Process Specification
  • 17. Step 3: Domain Model Specification
  • 18. Step 4: Information Model Specification
  • 19. Step 5: Service Specifications
  • 20. Step 5: Service Specifications
  • 21. Step 6: IoT Level Specification
  • 22. Step 7: Functional View Specification
  • 23. Step 8: Operational View Specification
  • 24. Step 9: Device & Component Integration
  • 25. Step 10: Application Development • Auto • Controls the light appliance automatically based on the lighting conditions in the room • Light • When Auto mode is off, it is used for manually controlling the light appliance. • When Auto mode is on, it reflects the current state of the light appliance.
  • 26. Implementation: RESTful Web Services # Models – models.py from django.db import models class Mode(models.Model): name = models.CharField(max_length=50) class State(models.Model): name = models.CharField(max_length=50) # Serializers – serializers.py from myapp.models import Mode, State from rest_framework import serializers class ModeSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Mode fields = ('url', 'name') class StateSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = State fields = ('url', 'name') REST services implemented with Django REST Framework 1. Map services to models. Model fields store the states (on/off, auto/manual) 2. Write Model serializers. Serializers allow complex data (such as model instances) to be converted to native Python datatypes that can then be easily rendered into JSON, XML or other content types.
  • 27. Implementation: RESTful Web Services # Views – views.py from myapp.models import Mode, State from rest_framework import viewsets from myapp.serializers import ModeSerializer, StateSerializer class ModeViewSet(viewsets.ModelViewSet): queryset = Mode.objects.all() serializer_class = ModeSerializer class StateViewSet(viewsets.ModelViewSet): queryset = State.objects.all() serializer_class = StateSerializer 3. Write ViewSets for the Models which combine the logic for a set of related views in a single class. # Models – models.py from django.db import models class Mode(models.Model): name = models.CharField(max_length=50) class State(models.Model): name = models.CharField(max_length=50) 4. Write URL patterns for the services. Since ViewSets are used instead of views, we can automatically generate the URL conf by simply registering the viewsets with a router class. Routers automatically determining how the URLs for an application should be mapped to the logic that deals with handling incoming requests. # URL Patterns – urls.py from django.conf.urls import patterns, include, url from django.contrib import admin from rest_framework import routers from myapp import views admin.autodiscover() router = routers.DefaultRouter() router.register(r'mode', views.ModeViewSet) router.register(r'state', views.StateViewSet) urlpatterns = patterns('', url(r'^', include(router.urls)), url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')), url(r'^admin/', include(admin.site.urls)), url(r'^home/', 'myapp.views.home'), )
  • 28. Implementation: RESTful Web Services Screenshot of browsable State REST API Screenshot of browsable Mode REST API
  • 29. Implementation: Controller Native Service #Controller service import RPi.GPIO as GPIO import time import sqlite3 as lite import sys con = lite.connect('database.sqlite') cur = con.cursor() GPIO.setmode(GPIO.BCM) threshold = 1000 LDR_PIN = 18 LIGHT_PIN = 25 def readldr(PIN): reading=0 GPIO.setup(PIN, GPIO.OUT) GPIO.output(PIN, GPIO.LOW) time.sleep(0.1) GPIO.setup(PIN, GPIO.IN) while (GPIO.input(PIN)==GPIO.LOW): reading=reading+1 return reading def switchOnLight(PIN): GPIO.setup(PIN, GPIO.OUT) GPIO.output(PIN, GPIO.HIGH) def switchOffLight(PIN): GPIO.setup(PIN, GPIO.OUT) GPIO.output(PIN, GPIO.LOW) def runAutoMode(): ldr_reading = readldr(LDR_PIN) if ldr_reading < threshold: switchOnLight(LIGHT_PIN) setCurrentState('on') else: switchOffLight(LIGHT_PIN) setCurrentState('off') def runManualMode(): state = getCurrentState() if state=='on': switchOnLight(LIGHT_PIN) setCurrentState('on') elif state=='off': switchOffLight(LIGHT_PIN) setCurrentState('off') def getCurrentMode(): cur.execute('SELECT * FROM myapp_mode') data = cur.fetchone() #(1, u'auto') return data[1] def getCurrentState(): cur.execute('SELECT * FROM myapp_state') data = cur.fetchone() #(1, u'on') return data[1] def setCurrentState(val): query='UPDATE myapp_state set name="'+val+'"' cur.execute(query) while True: currentMode=getCurrentMode() if currentMode=='auto': runAutoMode() elif currentMode=='manual': runManualMode() time.sleep(5) Native service deployed locally 1. Implement the native service in Python and run on the device
  • 30. Implementation: Application # Views – views.py def home(request): out=‘’ if 'on' in request.POST: values = {"name": "on"} r=requests.put('http://127.0.0.1:8000/state/1/', data=values, auth=(‘username', ‘password')) result=r.text output = json.loads(result) out=output['name'] if 'off' in request.POST: values = {"name": "off"} r=requests.put('http://127.0.0.1:8000/state/1/', data=values, auth=(‘username', ‘password')) result=r.text output = json.loads(result) out=output['name'] if 'auto' in request.POST: values = {"name": "auto"} r=requests.put('http://127.0.0.1:8000/mode/1/', data=values, auth=(‘username', ‘password')) result=r.text output = json.loads(result) out=output['name'] if 'manual' in request.POST: values = {"name": "manual"} r=requests.put('http://127.0.0.1:8000/mode/1/', data=values, auth=(‘username', ‘password')) result=r.text output = json.loads(result) out=output['name'] r=requests.get('http://127.0.0.1:8000/mode/1/', auth=(‘username', ‘password')) result=r.text output = json.loads(result) currentmode=output['name'] r=requests.get('http://127.0.0.1:8000/state/1/', auth=(‘username', ‘password')) result=r.text output = json.loads(result) currentstate=output['name'] return render_to_response('lights.html',{'r':out, 'currentmode':currentmode, 'currentstate':currentstate}, context_instance=RequestContext(request)) 1. Implement Django Application View
  • 31. Implementation: Application <div class="app-content-inner"> <fieldset> <div class="field clearfix"> <label class="input-label icon-lamp" for="lamp-state">Auto</label> <input id="lamp-state" class="input js-lamp-state hidden" type="checkbox"> {% if currentmode == 'auto' %} <div class="js-lamp-state-toggle ui-toggle " data-toggle=".js-lamp-state"> {% else %} <div class="js-lamp-state-toggle ui-toggle js-toggle-off" data-toggle=".js-lamp-state"> {% endif %} <span class="ui-toggle-slide clearfix"> <form id="my_form11" action="" method="post">{% csrf_token %} <input name="auto" value="auto" type="hidden" /> <a href="#" onclick="$(this).closest('form').submit()"><strong class="ui-toggle-off">OFF</strong></a> </form> <strong class="ui-toggle-handle brushed-metal"></strong> <form id="my_form13" action="" method="post">{% csrf_token %} <input name="manual" value="manual" type="hidden" /> <a href="#" onclick="$(this).closest('form').submit()"><strong class="ui-toggle-on">ON</strong></a> </form></span> </div></div> <div class="field clearfix"> <label class="input-label icon-lamp" for="tv-state">Light</label> <input id="tv-state" class="input js-tv-state hidden" type="checkbox"> {% if currentstate == 'on' %} <div class="js-tv-state-toggle ui-toggle " data-toggle=".js-tv-state"> {% else %} <div class="js-tv-state-toggle ui-toggle js-toggle-off" data-toggle=".js-tv-state"> {% endif %} {% if currentmode == 'manual' %} <span class="ui-toggle-slide clearfix"> <form id="my_form2" action="" method="post">{% csrf_token %} <input name="on" value="on" type="hidden" /> <a href="#" onclick="$(this).closest('form').submit()"><strong class="ui-toggle-off">OFF</strong></a> </form> <strong class="ui-toggle-handle brushed-metal"></strong> <form id="my_form3" action="" method="post">{% csrf_token %} <input name="off" value="off" type="hidden" /> <a href="#" onclick="$(this).closest('form').submit()"><strong class="ui-toggle-on">ON</strong></a> </form> </span> {% endif %} {% if currentmode == 'auto' %} {% if currentstate == 'on' %} <strong class="ui-toggle-on">&nbsp;&nbsp;&nbsp;&nbsp;ON</strong> {% else %} <strong class="ui-toggle-on">&nbsp;&nbsp;&nbsp;&nbsp;OFF</strong> {% endif %}{% endif %} </div> </div> </fieldset></div></div></div> 2. Implement Django Application Template
  • 32. Finally - Integrate the System Django Application REST services implemented with Django-REST framework Native service implemented in Python SQLite Database Raspberry Pi device to which sensors and actuators are connected OS running on Raspberry Pi • Setup the device • Deploy and run the REST and Native services • Deploy and run the Application • Setup the database