You are on page 1of 8

High Level Design

For
Project Name

WinWire IoT project – High Level Design

Submitted to

Prepared by : Amit Dubay


Reviewed by : <<Name>>
Date Submitted : <<Date>>

Version : 0.1
Last revised date : <<Date>>

This document is created by WinWire Technologies, Inc. This document and any supporting
appendices submitted with it are confidential and intended solely for the use of the business users
and IT team working at WinWire Technologies.
WinWire IoT Project

High Level Design Document

Revision History

Change Record

Date Author Version Change reference

09/18/2015 Amit Dubay 0.1 Initial Version

Reviewers

Name Version approved Date

Confidential © 2013 WinWire Technologies, Inc. Page | 2


WinWire IoT Project

High Level Design Document

Table of Contents
1. Introduction ............................................................................................................... 4
2. Purpose/Audience .................................................................................................... 4
3. Goals and Objectives................................................................................................ 4
4. Solution Overview ..................................................................................................... 4
5. System Architecture.................................................................................................. 5
5.1 Solution Architecture .......................................................................................... 5
5.2 Azure Web Service Architecture ........................................................................ 7
5.3 Information Architecture ..................................................................................... 8
5.3.1 Data Model ........................................................................................................... 8

Confidential © 2013 WinWire Technologies, Inc. Page | 3


WinWire IoT Project

High Level Design Document

1. Introduction

This document describes the high level architecture for the WinWire IoT project. The requirement is
to capture the water consumption from each of the taps at a given house and provide reports on
water usage that can help people analyze and conserve water. The reports would be a part of a web
application and mobile application. Additional feature of the mobile application would be to turn the
tap on/off remotely. The document outlines all the components/modules involved in developing the
app and how they interact with each other.

2. Purpose/Audience

The audience for this document is the development team for the project and the product manager. It
provides the guidance to the developers on construction of code and storage mechanism for related
data. The product manager can verify the design to see if all of the functionality is covered as part of
the project.

3. Goals and Objectives

The primary objective of the project is to capture water consumption from a tap with the help of
Raspberry Pi Model B with Windows 10 IoT core, and build supporting web and mobile application.

4. Solution Overview

The following diagram shows various components involved and the high level architecture of the
application.

Confidential © 2013 WinWire Technologies, Inc. Page | 4


WinWire IoT Project

High Level Design Document

 Raspberry Pi Model B – This runs Windows 10 IoT core and hosts a native application to accept
commands from a push button to turn the tap On/Off
 Xamarin Mobile App – The app can be used to send the commands to Azure web service to turn
tap On/Off, and view reports of water consumption
 Azure Web Service – Accepts inputs about the tap being turned On/Off and updates the Azure
storage
 Azure SQL Database – Stores all information about the valve such as date and time when each
time tap was turned On/Off
 Reporting Application – Web application hosted on Azure that displays reports on water
consumption based on the data captured

5. System Architecture

This section details out the high level system architecture and system interactions

5.1 Solution Architecture

The Raspberry Windows 10 project works on 2 inputs, one from the Push Button to turn the tap
on/off and second from Xamarin mobile application to remotely operate the tap. Following is the
flowchart for handling these two inputs.

Confidential © 2013 WinWire Technologies, Inc. Page | 5


WinWire IoT Project

High Level Design Document

1. Flowchart for push button input

Start

User presses
Push Button

Set voltage on pin as Set voltage on pin as


high to disconnect Is Tap Status low to connect
On Off
power supply from On/Off? power supply to
valve valve

Update Tap Status Update Tap Status


OFF ON

Call Azure Web Call Azure Web


Service to log tap Service to log tap
OFF time ON time

End

Confidential © 2013 WinWire Technologies, Inc. Page | 6


WinWire IoT Project

High Level Design Document

2. Flowchart for input from Xamarin Mobile App

Start

Fetch Tap Status on


Azure

Repeat every 2 seconds

Is Tap Status
same as Azure?

No

Set voltage on pin as Set voltage on pin as


high to disconnect Is Azure Status low to connect
On Off
power supply from ON/OFF? power supply to
valve valve

Update Tap Status Update Tap Status


OFF ON

End

5.2 Azure Web Service Architecture

The Azure web service is created using ASP.Net MVC Web API. The Azure Web API uses Entity
Framework to write all information to the database.

The API provides the following 3 methods for its clients -

GetTapStatus – Returns the current status of the tap (On/Off)


UpdateTapStatus – Updates the current status of the tap
Analytics – Provides all data related to the tap to build the reports

Confidential © 2013 WinWire Technologies, Inc. Page | 7


WinWire IoT Project

High Level Design Document

5.3 Information Architecture

The data captured is stored on Azure SQL Database.

5.3.1 Data Model

Below is the data model for SQL database –

ValveStatus
TapFlowRate
PK ID
PK TapID
TapID
FlowRate
TimeON
TimeOFF

vw_ValveStatusSummary
TapID
TimeON
TimeOFF
Date
Month
Year
ValveOpenDuration
FlowRate
OutFlow

Confidential © 2013 WinWire Technologies, Inc. Page | 8

You might also like