Smart Greenhouse

Introduction: Smart Greenhouse

Smart

greenhouse is a based greenhouse automation that support all type of equipment used in greenhouse and have the ability of evaluating analogue, humidity, temperature etc. and digital, rain sensor, light sensor, position check switch etc. inputs.The system is implemented by pneumatic actuator, so system is clear, safe, and easy to implement.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: THE Idea

The idea it's turn around how we can get the special environment by controlling the two parameter

1- Humidity .

2- Temperature .

we have to actuator heat & cool system that take their steps from the Arduino that compare between the desire value and actual value that getting from the DHT11 sensor .

This Idea can used for agriculture at special cause,also for many cause that need special environment, and we can develop this idea to add rain sensor, light sensor, etc ..

Step 2: The Material

- Arduino Atmage

- LCD 2*16

-Keypad 4*4

-relay two Chanel

Step 3: Work

1-

we will connected the LCD as below

LCD pin

- 2&15 to +5V

- 1,3,5,16 to GND

- 6,4,11,12,13,14 to arduino pin 7,6,5,4,3,2

2 -

connected the Keypad to arduino pin 22,24,26,28,30,32,34,36

3-

connected the DHT11 to pin 9

4-

connected the relay Chanel to arduino pin A0 & A1

Step 4: Programming

1 -define the pins , include the lab. , and mapping the keypad as below :-

#include

#include

#include

dht DHT;

int h,t,dh,dt;

int v;

LiquidCrystal lcd(7,6,5,4,3,2);

#define DHT11_PIN 9

const byte ROWS = 4; //four rows

const byte COLS = 4; //four columns

char keys[ROWS][COLS] = {

{'D','C','B','A'},

{'#','9','6','3'},

{'0','8','5','2'},

{'*','7','4','1'}

};

byte rowPins[ROWS] = {22,24,26,28}; //connect to the row pinouts of the keypad

byte colPins[COLS] = {30,32,34,36}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

2 - Start the LCD and set time hold for keypad as below :

lcd.begin(16,2);

keypad.setHoldTime(250);

pinMode(A0,OUTPUT);

pinMode(A3,OUTPUT);

digitalWrite(A0,1);

digitalWrite(A1,1);

//note we use the analog output as digital output to provide us with suitable current and save our arduino

3 - Enter the temperature and convert the char. to int. parameter for compare with actual value to make decision

to give actuator an order to work .

lcd.clear();

lcd.setCursor(0,0);

lcd.print("Enter Temp");

for (int i = 0;i<2;i++){

char key1 = keypad.waitForKey();

switch (key1) {

case '0':if (i==0) dt=0;if (i==1) dt=(dt*10+0);break;

case '1':if (i==0) dt=1;if (i==1) dt=(dt*10+1);break;

case '2':if (i==0) dt=2;if (i==1) dt=(dt*10+2);break;

case '3':if (i==0) dt=3;if (i==1) dt=(dt*10+3);break;

case '4':if (i==0) dt=4;if (i==1) dt=(dt*10+4);break;

case '5':if (i==0) dt=5;if (i==1) dt=(dt*10+5);break;

case '6':if (i==0) dt=6;if (i==1) dt=(dt*10+6);break;

case '7':if (i==0) dt=7;if (i==1) dt=(dt*10+7);break;

case '8':if (i==0) dt=8;if (i==1) dt=(dt*10+8);break;

case '9':if (i==0) dt=9;if (i==1) dt=(dt*10+9);break;

}

lcd.clear();

lcd.setCursor(0,0);

lcd.print("Temp=");

lcd.setCursor(7+i,0);

lcd.print(dt);

}

4 - Now read the parameter from sensor and compare between actual and desire to make decision at end

t=DHT.temperature;

h=DHT.humidity;

//start comparter

if(t < dt){

digitalWrite(A3,0);

digitalWrite(A0,1);

}

if(t > dt){

digitalWrite(A0,0);

digitalWrite(A3,1);

}

if(t == dt){

digitalWrite(A0,1);

digitalWrite(A3,1);

}

lcd.clear();

lcd.setCursor(0,0);

lcd.print("D Temp=");

lcd.setCursor(7,0);

lcd.print(dt);

lcd.setCursor(10,0);

lcd.print("C");

lcd.setCursor(0,1);

lcd.print("C Temp=");

lcd.setCursor(7,1);

lcd.print(t);

lcd.setCursor(12,1);

lcd.print("C");

delay(1500);

lcd.clear();

lcd.setCursor(0,0);

lcd.print("D Humi=");

lcd.setCursor(7,0);

lcd.print(dh);

lcd.setCursor(11,0);

lcd.print("%");

lcd.setCursor(0,1);

lcd.print("C Humi=");

lcd.setCursor(7,1);

lcd.print(h);

lcd.setCursor(12,1);

lcd.print("%");

delay(1500);

lcd.clear();

lcd.setCursor(0,0);

lcd.print("Please Press");

lcd.setCursor(0,1);

lcd.print("C to Change");

delay(1000);

}

Be the First to Share

    Recommendations

    • Backyard Contest

      Backyard Contest
    • Silly Hats Speed Challenge

      Silly Hats Speed Challenge
    • Arduino Contest 2020

      Arduino Contest 2020

    Discussions

    0
    wold630
    wold630

    4 years ago

    Cool project!