Pieter Blok is a researcher at PlantResearch BV in the Netherlands. He developed this automatic watering system to keep a his container garden of specialty peppers adequately watered. The system has a water barrel and pump, controlled by an Arduino unit that reads a soil humidity sensor in a pepper pot. When the soil humidity gets below a threshold, it turns on the pump until a humidity ceiling is reached.
[youtube_sc url=http://www.youtube.com/watch?v=V9qFkgEUruU&feature=youtu.be]
To make the system, Pieter used:
- Arduino Mega 2560
- soil moisture sensor
- 2 channel Relay (5v to 230v)
- Wires (female x male, female x female)
- Power supply for the Arduino (230V / 9V)
Here’s a diagram of the control setup:
Code:
/*—–( Import needed libraries )—–*/
/*—–( Declare Constants )—–*/
#define RELAY_ON 0
#define RELAY_OFF 1
/*—–( Declare objects )—–*/
/*—–( Declare Variables )—–*/
#define Relay_1 2 // Arduino Digital I/O pin number
int inputPin = 5;
int value = 0;
int counter = 0;
void setup()
{
Serial.begin(9600);
//——-( Initialize Pins so relays are inactive at reset)—-
digitalWrite(Relay_1, RELAY_OFF);
//—( THEN set pins as outputs )—-
pinMode(Relay_1, OUTPUT);
delay(4000); //Check that all relays are inactive at Reset
}
void loop()
{
value = analogRead(inputPin);
if (counter < 60)
{
if (value >= 550 && value <= 1000)
{
Serial.println(“Switch pump on”);
counter = counter+5;
Serial.println(counter);
digitalWrite(Relay_1, RELAY_ON);// set the Relay OFF
delay(4000); // wait see all relays OFF
}
else
{
Serial.println(“Switch pump off”);
digitalWrite(Relay_1, RELAY_OFF);// set the Relay OFF
delay(4000); // wait see all relays OFF
}
Serial.println(value);
delay(1000);
}
else
{
Serial.println(“Maximum liters already pumped (33 ml)”);
digitalWrite(Relay_1, RELAY_OFF);// set the Relay OFF
delay(4000); // wait see all relays OFF
}
}