0% found this document useful (0 votes)
32 views10 pages

WMS 1

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 10

Case Study- 2: IoT System for Weather Monitoring.

System Design Steps

Step1: Purpose and requirements Specification

Purpose: Weather Monitoring System is to collect data on environmental conditions such as


temperature, pressure, humidity and light. (other parameters such as wind speed, wind
direction, solar radiations, rainfall can also be added) using multiple end nodes.

Behavior: End nodes collect data from sensors at regular intervals say every 15 seconds to the
cloud. Where the data is collected and analyzed.

Systems Management Requirement/ Data Analysis Management/ Application Deployment


Requirement: System does remote monitoring, remote data analysis and the application is
also remotely deployed on the cloud.

Step2: Process specification.


Sensors are read after fixed intervals and the sensors measurements are stored.

Read Sensor

Store Value

WAIT 5 MINS
Step 3: Domain model Specification

Defining the various physical, virtual entities and the services.

Physical Entity – environment which is being monitored.


Virtual entity – environment
Devices include – temp sensor, pressure sensor, light sensor single board, computer.
Services – Controller service that monitors, temperature, pressure humidity and light – sends
reading to the cloud

Invokes User

Subscribers

Active Digital Artifact Human User

Application

Services Associated Virtual Entity Physical Entity


Relates Monitor
with Environment to Environment

exposes
Associated
Resource With hosts
Device
minicomputer
Attached to Attached to

Network resource On-device Sensor Sensor Sensor Sensor


resource
Temperature Pressure Humidity Light
Step4: Information Model Specification
Corresponding to physical entity environment – there is a virtual entity – expanding on each
virtual entity environment
Step 5- Service Specifications Model

Derived From the highlighted portions of process and information model – service Model –
Controller Service that runs as a native service on the device and monitors parameters every
15 seconds. The controller service calls the REST service to store these measurements in the
cloud.

Service

Name: Controller
Type: Native

Has Output Has Schedule

Output Schedule
Temperature Interval: Every 15
Pressure Seconds
Humidity
Light

Service Model for Weather Monitoring System


Deployment Level Specification – Step 6

The system has multiple nodes placed in different locations for monitoring – temperature ,
pressure, light, humidity. The end nodes are equipped with sensors – send data to the
cloud, data is stored in the cloud database. Analysis done in cloud to aggregate data and
make predictions. Cloud based applications for visualizing data. The centralized controller
on the cloud can send control commands to the end nodes for e.g. to change monitoring
intervals.
Step 7: Functional View Specification
Step 8: Operational View Specification

Selection of Various Hardware & Software Componments

Device: Raspberry PI, Sensors (Light, Temperature, pressure, Humidity, wind speed*, wind
direction*, Rainfall*, Solar Radiations*)

Communication: protocols 802.11/ IPV4/ TCP/HTTP

API: RESTFUL

Services:
Controller – Native – Python
Why Python
1) Minimalistic Language- English like keywords, fewer syntactical constructions- easier
to learn
2) Compact – when compared to other languages.
3) Interpreted Language – does not require compilation python interpreter converts
python code to intermediate byte code specific to system.
4) Python supported on wide range of platforms – hence portable
5) Wide Library support
6) Can be used for End-to-End development of IoT systems – device code, native
service, web service, web applications, analytics

Applications
Web Applications – Django
Application Server – Django
Why Django?
The Django framework that is designed to support web apps including web services,
resources and web APIs alleviate the overhead associated with common activities
performed with web development. It allows clean and rapid development of pragmatic
design without reinventing the wheel.
Advantages of Django
• Based on Python
• Open Source – Works on any Platform
• Transparent & High Quality code writing
Disadvantage of Django
• Does not allow RT Web Applications
Database – MySQL
Advantages of MySQL (Structured Query Language)
• Support for Deeply Embedded Systems
• 1 MB footprint – even when data is in TB
• Data Protection Mechanism via Authentication Built -in
• Allows high speed and large data accesses.

Analytics – Hadoop
Advantages of Hadoop
• Robust even when there is some failure in the cloud.
• Two Parts – a data processing framework and distributed file system for storage
• Has component built in for a distributed system.

Observer – Cloud Application, Mobile Application

Security
Authentication: Web Application, Database
Authorization: Web application, Database

Management
Application: Django
Database: MySQL
Device: Raspberry Device Management.
Step 9: Device & Component Integration

This involves the embedded system design of the local device – the weather monitoring
system that has the microcontroller and the sensors connected to it. The system is built
around Raspberry PI with sensors for light, temperature, pressure and humidity. Data is
collected from these sensors at regular intervals of 15 seconds and is sent to the cloud. The
figure shows the schematic of this system. Though currently the system only monitors four
parameters other sensors can be added later.
Step 10: Application Development

The figure is a screenshot of a Weather Monitor System (This is one possible application Interface)

The application shows the temperature, pressure, humidity, wind direction & speed, solar radiation
as well as the current weather forecast. The application allows the user to select from which site he
wants the data – based on the site it displays the parameters on the screen- While displaying the
parameters of (current value) of all sites on the left pane. The parameter to be displayed can be
selected by the user from the list of weather parameters.

You might also like