September 2019 Update

New! We're moving to the new forum!

ALL new Blog posts will be on the forum.

Please join us there.

This Blog will no longer be updated...

Monday, June 24, 2019

A bit about watering...

I usually have anywhere between 18 and 40 plants, all at various stages of growth from cuttings, to ready for harvest. I tend to grow more small plants rather than fewer large plants (although I'm thinking of changing that, different topic).

If you've followed along, or read up on the system, you know I have a functioning Automatic Watering system, however, it is not installed, I need pumps, hose, fittings, etc...  I did have a perfectly working setup on one plant to develop that project.

So at this point, I still water by hand... BUT, I don't worry about when to water, or even check on the plants to see if they look thirsty.  I am relying on the system to notify me (via the web page, or a notification on my phone) that a plant needs to be watered.  So far, it's been working 100% reliably for months.  I do look in on the plants though, just not on any schedule...

The process has been as follows...

I initially calibrate each sensor, when the plant first goes in the pot, it gets its initial watering, so to start off, I calibrate the "wet" reading, and once the soil dries out, and I water it for the first time (this is the only time that I make the decision) I calibrate the "auto" reading which will trigger the automated watering. From this point on, the system knows when the soil is dry enough to be watered, for this sensor....   That sensor stays with that plant for it's entire life cycle... (I can recalibrate at any time)

So, the Sensor Modules scan their sensors every 15 minutes, and write the data to a MySql database...

The maintenance module runs it's tasks every 15 minutes or so (times are all configurable) and compares the current sensor readings to their calibrated "auto" readings... 

If the current reading is equal to, or lower than the "auto" level, it notes that this plant "might" need watering, and waits for one more reading that confirms it. This will prevent bad data from triggering a watering. Note, this is simply a defensive measure, I have not had a false trigger yet.

Now it has determined the plant needs water...  it looks in the database to see if a pump has been assigned to this plant, and if so, notifies the AutoWater module to automatically water the plant. I'll skip those details.. If there is no pump, then it notifies me using the Blynk App on my phone.  Timing is not super critical, there is easily a window of up to 12 hours...

I go in, water the plant, then on my phone, I select it, and click a button to say that I did in fact water it.

For the Automated Watering system, once it waters the plant, it will also update the database confirming that it did water the plant.

Next time the Maintenance module runs it's tasks, it sees that I watered it, and checks the latest sensor reading to see if it has risen by a configured amount, which would mean that yes, the plant had been watered... This is to ensure that if a plant is automatically watered, the water actually went into the pot, not onto the floor or some other plant...  Just some more defensive design here, I was very paranoid about messing up with the automated watering, as it will eventually be running on all my plants, completely unattended.

Once it see it has been watered properly, it moves the data into a log table for future analysis

Whew! Still with me?  So today's big new feature, the maintenance module now just goes ahead and detects that the plant was watered, I don't have to report it via the phone app..  Just one less thing I have to do... one step closer to complete automation!

No comments:

Post a Comment

Any comments deemed off topic or offensive will be removed