Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
Swapped solution overview with functionality.
  • Loading branch information
jsiegmund authored Aug 12, 2016
1 parent 7ab6651 commit 7ec278c
Showing 1 changed file with 19 additions and 19 deletions.
38 changes: 19 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,25 +11,6 @@ Submerged is an opensource .NET based framework for connecting your aquarium to

Submerged is meant to help you monitor your aquarium in every way you want to. At the moment, I use it to monitor things like temperature, pH and leakage. Based on those readings you can set triggers so your phone notifies you as soon as things go south for whatever reason. It's also possible to control hardware such as relays to switch power sockets on / off. And I'm planning on adding a lot more functionality such as an intelligent log which alerts you when your stock solutions or CO2 bottle need replacing.

# Overview

The solution architecture of submerged looks like this:

![Solution Overview](http://www.repsaj.nl/Uploads/submerged/submerged_overview.png)

Here's roughly what each component does:

* Each arduino device is called a **module** in order to standardize a bit. The "Sensor module" is capable of reading sensors (temperature, pH, flow, etc.). The "cabinet module" will control relays and connect to water sensors for leak detection. More module types might follow in the future.
* A Raspberry Pi running Windows 10 IoT serves as a **gateway**. It connects to the different modules you have and communicates with Azure in a secure way. At the moment the modules are connected via Bluetooth, but I'm planning on maybe replacing that with Alljoyn.
* **Azure IoT hub** takes care of communications from and to the gateway. Your gateway needs to be registered as a device with IoT hub.
* The incoming telemetry data is then processed by **Azure Stream Analytics**. One task ASA has is to seperate notifications and device data from normal telemetry data.
* All data is stored in **Azure blob storage** where it can reside for a long time.
* Notifications and device data are sent to a **Event Hub**. The items in the event hub are then processed by **Azure functions**.
* Events are forwarded to a **Notification hub**. This hub takes care of forwarding the information to a registered device (such as your smartphone).
* A **WebAPI** running in Azure serves as API. The API is secured using Azure AD.
* **Azure DocumentDB** is used to store information about the subscriptions, tanks, sensors and all stuff we need to run the service.
* Lastly, a Cordova mobile app allows you to read out telemetry data, control relays and do all kinds of other stuff.

# Supported functionality
The current list of functionality includes:
* **Sensors**:
Expand All @@ -49,6 +30,25 @@ At the moment, the sources are here for you to use under the Apache 2.0 License.

More information on how I built this and how you configure the back-end parts can be found in this blog series: <http://blog.repsaj.nl/index.php/series/azure-aquarium-monitor/>.

# Solution Overview

The solution architecture of submerged looks like this:

![Solution Overview](http://www.repsaj.nl/Uploads/submerged/submerged_overview.png)

Here's roughly what each component does:

* Each arduino device is called a **module** in order to standardize a bit. The "Sensor module" is capable of reading sensors (temperature, pH, flow, etc.). The "cabinet module" will control relays and connect to water sensors for leak detection. More module types might follow in the future.
* A Raspberry Pi running Windows 10 IoT serves as a **gateway**. It connects to the different modules you have and communicates with Azure in a secure way. At the moment the modules are connected via Bluetooth, but I'm planning on maybe replacing that with Alljoyn.
* **Azure IoT hub** takes care of communications from and to the gateway. Your gateway needs to be registered as a device with IoT hub.
* The incoming telemetry data is then processed by **Azure Stream Analytics**. One task ASA has is to seperate notifications and device data from normal telemetry data.
* All data is stored in **Azure blob storage** where it can reside for a long time.
* Notifications and device data are sent to a **Event Hub**. The items in the event hub are then processed by **Azure functions**.
* Events are forwarded to a **Notification hub**. This hub takes care of forwarding the information to a registered device (such as your smartphone).
* A **WebAPI** running in Azure serves as API. The API is secured using Azure AD.
* **Azure DocumentDB** is used to store information about the subscriptions, tanks, sensors and all stuff we need to run the service.
* Lastly, a Cordova mobile app allows you to read out telemetry data, control relays and do all kinds of other stuff.

# Can I contribute?

Yes, please! I'm very much looking for enthusiasts who'd like to help build this out more. There's plenty of stuff to do. Here's a todo list:
Expand Down

0 comments on commit 7ec278c

Please sign in to comment.