Maker.io main logo

Plant Monitoring with Enviro Grow

2023-04-20 | By Pimoroni

License: See Original Project Raspberry Pi

Courtesy of Pimoroni

Guide by Pimoroni

Enviro Grow is a clever little Raspberry Pi Pico W- powered data-logging board ‎which will let you keep an eye on all the metrics that your plants care about - ‎water and light, plus environmental conditions like temperature and humidity. ‎Team it with tiny pumps to water your plants automatically!‎

In this tutorial, we’ll show you how everything fits together and how to get ‎started monitoring and auto watering your plants.‎

What you’ll Need

  • An Enviro Grow kit. For monitoring the moisture levels of your plants ‎you just need the Grow Sensors kit, but if you want to do auto-‎watering as well you'll want the full Grow Accessory kit
  • Some plants or seeds that rely on you for sustenance, and soil and pots ‎for them to live in
  • If you're planning on auto-watering, you'll need a reservoir to hold water. ‎We're using a mug for ours, but other types of container are available ‎‎(you probably shouldn't go for this kind)

Prerequisites

We're going to assume that you've provisioned your Enviro Grow and you've ‎got it posting data somewhere. If you haven't done that yet, consult Getting ‎Started with Enviro - this will show you how to set up your Enviro and ‎connect it to adafruit.io - an easy to use cloud data service. We've got our ‎Enviro Grow hooked up to an InfluxDB database hosted on a Raspberry Pi - if ‎you'd like to do the same you can find instructions on how to do that at the ‎link below.‎

Enviro (Pico W Aboard) and InfluxDB

data_1

If you don't want to post your data anywhere right now, you could just save it ‎locally on your Enviro. It's easy to change this later if you want.‎

UPDATING YOUR ENVIRO FIRMWARE

To see the Grow specific settings, you'll need to update your Enviro firmware ‎to the most recent version. Note that updating will delete any files on the ‎device, so you might want to back up any important details/readings first. ‎Here's how to update it:‎

  • Download the latest Enviro .uf2 from the releases page
  • Plug Enviro into your computer
  • Hold down the BOOTSEL button on Enviro and hit RESET to put the ‎board into DFU mode
  • Copy the .uf2 file across to the new RPI-RP2 drive
  • After a few seconds, Enviro should start up in provisioning mode (with ‎the white activity LED flashing quickly). You'll need to reprovision it ‎once you've updated.‎

Plant Monitoring

CONNECTING THE MOISTURE SENSORS

The moisture sensors come in sets of three, still attached to their sprues. ‎Side cutters are the best way to separate them if you have them but ‎snapping them by hand along the perforation line will work too. You can tidy ‎up the rough edge with sandpaper or an emery board if you want (but your ‎plants probably won't mind if you don't).‎

There's an area near the top of each sensor for you to label your plant. Giving ‎your plants names is great for morale, you should definitely do this (ultra-fine ‎Sharpies work well for labelling).‎

label_2

The moisture sensor cables have three wires and are used to connect the ‎sensors to the three ports labelled SOIL on the front of Enviro Grow. The ‎connectors will only go in one way round, so if you’re having trouble plugging ‎them in try rotating the connector and trying it the other way.

sensor_3

For the capacitive moisture sensors to work best as much of them will need ‎to be surrounded by soil as possible, so it’s best to position the sensors a ‎little way in from the edge of the pot and push them in as far as they can go. ‎The Under/Ground line should be above the level of the soil, to avoid the ‎components at the top of the sensors coming into contact with water.‎

cable_4

If the moisture sensor cables that come in the kit are too short, we also stock ‎a longer version.‎

HOW THE MOISTURE SENSORS WORK

Grow's capacitive moisture sensors work using Pulse-Frequency ‎Modulation - they report the moisture level by sending out a regular pattern ‎of on-off electrical pulses, with varying frequency.

‎The Raspberry Pi Pico W on the back of Grow reads the frequency of the ‎pulses, and the Enviro software converts this reading into a percentage ‎relating to the moisture saturation of the soil.‎

We like capacitive sensors because they don't have exposed electrodes, ‎which makes them more resistant to corrosion and means they last longer ‎than old-school conductive moisture sensors.‎

BUZZER ALERTS

These instructions assume that you've updated to v0.0.9 (or later) of the ‎Enviro firmware.‎

Grow will make a cute little noise to attract your attention when the moisture ‎level drops beneath a certain percentage (50% by default). It will make a ‎slightly different noise for each channel so you can tell which pot needs ‎water - one drip for channel 1, two drips for channel 2 etc.‎

You can customise the threshold at which it starts bleeping by re-entering the ‎provisioning process and connecting to Grow with your phone or other device ‎‎(to re-provision: hold down Poke, tap reset and keep holding Poke until the ‎Activity LED starts flashing rapidly). When provisioning an Enviro Grow, there ‎will be an extra page allowing you to adjust the moisture_target percentages.‎

Alternatively, you can edit config.py with Thonny and change ‎the moisture_target percentages under the relevant channel. If you need more ‎help with using Thonny to edit files, check out the link below.‎

If you're not using all the sensors (or if you don't want Grow to make noise) ‎set the relevant channels to 0.‎

A good way of figuring out the right levels is by letting your pots dry out to ‎the point at which you think they need watering, checking the readings, and ‎then setting the moisture_targets to that number.‎

target_5

Note that in v0.0.9 and later the moisture_target channels are named a, b and c ‎‎(to match the printed labels on the board).

‎If you're happy watering your plants manually when Enviro Grow bleeps at ‎you, then you're ready to go. If, however, you have a brain that struggles to ‎remember to do stuff even if things are beeping at you (hi!), you might want ‎to consider getting it to water your plants too!‎

Auto-watering

