Project tutorial
Hydroponics

Hydroponics © GPL3+

Automatic plant growth model.

  • 7,014 views
  • 9 comments
  • 19 respects

Components and supplies

Apps and online services

About this project

Hydroponics is a type of soil less agriculture. Soil looses its nutrients and fertility with time, so to avoid that we can use Hydroponics. Plant growth and nourishment can be improved and control too. Plant which can grow only during a specific time of the year and be grown throughout the year. We can also monitor the growth of the plant, nutrient level of the soil, moisture contained in the soil and the amount of light received.

Introduction

This project is a model of the actual system. Here we are replacing soil with cocoa powder. We can control the moisture and nutrients contain of the cocoa powder easily with respect to normal soil. In this project we are controlling only three criteria for plant growth i.e. moisture, light and temperature. For our model we are using the specification of a lettuce plant

  • Temperature: 25 to 30 degree Celsius.
  • Humidity: 50% to 80%.
  • Light intensity: 250 photons per sec.

Light Control

For our model we are using an array of 3mm LED connect in series and parallel. We have used 16 LEDs 8 red LEDs and 8 blue LEDs. An array of 4 LEDs in series requires 12v power supply. So we are using an external power supply of 12v. To control the LEDs with help of Arduino we are using an optocoupler IC 4N35. For the information of the light intensity we are using light sensor with LDR. For better performance we can mount photodiode sensor. We have converted the reading from the light sensors into photons per sec using the code in Arduino.

Temperature Control

Plants require a suitable temperature for their growth. So we are controlling the temperature of the model with the help of two fans and one incandescent bulb.

For sensing the temperature of the surrounding we are using IC LM35. The temperature is sensed and the data in given to Arduino. When temperature is above the required value we need to cool down the surrounding, so a cooling fan is switched ON. When temperature is below the required value we need to increase the surrounding temperature, so a heating fan plus an incandescent bulb is switched ON. The bulb is kept outside in a separate box so its light intensity doesn't effect our light sensor. The bulb heats the box and heating fan throws the hot air inside.

Both the fans are controlled using motor drive and the incandescent bulb is controlled with help of a relay.

Humidity Control

The cocoa powder should contain proper amount of water particles in it for plant to perform photosynthesis. For sensing the humidity of the soil we are using DHT11 sensor. This sensor can sense both temperature and humidity, but we have used it for humidity sensing only.

To increase the water content in the cocoa powder, we have connected the water pump with a pipe and punched some holes in the pipe. (concept of dripping irrigation).

Points to be noted.

  • The DHT11 sensor has a response time of 1 Hz so time delay between each reading should be at least 1 second.
  • The row of LEDs connected in series of 4 requires 12v supply.
  • Maintain safety while connecting 230V to PCB or breadboard, insulate naked wires with electrical tape.
  • Do not give a direct signal to optocoupler, connect a resistor between them.
  • The brushless DC fan used is Uni-direction, so mount it accordingly.

Code

HydroponicsArduino
#include <SimpleDHT.h>


int pinDHT11 = 41;
int coolingFan=50;
int heatingFan=48;
int heater=3;
int LEDrow1=25;
int LEDrow2=27;
int LEDrow3=29;
int LEDrow4=31;
int pump=31;

SimpleDHT11 dht11;


void setup(){
  Serial.begin(115200);
  pinMode(coolingFan,OUTPUT);
  pinMode(heatingFan,OUTPUT);
  pinMode(heater,OUTPUT);
  pinMode(LEDrow1,OUTPUT);
  pinMode(LEDrow2,OUTPUT);
  pinMode(LEDrow3,OUTPUT);
  pinMode(LEDrow4,OUTPUT);
  pinMode(pump,OUTPUT);
}

void loop(){
  temperature();
  light();
  humidity();
}

void temperature(){
  int value= analogRead(A10);
  float volts=(value/1024.0)*5.0;
  float temp= volts*100.0;
  Serial.print("temp=");
  Serial.println(temp);
  delay(1000);
  if(temp<25){
    digitalWrite(heater,LOW);
    digitalWrite(heatingFan,HIGH);
  }
  else{
    digitalWrite(heater,HIGH);
    digitalWrite(heatingFan,LOW);
  }
  if(temp>30){
    digitalWrite(coolingFan,HIGH);
  }
else{
    digitalWrite(coolingFan,LOW);
  }
}

void light(){
float ldrdata=analogRead(A8);
float resistorVolt=(1024-ldrdata)/1024.0*5.0;
float ldrVolt=5.0-resistorVolt;
float ldrResistance= ldrVolt/resistorVolt*5000.0;
float lux = (12518931)*(pow(ldrResistance,-1.405));
float photons= lux*0.019;
//Serial.println(photons);
delay(1000);

if(photons<50){
  digitalWrite(LEDrow1,HIGH);
  digitalWrite(LEDrow2,HIGH);
  digitalWrite(LEDrow3,HIGH);
  digitalWrite(LEDrow1,HIGH);
}
if(photons>100){
  digitalWrite(LEDrow1,LOW);
  digitalWrite(LEDrow2,LOW);
  digitalWrite(LEDrow3,LOW);
  digitalWrite(LEDrow4,LOW);
}
}

void humidity() {

  // start working...
 //Serial.println("=================================");

  //Serial.println("Sample DHT11...");

  

  // read without samples.

  byte temperature = 0;

  byte humidity = 0;

  int err = SimpleDHTErrSuccess;

  if ((err = dht11.read(pinDHT11, &temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {

    //Serial.print("Read DHT11 failed, err="); Serial.println(err);delay(1000);

    return;

  }

  int humid=(int)humidity;

  //Serial.print("Sample OK: ");
 // Serial.print(humid); Serial.println(" H");
  // DHT11 sampling rate is 1HZ.
  delay(2000);

  if(humid<85){
    digitalWrite(pump,HIGH);
    digitalWrite(coolingFan,LOW);
  }
if(humid>94){
  digitalWrite(coolingFan,HIGH);
  digitalWrite(pump,LOW);
}
}
  

Schematics

Hydroponics
Hydroponics bb wtewbtu1t6

Comments

Similar projects you might like

The hydroMazing Smart Garden System

Project tutorial by Cory Potter

  • 24,914 views
  • 14 comments
  • 115 respects

Servo-Controlled, Light-Tracking Solar Panel Platform

Project tutorial by scott mangiacotti

  • 13,472 views
  • 10 comments
  • 45 respects

Arduino 101 Home BLE System

Project tutorial by Alexis Santiago Allende

  • 2,679 views
  • 0 comments
  • 12 respects

Automatic Plant Watering System with Arduino

Project tutorial by Team RobotGeek Projects Team

  • 32,787 views
  • 2 comments
  • 45 respects

Fluid Level Indicator and Controller

Project tutorial by Rushabh Jain

  • 4,915 views
  • 9 comments
  • 21 respects

Fresca Versatile Temperature Controller

Project in progress by Leo

  • 5,201 views
  • 14 comments
  • 12 respects
Add projectSign up / Login