Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
For
Project Name
Submitted to
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
Revision History
Change Record
Reviewers
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
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.
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.
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
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.
Start
User presses
Push Button
End
Start
Is Tap Status
same as Azure?
No
End
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.
ValveStatus
TapFlowRate
PK ID
PK TapID
TapID
FlowRate
TimeON
TimeOFF
vw_ValveStatusSummary
TapID
TimeON
TimeOFF
Date
Month
Year
ValveOpenDuration
FlowRate
OutFlow