I’m going to take you on a tour of Do It Yourself Smart Gardening
My name is Cory, I’m a Technical Craftsman specializing in creative problem solving within electronics and software engineering. Professionally, I’ve worked as an electronics engineer, a plastics fabricator, software engineer, an industrial laser technician, and, of course, a coffee barista. I’ve spent the last several years working on a Smart Garden System project I named, hydroMazing. I’m sharing my work with you because I would like to empower everyone who is interested in a “Smart” approach to gardening.
Are you interested in following me on this journey?
Now that we have an understanding of what it takes to provide an optimum indoor growing environment we can start analyzing the cost-benefit of further optimizing and automating the system. Please share with friends and follow to receive a notification when I publish the next section.
Section 1: Let’s start by using an Arduino Nano on an Expansion Board to monitor the indoor gardening environment. We will measure light intensity, ambient temperature, relative humidity, nutrient/water temperature.
Section 2: Continue working with the Arduino Nano on an Expansion Board to control appliances in the indoor gardening environment. We can continue working directly wired or we can start working with wireless communications. Wired or Wireless?
Section 3: Add an Arduino Uno using an LCD with Buttons Shield to provide a display and alerts.
Section 4: Add the Raspberry Pi for remote access, notifications, data collection, and analytics.
A nutrient solution system typically consists of a two or three part liquid solution containing the essential diet for a plan added to clean tap water. The manufacturer of the nutrient solution will include or reference a feeding schedule recommended for various common types of plants. Unfortunately, most minerals are mined and processed by the manufacturers, however, many offer an organic option while some specialize in only organic.
I recommend starting with General Hydroponics Flora Series Performance Pack, consisting of the main three liquid parts, several enhancements, and the pH test kit. There is also an organic line of products. (Handy tip: If you ask General Hydroponics or other nutrient solution vendors for samples of their products, you can usually get free or discounted trial sizes.) A word of caution about miracle growing fertilizers, do not add any fertilizers other than those you know to be hydro-friendly, as it can cause a nutrient build-up harming your plants.
Making Your Own Nutrient Solutions
There are several challenges involved in making your own nutrient solution. Sourcing the raw minerals needed, breaking-down properly so that the plants are able to absorb the nutrients, and filtering out unwanted materials that will clog the flow of nutrient solution through the system while maintaining a proper pH and hoping that you didn’t inadvertently introduce an undesirable pest into a closed-system.
The most common vessel for transporting and storing water is the 5-gallon plastic bucket, also commonly available in 3-gallon as well. The most common method for managing liquid is to use ½” diameter vinyl tubing and fittings.
If we do not monitor the nutrient solution concentration and the pH then the plants will reach a point where they will show signs of stress.
What is EC?
pH and EC meters
The electrical conductivity (EC) of water estimates the total amount of solids dissolved in water -TDS, (Total Dissolved Solids). TDS is often measured in ppm (parts per million). In hydroponics, this measurement is used to determine the approximate concentration of nutrient solution to water.
As the nutrient solution level decreases it needs to be replenished with freshwater, otherwise the nutrient solution becomes more concentrated and some plants won’t respond well. Add fresh water to bring the concentration back to the level it was when started, often referred to as “topping-off.”
What is pH?
pH and EC meters
The pH of water is an important measurement whether you are gardening indoors or outdoors, soil or soilless, because it affects whether a plant can properly take in nutrients.
Check the pH and EC periodically and compare it to what is expected for that plant at this stage of growth. There is no need to adjust your pH or EC until it is necessary. There is a lot of misinformation out there about keeping the pH and EC regulated. If I were paranoid, I’d say it was a conspiracy from hydroponics manufacturers and retailers who want to sell more consumable product. Don’t get me wrong, proper pH and EC is important, even critical, to the success of a plant. There are many hand-held EC devices available as well and if you are checking the E.C., it’s a great time to check the pH. Therefore, I recommend a handheld pH tester such as the Oakton EcoTestr pH 2 Waterproof pH Tester, which is excellent for the home gardener and has been proven time and again to be accurate.
When do I need to adjust the pH?
Only under the following conditions: pH is at or below 5.0 or above 6.5
AFTER at least 30 minutes from the time of topping-off or changing the nutrient solution. I recommend using a solution made specifically for this purpose, pH Up and pH Down from General Hydroponics sparingly and only when necessary.
Flushing means to literally flush empty the nutrient solution from the hydroponics system and replace it with fresh “good” tap-water. Then return the nutrient solution back to what it should be for the phase of growth. When in doubt, flush the system and refresh the nutrients. Otherwise, it’s recommended to flush your recirculating system every 7 – 14 days. When I grow, I try to keep the nutrient solution working as long as possible, however, salts build-up over time and it is good to flush with fresh water from time to time.
Using float switches:
Top float switch used to indicate vessel is full of liquid.
Middle float switch provides warning or triggers a pump to refill.
Bottom float switch turns off pumps and notifies attendant that vessel is out of liquid.
Flow-rate: A hall-effect flow sensor’s data can be used to determine the flow rate of the liquid being pumped.
The greatest advantage to using the Arduino family of microcontrollers for DIY electronics projects, is that they are ubiquitous. Since they are so available, they are inexpensive and you can find open-source software to get started.
If you’ve ever had the opportunity to work with an Arduino Uno microcontroller board, then you’ve probably executed the flashing LED example. Going further, you might attach a button, or switch, to trigger the LED or to turn it off making the project interactive. There are many sensors that could be connected to the Arduino Uno and setup to trigger events, such as the LED flashing, using threshold values that we would need to experiment with in order to figure out what settings work best for creating the effect we want.
While the examples that come with the Arduino software and the examples included with libraries are an excellent start to a project; the Arduino family of microcontrollers is often grossly underutilized in many projects. Sure microcontrollers are limited in how many instructions they can run; hitting the program size limit doesn’t take very long when you want to control more than a few blinking LEDs. Even with creative variable handling and custom libraries, eventually, there is a need for another microcontroller or to move to a larger one, even a Raspberry Pi.
At its most basic, a microcontroller loops through a set of instructions handling each action with the focus of The Red Eye of Sauron from Lord of the Rings. There are a few interrupts that can be configured should an event be so important to receive the full attention of the microcontroller. Using some form of time management creates a state machine. If x amount of time has passed since x event, then do something and so on…
“The behavior of state machines can be observed in many devices in modern society that perform a predetermined sequence of actions depending on a sequence of events with which they are presented. Simple examples are vending machines, which dispense products when the proper combination of coins is deposited, elevators, whose sequence of stops is determined by the floors requested by riders, traffic lights, which change sequence when cars are waiting, and combination locks, which require the input of combination numbers in the proper order.” https://en.wikipedia.org/wiki/Finite-state_machine
There are rare instances where: RTOS, AI, neural networks exist on microcontrollers, but that’s best left to software-oriented systems such as a Raspberry Pi.
After trying many different timer and time management libraries I felt they were either too much or not enough of what I was wanting in my timers. A set of timers that are easy to set, keep track of their own state, and each have their own trigger flags.
Interacting with an electronics device such as a microcontroller or computer system is relatively easy and typically provided as an example for developers looking to use the device in their project. Press a button and an LED illuminates. A button or switch may seem like a simple sensor input, but it’s not.
The device’s system resources are consumed waiting and watching for a button press. When we use a button in a project we typically think of it being activated when pressed. Then what? What should happen if the user holds the button in the active position? Will the button be counted as pressed once, or is the program going to count each second, or x amount of time, as another button press? Does the program need to know that the button has been released?
Hardware and wiring
Rather than using the Arduino Uno and a protoboard or breadboard for this project, I’m using the Arduino Nano on an expansion board. Keep it simple using common wiring colors, keep it modular so connections can be made with ease, keep your project sustainable; a part can be replaced rather than the entire system. The DuPont wire connectors that come with prototyping starter kits makes it easy to create your own custom wiring connections. The wires are easy to solder when a more permanent connection is needed. I make custom wiring harnesses for neater, cleaner, and more easily connectable modules.
The latest version of the Raspberry Pi v3 uses a Linux OS and is a computer that can do so much more than an Arduino Uno, why not just use it for everything? While it is possible to do many of the same tasks as you would do with the Arduino Uno or variant, it’s not always best. The Arduino Uno and variant microcontrollers are best for doing the same actions, over and over again, such as reading a sensor and doing something with the value.
As I mentioned previously, you can do a lot with a Raspberry Pi, and depending on how much you are doing, it won’t take too long before you discover it has limits. When the Pi overheats, it will either freeze or shutdown, hopefully, the processor has a heatsink.