Although some people seem to be born with a green thumb, growing plants generally comes down to water, sunlight, and soil nutrients. Fortunately, there is a solution to all-too-common watering problems: a water pump with an electric timer. Here’s how to do it yourself on the cheap.

What You’ll Need

Besides a thirsty plant, you’ll need:

Soldering iron Drill Water pump with hoses Bucket Timing device Pumping station Something to hold the water station together (I chose two-by-four wood—two vertical supports 10 inches in length and two horizontal supports at 6½ inches.)

For the water pump with hoses, I chose the $29.95 RobotGeek Pumping Station and purchased an extra length of 3.5 mm silicon tubing in case I want to expand my watering operation past the capabilities of the standard kit. Although you could use a cheaper pump solution, this one is nice because it includes a relay, making it easy to control with a timer.

For the timer, I used a $9.99 Arduino-UNO clone called an IEIK UNO R3, along with a transparent case to give it some protection from the elements. Finally, I used a 9V, 1 amp power supply with a 5.5- by 2.1-mm connector to power the UNO. I split the battery between several plugs using a $9.95 DC Squid Cable from RobotGeek, which can power the pump as well.

Finally, you’ll need something to hold your pumping assembly together. I used several sections of two-by-four wood for my build, as shown in the “Final Setup” section. If you’re looking for something a little simpler, you can cut a hole in a small bucket and set the electronics on top.

Assemble the Pump

RobotGeek provides simple instructions for assembling their pump unit and, in theory, everything should twist together with the included wire nuts and screw terminals. Being ever cautious, I wrapped the wire nuts with electrical tape to keep them secure. I also applied solder to, or “tinned,” some of the leads that went into the screw terminals so that I could insert them more easily.

Once you’ve assembled the pumping station, plug in your power supply and press the red button. You should hear the pump functioning. To further test your unit, plug in a length of 3.5 mm tubing to the input (top) and output (bottom) nozzle, place the input hose in a water reservoir and push the red button again. A burst of water should shoot out of the output hose, so make sure it’s not pointed at your electronics!

Timing

Although pressing a button might make watering your plants easier, automating everything is the goal. The Arduino-compatible board is more than up to this task.

To hook up the motor relay, you’ll first want to unplug all the cables. Then, cut the included three-pin connector wire about an inch from one of the connectors, and cut one of the cluster of six squid cable wires close to the connector. Strip the exposed cables. Plug in the 9V power supply to the squid cable, and verify that the black internal wire is the ground and the white wire is positive voltage.

Disconnect the battery, and then solder the black three-pin connector wire (ground) to the black wire inside the squid cable. Solder the red three-pin connector wire (voltage supply) to the white wire inside the cable. Use heat-shrink tubing or electrical wire to insulate these connections. Tin the white wire and plug it into pin 7 on the UNO board.

Connect the board to one of the intact squid cable connectors, and do the same for the pumping station. Plug the three-wire connector into the pumping station with the black (ground) wire on the left when facing the unit. Plug in the power supply and connect the squid cable. In order to program the system, connect the board to your computer via a USB cable. Install the Arduino programming software, and set it to connect to the Arduino’s COM port. Copy the program, or “sketch,” into your board. I’ve included the code you can use below as a footnote.

Final Setup

Once you’re satisfied with how your device works in “the lab,” it’s time to use it in the real world. I built a frame out of two-by-fours to hold the pump and UNO board, with a water reservoir below it. Your design could certainly be different, but I like what I ended up with, joining two vertical supports 10 inches in length and two horizontal supports at 6 1/2 inches.

As shown in the photo, I milled a slot in one of the 6 1/2-inch pieces about 1/4 inch deep for the pump and one for the UNO with the cover, leaving about an inch between the two. I drilled a 5/16-inch hole in this middle section for the hose to go through, as well as a 1/4-inch hole on the side so that I could easily attach a zip tie. Finally, I drilled three holes with a number two bit (.221 inches in diameter) so that the excess cables could be plugged in instead of dangling there.

I cut a hole with a 2 1/2-inch hole saw in one of the horizontal pieces for the base, then attached all four pieces as shown, using wood glue and nails. I then stained the whole thing and secured the board and pumping station with hot glue. I also added some hot glue to the UNO cover’s slot nearest to the pump to make it more waterproof.

Note that I assembled the system so that the water reservoir was below the pump and board. Besides reducing the risk of spilling water on electrical components, if the reservoir is above the pump, water will slowly leak out onto your plant without being activated.

Feed Your Plants

Set up your watering device in a place where it won’t get rained on, such as a porch. Attach your hoses and trim to an appropriate length. Plug the assembly in, and if you keep the reservoir filled, it should pump one time—then wait the interval that you programmed in to pump again. To keep water from shooting out too fast, I cut a hole near the end of my outlet tubing to relieve some pressure. I also put a hole in a clip to fasten the outlet tubing in a good position.

Once you have the hang of automatically watering your plants, this idea can be expanded upon quite a bit. You could attach hoses and pumps to multiple plants, or simply poke holes in one hose to share the water between plants. Sensors to monitor the environment can be added to the UNO, or it could be set up to control a grow light. You could even add lights designed to highlight your plant’s beauty due to your automatic gardening skills. Once you’ve added robotic control to your garden, the sky is the limit!

Footnote:

Sketch for watering plants every hour for one second

The sketch below, a heavily modified version of the “ShotBot” program, will make the pump cycle on for one second every 60 minutes. You can modify the pumping time by changing the “1000” in the “#define PUMP_1_TIME 1000” line to whatever value you want in milliseconds. So “2000” would be two seconds, “10000” 10 seconds and so on.

To change the number of minutes between each cycle, simply change the number in the line that says “while (minutes < 60){” to the number of minutes you’d like to wait between giving your plant each drink. For reference, there are 1,440 minutes in a day. For shorter time periods, this statement could be quite a bit simpler, but since we’re talking about hours or days, I had to implement a loop to represent each minute as the delay function is limited in length.

//pump/relay pin

#define PUMP_1_PIN 7

//Time for pumping stations to turn on in milliseconds

#define PUMP_1_TIME 1000

//define minutes since last watering (initially = 0)

int minutes = 0;

//setup() runs once

void setup()

{

//setup output pins for relays/pumping stations

pinMode(PUMP_1_PIN, OUTPUT);

}

//loop() runs indefinitely

void loop()

{

minutes = 0;

digitalWrite(PUMP_1_PIN, HIGH); //turn pump 1 on

delay(PUMP_1_TIME); //wait PUMP_1_TIME milliseconds

digitalWrite(PUMP_1_PIN, LOW); //turn pump 1 off

while(minutes < 60){

delay(60000); //wait 60 seconds

minutes++; //add another minute to delay

}

}