IoT Garden – The Architecture

IoT Garden – The Architecture

I can see that my last post was on 12th June so it has taken quite some time for me to finally get Phase 1 of this project to completion. Now, I plan on writing close to 4-5 posts entirely on this phase 1 for Garden IoT. Before we jump right in I’ll start with 100 ft view of how does this look like and what’s involved in this project. Following diagram gives good idea about what’s involved in project, what components are being used and how does data flow between various modules:

 

There are quite a few things in this diagram, let me start with basics – I wanted to gather data on temperature, humidity and soil moisture, find trend for all these parameters and finally predict how much water should be dispensed based on past data and weather forecast for the day.

Sensors

To gather data on those 3 parameters we need sensors, in this case I’m using two sensors –

  1. DHT 11 – For temperature and humidity
  2. Soil moisture sensor for measuring soil moisture

Node MCU

Data from these sensors will be read by ESP8266 / Node MCU chip and made available over Wifi server running within NodeMCU. This whole unit needs to reside in close proximity of my garden.

On premise Data Aggregation and Forwarding

Data made available by Node MCU will then be read by Raspberry Pi 2 over Wifi and will be aggregated and then forwarded to AWS IoT. MQTT Protocol will be used to transmit this data to AWS IoT.

Cloud Data Processing and Visualization

Data received over MQTT topic will then be forwarded to AWS Lambda. AWS Lambda is a serverless compute service that’ll break down this data and feed it into Amazon CloudWatch service as custom metric.

Finally Dashboard will show newly added CloudWatch metrics so that we can see visually how different parameters are changing over time.

I was able to get all of it working within last week including software components as well. We’ll visit all individual components in details from next posts in series.

Leave a Reply

Your email address will not be published. Required fields are marked *