TIPS FOR SUCCESS

  • Water and electricity are not besties, so make sure to position your ‎auto-watering system as far away from plugs and mains power as you ‎can. It's a good idea to put the whole thing on a tray or something ‎similar, so if you get any water escaping it won't get anywhere ‎dangerous
  • Avoid starting a siphon with your pumps - this could result in your entire ‎water reservoir emptying into your pots quite quickly, which your plants ‎won't appreciate. Make sure that the plant ends of your tubes are ‎always higher than the water level in your reservoir to beat physics and ‎stay dry!‎

SELECTING A WATER RESERVOIR

We're using a mug as our water reservoir for this tutorial, but you could totally ‎build something more elaborate. Something with a lid is good as it will stop ‎your water stash from evaporating - but any kind of plastic box that you can ‎make holes in to poke tubes out of will work - check out our original Grow ‎HAT tutorial for an example of how to do that (this setup is still keeping our ‎office plants alive two years on, hooray!).‎

reservoir_6

Once you've decided what you're using for a reservoir, work out what lengths ‎of tube you will need to connect your reservoir to your pots and chop the tube ‎into an appropriate number of bits. Push the ends of the tube into the outlets ‎on the pumps.‎

pump_7

We sell tube separately if you need more!‎

ATTACHING THE TUBES TO THE POTS

When figuring out how to attach the other end of the tubes to your pots, keep ‎two things in mind.‎

  • Make sure the tube end is securely fastened in place over the pot - if it ‎comes adrift, water is likely to go places it shouldn't
  • Aim to have the tube end positioned well away from the surface of the ‎soil to avoid soil being sucked back down the tube at the end of a ‎watering 'pulse' - if soil gets inside the pump, it could jam or damage it.‎

We're using some little 3D printed widgets to keep the end of our tubes in ‎place here, but you could make a loop of wire round your pot to keep the tube ‎end in place or tie the end to something like a wooden stake.‎

pot_8

For best results, position the tubes so that they're not running directly onto ‎the moisture sensors. We put our tubes and sensors on opposite sides of the ‎pot to make sure that the pot gets thoroughly watered.‎

CONNECTING THE PUMPS TO ENVIRO

The ends of the pump wires plug into the two pin PUMP connectors on the ‎back of Enviro Grow, these connectors are slightly squarer than the ones for ‎the moisture sensors. If you want to plug in other (low current, 5V) devices to ‎these connectors (or extend the length of the pump cables) we ‎sell compatible cables on the shop.‎

connect_9

The connectors will only go in one way round, so if they don't fit, try rotating ‎them. If you need to remove them, make sure to pull on the plug rather than ‎the wires so you don't detach the wires from the connector.‎

FINAL CHECKS

Once you've plugged everything in, double check that each pump matches ‎with the correct moisture sensor for the pot they'll be watering (so the pot ‎containing the sensor attached to SOIL A should be watered by the pump ‎connected to PUMP A). You could draw coloured dots on the connectors, ‎sensors and tube ends so you can keep track of which one is which and ‎match them up correctly.‎

You'll probably find that you'll need to rearrange the pots and adjust the angle ‎of the tube to find a position that they sit nicely in - the tube is rather springy. ‎The cables on the pumps are quite long, so after we added the pumps to our ‎water reservoir we did a bit of cable management to tuck the surplus wire ‎out of the way.‎

watering_10

ENABLING AUTO-WATERING

When you're ready to turn on auto-watering, open up config.py in Thonny and ‎change auto_water to True. Be sure to save the file when you're done. If you're ‎running v0.0.9 or later of the firmware, you can also enable auto-watering ‎through the provisioning process.‎

auto_11

Double check your tube ends are positioned over your plant pots, just in case, ‎and press the poke button. If your Enviro has power, and if the soil moisture ‎level is sufficiently below the moisture_target, watering should happen!‎

CONFIGURING AUTO-WATERING

You'll probably want to adjust the moisture_target settings depending on what ‎kind of plants you're watering. Our second moisture sensor is monitoring Very ‎Spiky Cactus who likes drier soil, so we only want it watering up to 20% ‎saturation. Sensor 1 is monitoring Spider Jerusalem who enjoys more water, ‎so we've left that one at 50% saturation. If you're not sure what saturation ‎level targets to use for your plants, water them manually to the saturation ‎level you want, then check the readings to see what saturation %s is being ‎reported.‎

Our auto-watering code will calculate how long to run the pumps for based on ‎the difference between the moisture level reported by the sensors and ‎the moisture_target level and deliver a bigger pulse of water if more watering is ‎needed.‎

If you want to change this behaviour (to allow for longer tubes, perhaps), ‎open up enviro/boards/grow.py in Thonny and look for this line:‎

duration = round((targets[i] - moisture_levels[i]) / 25, 1)‎

You could change the 25 to a smaller number (like 10) to make all the pulses ‎longer or even change the line to something like the one below if you wanted ‎it to dispense the same amount of water every time. This number is how ‎many seconds the pump will run for.‎

duration = 0.2‎

There will likely be some adjustment required to find the right levels for your ‎setup! If you're tweaking the code, we'd suggest not leaving your setup ‎unattended or overnight until you've monitored it for a while and are happy ‎it's working as intended.‎

Next Steps

Hopefully that will help you get started with the basics of setting up plant ‎monitoring / auto-watering system - as always, tweet us @pimoroni and let ‎us know how you're getting on. Here's Auntie Dawn, fully hydrated!‎

complete_12

That's all folks!

制造商零件编号 PIM627
ENVIRO GROW (PICO W ABOARD)
Pimoroni Ltd
制造商零件编号 COM3800
SILICONE TUBE (1M)
Pimoroni Ltd
Add all DigiKey Parts to Cart
TechForum

Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.

Visit TechForum