This is an IoT Project used to monitor and manage various IoT devices used in an Aquaponics or Hydroponics farm. The project has 3 main components:

– Hardware

The hardware consisted of a Raspberry Pi & a few ESP8266s connected to various sensors and controllers. The devices will collect data from various sensors around the farm and send the data to an AWS IoT MQTT Broker. These devices can also recieve messages from the broker in order to change settings or Turn ON/OFF switches or valves.

– Dashboard

The dashboard has various functions such as device management, data visualization, switch control and rule engine. The device manager is used to add or remove devices. It is also used to upgrade the firmware of the device over-the-air(OTA). The data visualization is used to display real-time data recieved from the sensors through the MQTT broker in the farm and also create graphs with the data. The switch control is used to send commands to switches and valves via the MQTT broker. The rule engine is used to create actions based on the data received from the farm. For example: If height of the water goes below a threshold value, the application will send an email or it will turn ON the valve.

– Data Storage

The data storage service is an application that recieves data from the MQTT broker, checks if the device where the data is recieved from is registered and stores the data in a database. The data collection service makes sure data is always recieved and stored from the sensors even if the dashboard goes down.

Tech Stack

  • Flask for the APIs
  • SocketIO to display data in real-time
  • MQTT for the message broker
  • Arduino C++ for the ESP8266
  • Postgres DatabaseĀ