Aeroponic V3 — Controlled By Arduino
Assembling a new aeroponic control system with Arduino Nano and water level sensors.
Join the DZone community and get the full member experience.Join For Free
The last couple of months I was building a new version of my Aeroponic controlling system. This time, I dropped Raspberry Pi and moved to Arduino. One of the reasons for moving to Arduino is that it’s a micro controller and has no OS. So the system will not crash, in case of power failures. Raspberry pi on the other hand runs Linux and with frequent power failures could corrupt the OS. The new system has all the features of the old version, plus some additional features.
I decided to use Arduino Nano, but for my development I used cheap clones which cost me around 200 INR (≈3 USD). The nano has a small footprint and can plug into a PCB. I also designed a PCB to hold all the pieces together, which we will see shortly.
I went through several iterations of PCB design, initially starting with onboard relay modules, later I decided to remove the on board relay modules and plug in external relay modules. I used external relays because they are easy to substitute if they burn out or if you require a water pump with a different current rating.
Mobile Application: Just like the previous version I created an Android app to control the system, but this time I wrote a native app. Previously, I used Cordova to build the app.
Communication: The mobile app and Arduino communicate via Bluetooth. For this I used an HC-06 Bluetooth module, but to keep it simple I didn't include a WiFi module. Maybe in a later version I can include WiFi or I can use Arduino MKR1000, which has built-in WiFi.
Power: The system runs on 12V DC. The board can be powered in two different ways, either connect a 12V power adapter with a standard 2.1mm barrel jack or use a DC converter and supply power via normal screw terminal.
Features of the Controller system
Controlling Water Pump: One of the crucial parts of a Hydroponic/Aeroponic system is the cycling of water in periodic intervals. A water pump is used to cycle the water. The controller should be able to switch the motor on at regular intervals and keep it on for a preconfigured period, for example the motor should run every 30 mins for a period of 3 mins. This settings can be configured from the mobile application.
Nutrient Feeder: In Aeroponic/Hydroponic the fertilizers (called as nutrients) are mixed into the water. Normally we would need to add it manually, the system however uses two dosage pumps to add nutrients which can be triggered in one of two ways, either via the mobile app or by manually pressing a button. Through the mobile app, we can specify the ratio in ml of nutrients to water for the mixture.
Nutrient Mixer: Use a small wave maker to mix the nutrients while adding it.
Maintain Reservoir Water Level: It is important that you don't let the water pump run dry as this will pretty much guaranty you have to buy a new one. For this reasoning I have used water level sensors in the latest version to monitor the water level. The system uses a solenoid valve, which is connected to a water source. When the water level drops below a certain level, the valve is activated and starts filling the reservoir. Once the water reaches a certain level, the valve is turned off again.
I spent a lot of time designing the board, and came up with a very simple board with pluggable external relay modules. I am new to the PCB and electronics world and had to spend my nights assembling the system on a bread board to see how each of the components would behave. For me programming is easy, but playing with electronic components is not. At last I came up with a board design. The next big task was to find a manufacturer for the prototype board, I contacted a number of vendors and some never responded. Eventually, I chose Protocircuits to produce the PCB.
Here, Arduino and Bluetooth modules are not soldered, but instead plugged to a female header. External relay modules can be plugged via screw terminals.
I had a very good experience with Protocircuits, they were very professional and helpful in answering all my queries. In particular I would like to thank Jeffrey Gladstone, director of business development for his prompt responses to all my queries. If anyone wants to prototype a board, I highly recommend Protocircuits, you can reach them at firstname.lastname@example.org
Buying Components: I highly recommend buying electronic components on the market instead of online stores. I did a comparison of the prices at the market and some online electronic shops and the price was much less than the market. For example a 24LC256 chip on ebay.in costs 100 INR (1.5 USD) for one, from the market I bought one for 40 INR (0.6 USD). If you are in Bangalore, take a ride to SP Road and I am sure you will get all the components you want.
Published at DZone with permission of Sony Arouje, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.