Skip to main content

Some redemption

I finally got my watering to work consistently. All it took was replacing the MOSFET with a switch relay and some persistence in getting the damn ESP8266 to connect to the network for more than 5 minutes.

I also had my first crop: green beans (or as they seem to be called in the US, string beans). Still waiting on the tomatoes, but I fear the aphids may have undone the good work so far.

So, here's the setup:

Two window boxes featuring, from left to right, carrots, green/string beans, tomatoes, and strawberry. The white PVC pipe has drill holes to provide water with a length of flexible tubing entering it on the left, supplying the pipe, and the right end of the pipe emptying back into the reservoir.
A design issue with this simple setup is that the pipe is too high - it can easily erode un-mulched soil. In a better-designed setup, I would have the reservoir lower than the return so that the pipe can sit on the soil.

The reservoir:

Nothing fancy here. A 12v DC pump submerged in the bucket, about an inch from the bottom. Hose clamp on the tubing to keep the pump engaged. Holly leaves are optional, but to date haven't caused any issues. Keeping the pump from touching the bottom mitigates some of the issues of debris.
The green box at the left contains my electronics. The box is a Sockitbox weatherproof cord connection enclosure. It features a nice seal, lip, and rubber entry/exit points for cabling. We've had some bad thunderstorms and everything inside has stayed nice and dry.

The result (part 1...?):

Green/string beans. Nothing too impressive in terms of yield, but a fun outcome. With a year of trying to get this to work under my belt, I feel like I'll be able to scale a little better next year.

Now, time to go give the tomatoes another good spray.

Comments

Popular posts from this blog

Context in Node-Red

It's probably not news to anyone willing to read documentation, but I was able to simplify a number of Node-Red flows recently after a primer on context. In Node-Red, each function node has a self-contained context. Variables are local to that node and nothing is permanent. Unless you use a different context. It is possible to set flow-level and global-level variables that can be used to store values, provide them to multiple other nodes without links, and give the illusion of memory to Node-Red. Setting flow context uses simple syntax: flow.set( 'name of the variable' , 'value of the variable' ) This new flow-level variable can be called anywhere in the same Flow tab. This is great for recording values that don't change every time the flow runs (e.g. a maximum recorded value), or need to be used in isolation from the pathway that generates them. Calling the value is relatively simple as well: var varName = flow.get( ' name of the varia...

Return to the garden

After the mediocre performance of my vegetable garden last year (50% of the plants produced), winter is the perfect time to reflect on what went wrong. First, I started the project with a simple idea and absolutely zero experimentation. Second, the methods I chose did not work as I had hoped they would and my fall back was too simple. Third, minor tech troubles exacerbated the issues caused in the previous two steps. To address item one, I have started prepping my solution as of the end of November 2017 with an eye on March 2018. This is giving me time to test and refine as I go. On item two, I had to look at what worked and what didn't. The pump system worked well, but needs to be reconfigured to deliver water at the soil level; even a moderate drop of four inches resulted in erosion and root exposure over time. The planters were acceptable, but the height differential was tough to deal with. New planters will be needed. The right microcontroller was not available immedia...

Flask, uWSGI, and NGINX - a saga

I have been creating a web page for my wife. It is a booking site for her business and is written in a combination of jquery, HTML, CSS, CouchDB, and python. For the python side of the house I am using Flask. This micro-framework works well for me and allowed me more freedom than I saw reading about Django. It has taken some time, but the app works well. It can retrieve bookings from CouchDB, display them in a calendar, and accept new bookings from a form on the same page. Jquery handles the calendar display, as well as the AJAX call to populate it. Flask handles the data collection from Couch, the data, and the writing of new data to Couch. For cleanliness, two repositories are used for bookings: one for confirmed bookings and one for requests that have not been reviewed. Another repository provides a client list, but is not accessible from the website. Then came the fun part. To serve a website with Flask, the internal web server is insufficient. You need additional tools. In my...