Watering the plants

Volume 2, Issue 13; 02 May 2018

Notes about watering the plants with a Raspberry Pi.

I like houseplants. I’ve had some for a long time. I don’t have an especially green thumb, but I do my best. One problem is that I sometimes travel for several weeks at a time. The obvious (and reliable!) solution is to take the plants over to Paul’s house and let him care for them. (He has a properly green thumb.)

But where’s the fun in doing the obvious thing? And what if Paul’s away for a few weeks too? Huh, what about that? Didja think of that? No, no, I need something more sophisticated. [Rube cough Goldberg] Need, I tell you!

I tried to setup a Raspberry Pi to water my plants a few weeks ago, taking most of the actual steps from Ben Eagan’s post, but my design was flawed. I want to water several plants, and my first idea was to hook up a long tube with several outlets, one per pot. Unfortunately, in practice, the pump has very low pressure and so all the water went out the first hole, leaving the rest of the pots high and dry.

New idea: a gravity feed system. Put a water jug above the plants with watering hoses to each pot. Use the pump to periodically fill the jug. (Alternatively: use a big vessel of water and put solenoid valves on each line, but I haven’t found a supply of appropriate solenoid valves.)

In my first attempt, I didn’t have a moisture meter. I was planning to run it exclusively on a timer. I’ve since acquired a moisture meter, so I’m hoping to incorporate that as well. (Drawing on notes from a ModMyPI posting.)

Here’s what I have so far (ignore the camera, that’s not relevant to this posting, but ultimately, I’ll configure it so I can “look” at the plants through a web interface):

Raspberry Pi Plant Watering

And here are the notes, possibly of interest to no one but me.

Circuit diagram

From the moisture meter:

  • VND to pin 1, 3.3v
  • GND to pin 6, GND
  • D0 to pin 11, GPIO 17

From the relay:

  • VCC to pin 2, 5v
  • IN1 to pin 7, GPIO 4
  • GND to pin 9, GND

Power for the pump is wired through the switched connection on the relay.

I’m using the digital output from the moisture meter because that’s what I’ve been able to figure out. I get the impression, perhaps mistakenly, that the Arduino has better [different?] support for analog inputs. In any event, there’s a potentiometer on the moisture meter that I can use to adjust the digital threshold appropriately.