-
Mary, Mary, quite contrary, how does your garden grow?
09/22/2024 at 13:47 • 0 commentsI've been intending to update this project, but there's really no new data to share.
The Raspberry Pi I had collecting the data died a while back. I've replaced the SSD and reinstalled much of the software, but haven't gotten around to making it all work again.
Instead of posting data, I'll just post a few pictures of the flower garden.
All the flowers and shrubs are blooming and growing. It looks kind wild, I guess. I'm no landscape architect. We just put flowers that we like in the garden and try to keep all the wilted flowers trimmed. Nothing fancy, just a wild profusion of pretty things growing.
I haven't had to water the garden this year. I just make sure there's at least 4 inches (10 cm) of bark covering the ground, and the soil moisture regulates itself.
I do give the garden 100 liters of water in the springtime, but that's more for the fertilizer. I mix one liter of liquid fertilizer with 100 liters of water (the recommended ratio from the fertilizer manufacturer) and pump it through the watering drip lines my son and I installed before I found out that I don't really need to water the garden.
We use the water in the rain barrel for the two potted roses that stand next to the front door of the house (to the right of the cat in the last picture.)
Our cat Snow likes to sleep under the big rose bush by the rain barrel. It's warm from the sun, but shady enough that she doesn't get a sunburn. Yes, cats can get a sunburn despite the fur. As a white cat, she's especially susceptible to sunburn on her ears. -
An update after a long pause
06/04/2022 at 18:23 • 0 commentsIt may seem like I've abandoned this project, but it's not so. I've been collecting data and monitoring the garden - I just haven't been writing about it. I've been doing other things, and keeping busy.
Since I think I may have found a cause for the problems I was having with the control nodes, I thought I'd take the time today and implement a possible fix - and write an update while I was at it.
The possible fix amounts to properly closing the WiFi connection after a timeout occurs. It's a simple one line fix - call "WiFi.disconnect()" before trying to connect again.
It hasn't caused any problems, but it's hard to tell if it really helped. The problems only occur sporadically, and only when the nodes are in actual use (outside, in their jars, doing their jobs.)
We'll see.
The garden itself is doing fine. Everything is all healthy and green and blossoming.
-
RSSI - paint by the (RF) numbers
07/21/2021 at 18:56 • 0 commentsA couple of days ago, I extended the Mud-Py software to record the received signal strength indication (RSSI) values from the sensors and the control nodes.
Due to a bug in the Mud-Py-MQTT-Bridge component, I didn't get data until last night - the bug prevented the system from recording any data at all.
That's fixed, so I thought I'd share a first look at the radio signal distribution in my garden.
-
Some pictures and some small improvements
07/19/2021 at 21:35 • 0 commentsThe soil moisture data collection is still running. I haven't been looking at the data much, though.
We've had a lot of rain in the last weeks. Not every day, but often enough that I don't have to worry about the flower garden at all. It rains on and off for a couple of days, then we get some sunshine, then the whole thing repeats.
The control nodes have been driving me bonkers. They've gotten to where they hang up. I check the raw data a couple of times a day. Sometimes, I'll find that the one control or the other (or both) haven't been sending data. I have to go out and cycle power on the misbehaving ones, and then things are OK for a couple of days.
I've been meaning to see if I could improve the error handling, but never got around to it - until today.
Someone on the Earth Sciences stackexchange asked about ways to measure the rain intensity without measuring rain fall volume, so I mentioned the way the rain interferes with reading my soil moisture sensors. We chatted a bit, and I realized that I really ought to be collecting the received signal strength indications (RSSI) from the sensors' Bluetooth communications and from the control node WiFi communications.
That gave me the needed boost to sit down and dig out the MudPy code and have at it.
Implementing the RSSI functions was pretty straight forward, as was updating the two control nodes. The hard part was getting the server to actually use the new code. I had forgotten how the webserver and the mqtt client worked. It took me a while to realize that I needed to restart the uWSGI server and the mudpy-MQTT client demon as well as the nginx webserver.
The server is updated now, and I've got RSSI data showing up for the sensors and the control nodes.
I was going to put a plot with RSSI data in here, but it looks like it's going to take another one hour poll cycle to get all 16 sensors in a single data set. I'm not going to wait that long - it is time to shut things down and catch some shuteye.
---------In case any of y'all are interested, here's what the garden currently looks like:
-
Update - Prize and current weather
06/08/2021 at 20:15 • 0 commentsThe soil moisture monitoring project won a prize in the "Data Loggin' Contest". The prize was a $100 Tindie gift certificate.
I thought it over for a while, and had a good look around Tindie, then decided I'd like a useful tool.
I used the prize to order a NanoVNA2.
-
What does rain look like?
05/01/2021 at 19:07 • 0 commentsI was asked in the comments to this project what the sensors report when it rains.
While I did take note of some rain days (the zone pages and the sensor pages in the Mud-Py web-site have notes fields for just such things,) I found that I can locate rainy days from the collected data - despite there not being any sensor specifically dedicated to detecting rain.
There are two signs of rain that show up in the recorded data.
The first is that the battery voltage of the control nodes dips on overcast days.
-
Status Update and Some Preliminary Conclusions
04/20/2021 at 19:46 • 0 commentsI did a little work on the Mud-Py Analyser this evening, adding in a synchronized "secondary zone view" so that I can compare data from two sensor types at once.
I especially wanted to be able to view soil moisture and temperature at the same time.
The video below is a comparison of soil moisture and temperature for the last 20 days.
There's some surprises in there, at least for me.
I expected something simple like "hotter = dryer."
It ain't so.
It turns out that there's significant changes in soil moisture during the night time. There are times when it is cool at night, and the soil moisture just drops only to climb again.
This is the kind of thing I expected:
That's a warm afternoon with temperatures above 25 degrees C (heading for 80 degree F.) The soil moisture dropped drastically in the areas I would expect it to. The lower edge is the street, and the right edge is the driveway - the street and the driveway both have deep layers of crushed rock that don't hold moisture at all.
What I didn't expect was this:
I'll see about implementing dual views for the individual sensors, and see what that can tell me.
-
More Progress and a Change of Plans
04/13/2021 at 20:12 • 0 commentsI posted some pictures last time around showing some of the data from my yard.
There were some bugs, though, and I also wasn't happy with the representation of the area of the yard.
I looked into what was causing the bugs, and decided that I was doing something wrong with the SciPy interpolate.interp2d function. I had originally intended to use the SciPy interpolate.griddata function, so I switched to that and got the results I expected - mostly.
This is a plot from a couple of days ago:
The shape of the yard is now correct. The bogus data is gone - it was never in the database, it was all in an incorrect interpolation. The griddata interpolation gets it right.
That picture shows a moment when it was raining here. The blue(ish) areas have around 70 percent soil moisture. The green is around 50 percent.
The animation part works, but I don't have it rigged to render to video yet. I did a screen recording of an analysis run instead.
Here's a video of the soil moisture in my garden for last 14 days:That's fourteen days, at 24 plots per day, compressed down to just a few seconds. Sixteen sensors contributed data through two control nodes. That's over 5300 data points interpolated into a video.
That bunch of rambling, flickering colors has been in my mind for over a year now. It's nice to finally see it in real life, reflecting real data.
From the video, you can see that things started out a little dry a couple of weeks ago. We had some warm weather and sunny days for a while, and things dried out a bit. It turned cooler after a few days, so the soil moisture stayed a little more stable. Towards the end we got some rain, resulting in times where the soil was temporarily wetter than is really good for the plants - that's the blue areas.All of the parts are in place, now. It's all "just" improvements from here on out.
There's still lots of improvements to be made, though:
- Convert the interpolation to translate from WGS84 coordinates to meters by way of UTM before interpolating. Degrees are only linear over the very short distances. Anything larger than my yard would be very distorted.
- Implement a "compare" mode to show two sensor types simultaneously. It'd be nice to correlate soil moisture with temperature or light to see what's driving the variations. Playback the main display, and have the secondary sensor track it - synchronized animation of the two data sets.
- Implement a Date/Time display for the animation.
- Fix the "non-existent date" bug - there's one hour on the day of the daylight savings time switch over that doesn't exist. The animation generator hits that one hour and causes a date/time exception.
- Implement the overview page. I need to see which sensors are showing low moisture and where they are. I also need to see stats on the batteries so that I can replace them as needed.
- Implement "maximum, average, and minimum" functions for the animation to make it easier to see where there's not enough water.
- Save and recall the color settings for the various sensor types so that I don't have to adjust the histogram manually.
- Probably lots more that I can't think of right now.
With a bare minimum of analysis functions working, I think it is time to submit this to the "Data Loggin'" contest.
-
Heatmap - Nearing the Goalline
04/09/2021 at 20:58 • 0 commentsThe pieces are slowly coming together. I got my first heatmap view of the data this evening.
-
First Glimpse at the Data
04/07/2021 at 19:28 • 0 commentsI spent a little time implementing the sensor data plotter this evening. I can now plot the data for single sensors over any time period.
A quick look at the data collected over the last week delivered some surprises.
First off, CR2032 coin cells do not like cold weather. The sensors are powered by coin cells, and the sensors report the battery capacity along with the other values.We had some warm weather when I put the sensors out, with days around 20 to 25 degrees Celsius (mid 70s for Fahrenheit types.) The nights were much cooler, though.
Here's the battery capacity plot of a typical sensor: