What is Aqua-IoT?
Aqua-IoT is an Internet of Things (IoT) monitoring system designed specifically for aquaponics environments. It provides real-time monitoring of critical environmental parameters across both aquatic and plant growing zones, enabling operators to maintain optimal conditions for fish and plant health.Aquaponics is a symbiotic system combining aquaculture (fish farming) with hydroponics (soilless plant cultivation). Fish waste provides nutrients for plants, while plants filter and clean the water for fish.
System Overview
Aqua-IoT consists of three main components working together to collect, transmit, and visualize sensor data:Arduino Sensors
Hardware layer with six sensor types monitoring water and environmental conditions
MQTT Bridge
Raspberry Pi running Python scripts to relay data between Arduino and cloud
Django Dashboard
Web application with REST API for data storage and visualization
Monitored Parameters
The system tracks six critical metrics across two zones:Aquatic Zone (Aquarium)
- Water Temperature: Monitored using DS18B20 digital temperature sensor
- TDS (Total Dissolved Solids): Measures nutrient concentration in parts per million (ppm)
- Water Level: Ultrasonic sensor measures distance in centimeters to track water levels
Plant Zone
- Air Temperature: DHT11 sensor measures ambient temperature
- Humidity: DHT11 sensor tracks relative humidity percentage
- Light Intensity: LDR (Light Dependent Resistor) measures luminosity in lumens
Key Features
Real-Time Monitoring
Continuous sensor data collection every 2 seconds with instant MQTT transmission
RESTful API
Token-authenticated endpoints for secure data ingestion and retrieval
Historical Data
PostgreSQL database stores all sensor readings with timestamps for trend analysis
Web Dashboard
Responsive interface displaying current conditions and historical trends
Technology Stack
Hardware
- Arduino: Microcontroller platform for sensor integration
- Raspberry Pi: Edge computing device running MQTT client
- Sensors: DHT11, DS18B20, HC-SR04 ultrasonic, TDS meter, LDR photoresistor
Software
- Arduino C++: Firmware for sensor reading and serial communication
- Python 3.7+: MQTT bridge scripts using
paho-mqttandpyserial - Django 3.2+: Web framework with Django REST Framework
- PostgreSQL: Relational database for sensor data storage
- Mosquitto MQTT: Message broker for publish/subscribe messaging
Architecture Highlights
Sensor Data Collection
Arduino reads six sensors every 2 seconds and outputs formatted data via serial connection
Serial to MQTT
Raspberry Pi reads serial data and publishes to six MQTT topics on local Mosquitto broker
MQTT to Django
Second Python script subscribes to MQTT topics and posts data to Django REST API endpoints
MQTT Topic Structure
The system uses a organized topic hierarchy:Use Cases
Small-Scale Aquaponics
Monitor home or educational aquaponics systems with automated alerts
Research & Development
Collect data for optimizing growing conditions and system efficiency
Commercial Operations
Scale monitoring across multiple systems with centralized dashboard
IoT Education
Learn sensor integration, MQTT messaging, and full-stack development
