Building a smart houseplant monitor (and waterer)

My colleague @dansku and I have been throwing ideas around for a smart houseplant monitor on and off for a few weeks, and we’ve gradually collected a few parts to prototype it. I thought why not document our progress on the forums; hopefully some of you will be inspired to join the project and build something too, if not you can always follow along and any ideas/feedback are welcome! :slight_smile:

I’ve got a few things in mind I’d like to achieve:

  • Monitor soil moisture
  • Monitor temperature & humidity
  • Automatic watering for when you’re away
  • Alerts (maybe via Twilio)
  • Physically small and tidy - the goal is to use a Pi Zero W, eventually with a custom HAT for compactness
  • Low cost, around $30 - I’d like people to be able to have a few units in the house (and take advantage of the fleet management part of balenaCloud!) without spending a fortune
  • Reliability - it needs to be robust and last well, the monitor shouldn’t need more maintenance than the plant!
  • Visual status indicator - an 8x8 LED matrix, or RGB LED if we run out of budget
  • Pretty charts with Grafana :slight_smile:

How we actually satisfy the above is yet to be determined, but we’ve started getting hardware together. Note: Please don’t take this list as a required list of components as things may change as we develop the project, it’s more for documentation and prototyping purposes. Most of these links are from AliExpress for price reasons.

I think that’s all the hardware we’ll need, aside from a 3D printed case and maybe some cable. That brings us to $35.34. Some items, particularly the LED matrix can be had cheaper if you buy a 3 pack so this isn’t too far off the goal.

I’ll start putting stuff together and see what happens!

2 Likes

OK so here’s what I have so far…

UNADJUSTEDNONRAW_thumb_9e20
The plant we’re experimenting with uhh looking after. It’s a snake plant (we named it Python), which is apparently one of the best plants for improving indoor air quality.

49
(source)

This plant doesn’t need a lot of watering anyway and is easy to care for so should be perfect to test with. After that I’ll look at something that requires more maintenance, maybe a bonsai tree, or an orchid.

Here’s the water pump

Soil sensor

Stuff together on a breadboard. I’m using a sense-HAT for its LED matrix right now as I haven’t got one of the cheap I2C ones yet.

We’ve chosen the capacitative soil moisture sensor for its resiliency against corrosion, but I noticed the upper part of the board still has components that are unprotected. To address this I bought a can of this spray rubber coating to try. Hopefully it will protect the components without rendering the sensor unusable, but we’ll see!

I’ll start putting together some software next.

2 Likes

I did some testing on the soil moisture sensor.

Without any coating
Dry: 2.59V
Wet (submerged to line): 1.23V
Range: 1.36V

Fully coated in the rubber spray
Dry: 2.58V
Wet (submerged to line): 1.98V
Range: 0.6V

Only electronics coated
I then stripped back the coating from the sensor portion of the board, leaving only the electronics coated, which returned the readings back to their original level.

Hopefully this provides enough protection for the electronics to last for a long time in that environment - time will tell. As for the moisture readings, we’ll have to set up some method of setting a target moisture level by getting the soil moisture content to the level you want it then taking a reading.

I’m following this with interest!
How are you planning to deliver auto-watering? From a reservoir or mains water supply?
Would you need a mains plug socket per plant?

1 Like

Hey @RowanM, welcome to the forums! :smile:

So the auto-watering was planned to be from a reservoir hidden away somewhere - perhaps in a cupboard or underneath a desk. I’ve got the float switch to monitor when the reservoir is empty and needs attention, and the peristaltic pump to push the water up to the plant.

With the current plan you’d need a 5V power supply per plant, which could either come from a mains adapter, or a good USB battery bank would do the trick, although I’m not sure how long the battery would last until we can complete a prototype and take current measurements.

Thanks for following along!

I did some testing with the pump, as I wanted to see how much water it moved both under no head and with a head (when pumping from a reservoir on the ground up to the plant on the table). With this type of pump there should be no difference with/without a head - the motor would just draw more current.

I found that this was true. The 6V pump (driven at 5V) moved ~50ml of water in 60 seconds regardless of the height it was pumping. I tested at a height of 700mm (0.7m). Its quite a slow pump but this speed should work well as it will give us good control over the amount of water being added.

I started the repo today and got some basic monitoring going so I can see how the soil moisture sensor performs in the real world.

It turns out the soil is really wet! I have probably been over watering. I also added code to update the dashboard with the status…

For anyone following along, here’s the repo with the current code: https://github.com/balena-io-playground/balena-plant-saver

I’ve been testing the moisture sensor for a while as I’m getting some strange readings; I found that the moisture content of the soil is actually rising… :face_with_monocle:

I’ve pulled the sensor and tested it in water and it seems to be working OK, so I think I just need to let this plant dry out and monitor it. In the mean time I’m thinking we might ditch the LED matrix as it seems unnecessary - an RGB LED for status would do a good job I think.

Finally got my components

Soon I will have some updates from my side! :tada::robot:

1 Like

Wow its looks very awesome.

@Oliviageorge8234 thank you! It’s been some time as I’ve been busy on other projects but hope to get this moving again soon!

1 Like

Finally got all the hardware to setup a version of the smart plant monitor.

Working on my own branch, as I am using different hardware than @chrisys.

  • Developing on a Raspberry Pi 3 B+ as it is faster than the PiZero.
  • For temperature & humidity using a DHT22
  • To control the pump, the Automation Hat from Pimoroni.


To waterproof the soil sensor I am using nail polish :slight_smile:

Also working on the case for it, with a hook to attach to the pot.

1 Like

Just a couple more photos.
48

Added new pump tubes for the plan. Started analyzing the soil moisture values.

55-2

1 Like

Created a small support with space for weight so that it will keep the water level sensor stuck to the bottom of the container.


1 Like

Adding some more pictures to the project:


Also last week I did a live streaming of putting everything together, you can check it here:

:stuck_out_tongue_winking_eye::stuck_out_tongue_winking_eye::stuck_out_tongue_winking_eye:

1 Like