Wirelessly Weighing Plants with the ESP8266

There’s a good number of hacks, and commercial products, for telling you when a plant needs watering. Most of them use an ADC to measure the resistance in the soil. As the soil’s moisture content drops, the resistance increases. High impedance, dead plant.

[Dani]’s Thirsdee takes a different approach to plant health monitoring. Instead of measuring resistance, it simply weighs the plant. As the soil dries up, it gets lighter. By measuring the change in weight, the amount of water in the pot can be estimated.

Thirsdee uses a load cell to measure the weight. It’s read using an HX711 ADC, which is controlled by a NodeMCU. This development board is based on the ESP8266 chip. Since Thirsdee has WiFi, it can push notifications to your phone and log data on ThingSpeak. If you’re looking at the plant, an OLED shows you the current status of the plant. For us viewing from home, we can see a graph of [Dani]’s plant drying out in real time.

[Dani] provides us with a list of suppliers for the parts, and all the source code on Github.

17 thoughts on “Wirelessly Weighing Plants with the ESP8266

  1. Waiting to see how much weight of word usage weighs in on this post.
    Not a bad idea, cause water monitoring usually requires platinum electrodes if left in the soil.

    1. Why platinum? We’re not performing electrolysis of water here, or anything else that requires high current. A few uA is sufficient, and it can be pulsed at that. A pair of big common nails driven into the soil will last years. And a pair of graphite rods will last darn near forever.

      I’m wondering how you calibrate a weight measurement. Apparently [Dani] is too:

      “One problem is the calibration. How do you know how what the “full” weight of the plant plus pot is, how about the empty wait. Of course, you could wait until the plant turns to dust but then it might be too late to water it;-).”

      This is complicated by the fact the plant will get heavier over time, in particular with elements that are not taken from the soil (carbon, oxygen, etc); so unless recalibrated regularly, this will result in underwatering the plant.

      1. You can measure the content of the soil humidity with capacitive sensors, those don’t require contact with the soil. Of course it is more difficult.

        AS for the weight, you need to make a proper filtering of the values. A low pass filter calculating the average will tell you weight of the plant with medium moisture. The difference between the average weight and the current one should show water content. I think it should have no problem working, unless you have plants that can grow in weight comparatively to the water you add per day.

      2. – Graphite could be used as electrodes. e.g. the large diameter drafting mechanical pencil lead
        – If you are concerned with electrolysis of water, keep the voltage much lower than the threshold: 1.23V at 25C https://en.wikipedia.org/wiki/Electrolysis_of_water
        – You can also use DC balanced AC signals – just like they do in driving LCD.

        The first two are easy to implement. I had to implemented the last one with a synchronous detector at my first job for a special liquid based tilt sensor.

        1. The mechanical pencil leads I’m familiar with are quite fragile. What’s the largest diameter the drafting ones are available in?

          You can also salvage graphite rods from used alkaline batteries. Carbon welding rods are especially nice, just peel or etch off most of the copper coating; leave a little at the top and you have a convenient solder point.

          I forgot all about the threshold voltage for electrolysis. Good point.

  2. Would you not need to get reweighing the entire plant when dry to get a new base number whenever the actual plant grows?

    This surely is suggesting the plant itself(leaves etc) will not change and either become lighter or heavier

    1. I thought of that, too. You have to measure the weight when the plant is as dry as you might want to risk it. Then you add water e.g. 500g. When weight goes down, the curve (e.g. change in weight over last hour) should become flat, and you have the new weight of the plant. Repeat.

  3. Seems to me there are several things you can measure with this: the relatively short cycle of wet/dry; the longer term growth curve, and the far slower cycles of flowering/fruiting (you would need some kind of cone to deflect the falling flowers/fruit out of the pot/measuring area. Would a FFT on the data help? It has been too long since I dealt with FFTs

    1. Why would you need anything fast to measure this data? It’s a plant, things go slow there. If they go fast it was outside actions. A running average of the last few times the plant was watered will tell you the current weight as judged by those who do the watering. Watering is measured as a sudden and persistent gain of weight. Sudden loss of weight could be fruits being harvested or gnomes/cats leaving their lair.

  4. While I like the idea, I think the application is a bit too mundane: use it to monitor your beer brewing instead! During fermentation sugars are converted into alcohol and CO2. The CO2 leaves the vessel trough the waterlock/bubbler, this causes a decrease of the weight (almost) equal to the amount of alcohol produced! While you are at it, add a onewire temp sensor, a H bridge and a TEC unit and you have a superdeluxe fermentation controller. Mount it in an electronic bathroom scale and you can make that thing useful too! :)
    Is anyone interested to develop or buy such a thingy?

    1. There was an automated brew system featured here previously. IIRC it used an electronically-read hygrometer, but there was some discussion in the comments regarding what you’re proposing. Might be worth looking up if you’re interested. I’d think the CO2 leaving the waterlock would contain some humidity as well, which might skew readings; but so long as the exiting CO2 is always at 100% RH, that could be compensated for.

  5. hi there,
    I found this project very interesting as i have a similar interest but in some garden conservatory.
    how do you deal with temperature variations on such load cell + hx711 devices ?
    sounds like the variations may be greater than water consumption, no ?
    any correlation/correction function to apply to reading ?
    thanks for your hints/suggestions
    Rico

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.