Challenge addressed:

Obtaining high quality, nutritious and affordable food is an ever increasing problem whether local, regional, or global in scope. Since the beginning of agriculture the best solution was to “grow your own” however this requires a variety of resources such as adequate ground space, agricultural knowledge, as well as the time required to tend the garden (weeding, fertilizing, watering.) To try and alleviate these issues I started investigating hydroponics two years ago for growing tomatoes. The first years harvest was extremely successful and solved many of the labor intensive issues of weeding, fertilizing and watering issues. It also a harvest increase of over five-fold from an area 1/4 the size of my traditional dirt approach. The tomatoes were almost picture perfect, free of the tomato blight that this area suffers and on top of that they tasted great. However, it introduced several other issues.

How will project alleviate or solve addressed problems?

Placing sensors on my current hydroponics setup would allow connection to my home automation system. This system would then assume responsibility for activating the pumps and providing confirmation that the pumps were turned on and off. It could also monitor the solution level in the main sump and replenish it from a larger, remote container. Solution conductivity could also be monitored to track the chemistry of the solution and possibly adjust is using a dosing pump. Also, solution and ambient temperature could be monitored and tracked year-by-year to track correlation of temperature to growth, possibly indicating the need to provide temperature control during the early spring.

How would it be world changing?

In one way, this project has a very local scope; it is one person trying to find a good solution to providing quality foods for their family with the minimum personal time investment; allowing that time to be used for more important things – like family. However, this solution can scale globally, person-by-person, since it doesn’t require extensive physical resources. You don’t need an extensive plot of land as it can easily be setup on an apartment balcony. The nutrient solution is precisely mixed for the type of vegetable being grown and since the nutrient solution is contained you don't have the waste and potential environmental problems that traditional fertilizer has. The same nutrient solution provides the exact amount of water the plants require so there is no waste. Since I am using inexpensive sensors and processors (ESP8266) this system provides an extremely cost effective way to control these variables. This same system could be easily expanded to dozens of containers growing a variety of vegetables and herbs.

System Design

I am creating this as an add-on to my current home automation system. This system is based on a Raspberry Pi running Jessie OS and Node-Red as my controller. I have Mosquitto running as my MQTT message broker. Since this part of the project is operational I won't go into details on the implementation as there is quite a bit of info available.

The ESP8266-12 will be running the MQTT PUB/SUB library to subscribe and publish to the Moquitto client running on the Raspberry Pi.

This project creates a remote automation node to control my current hydroponics setup. Presently it consists of a small pump connected to a mechanical timer that pumps nutrient solution through my growing buckets in 15 minute intervals, three times a day. As I noted above: last year the timer became intermittent and almost killed the tomatoes. Since I had no control loop I wasn't aware of this failure until it was too late. The main nutrient container (sump) has a float valve that is connected to a large reservoir of reserve solution. When the solution level drops the float opens and the sump is replenished by a gravity feed from the reserve. This has two issues, first because of the dissolved chemical nutrients the valve clogs multiple times a year which has caused several problems. Also, to provide the gravity feed the reservoir is located on the deck and is very ugly. Also, rainwater can enter the system which changes the concentration of the nutrient solution.

Node-red will send a command to the ESP to turn on the pump during the required intervals. The ESP will acknowledge the request thereby providing confirmation that the pump was activated. Using a yet-to-be designed level sensor the ESP will notify the Node-Red controller which will activate the reservoir pump, monitor the sump solution level, and turn the pump off when full. Each of these activities will be sent to the Node-Red controller and logged. The controller will periodically request temperatures (solution and ambient) for historical logging and possible correlation -- e.g. if low solution temperatures in the early Spring slow growth then temperature control may be advantageous. Conductivity of the solution will be measured and a dosing pump could be implemented to automatically correct.


Github Link: https://github.com/tchristell/Hydroponics-Control/tree/master


Document open-source licenses, third-party restrictions:

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.