Or „how to avoid the office plant apocalypse”
Plants have a hard life in our office. They are in a constant state of dying. To avoid the slow death, we decided to use the power of the cloud and IoT. We started to develop an IoT environment that measures the humidity of each plant and push the collected data into an Azure Database. From this cloud based data pool we have endless possibilities to process and analyze this data, e.g. send notifications via twitter when a plant is thirsty. In the upcoming series of blog posts I will describe the hardware- and software setup of our IoT environment (you can follow the plants on twitter @IFBplant). The whole setup is kind of a prototype and a playground to explore interesting technologies like Microsoft Azure Services, Netduino / Arduino, REST Services, Office Add-ins and Power BI.
IoT Environment Overview
To collect the humidity values, we placed on each plant an Arduino board. This board is equipped with a humidity sensor and an 868Mhz radio sender. This sensor is powered by a battery.
Another Arduion board acts as receiver. Via the serial bus we transfer the data to a Netduino board, this device is connected to our WLAN and pushes the sensor values with an REST service into an Azure hosted MSSQL Database.
The REST service and the public facing website was implemented as an ASP.NET MVC / WebAPI site which is also hosted in Azure. On the website, everyone can observer the sensor values without a login.
As a logged in user you can configure parameters like threshold values for a specific plant, setup some timer jobs for alarm notifications and define twitter messages. To manager the users access we used the Azure AD.
To export the sensor data from the Azure hosted database into Excel we used the new awesome Office Add-in technology.
For the number guys in our company we provide the senor values also in Power BI.
The following picture gives you an overview of the IoT environment. As written before this is just a prototype with lots of potential improvements. In the upcoming blog posts I will explain the different aspects of the development process in detail.