Showing posts with label Commercial. Show all posts
Showing posts with label Commercial. Show all posts

Interactive Lessons


It seems every introduction to aquaponics begins the same way:   stating the environment of an aquaponics system is a compromise between the ideal preferences of the plants, fish and nitrifying bacteria.   While the statement is factually correct, it is nearly useless for people new to this unique growing method.   Inevitably, to backup our statement, we pour on the detail.   For example (using wide ranges here for emphasis), fish prefer a pH of 6.5-7.5, plants a range of 5.5-6.5 and bacteria from 6.5-8.0.   That's when the glassy-eyed look of someone suffering from information overload sets in.  Can't you picture them trying to mentally map the overlaps?

Outside of the startup price, this phenomenon of information overload is the primary barrier to entry in aquaponics.   The irony is that the information is all readily available, but all too often in a format difficult to process.   Professional Commercial courses attempt to solve this barrier in three ways:

  • Whiteboards / shiny slideshows with a ton of dry statistics and cute pictures.
  • People to read the slideshow to you in the voice of Professor Binns (that's right, I made a Harry Potter reference)
  • Hands-on training

Lets face it, the hands-on training is by far the most valuable, giving you a visual and tactile connection to the data, i.e., providing context.

With today's modern technology, it's time for a modern approach, so we've been putting together a series of lessons where you get the horribly dry statistics (sans Professor Binns) paired with interactive widgets  that you can revisit over and over without the $1,000+ price tag.

To give you a sense of what these lessons are like, take the case of pH, which is a great starting point when teaching the concept of the system as a compromise.   In our example, we'll assign an ideal range to each component of the system, and to the system overall.

  • Overall system:  6.7 - 7.1
  • Plants:  5.5 - 7.0
  • Fish:  6.5 - 8.0
  • Bacteria:  6.7 - 8.0

Start with a neutral pH and slide the toggle button up to simulate an alkaline system.   Notice how quickly the plants are outside of their range.   Slide the toggle the other way and the system shifts towards an acidic enviornment, which is great for the plants but not the fish or bacteria.   You can see from the System gauge the narrow window you have to work in, while at the same time you can get a sense how the pH shifts affect the individual system components.




This is a simplistic example; it gets more complicated when you factor in each type of plant and fish with their own preferences.   When they are posted, you will be able to find these lessons in Learn, but hopefully this gives you a sense of where we are going with these and the scope they entail:

  • Water quality
  • Environment
  • System design
  • Fish and plant disease occurrence and progression

This concept of giving data immediate context is the principle behind Tracker.

Arduino Aquaponics: EnvDAQ with Water Temperature Sensor

Introduction
The Environment DAQ is an open source Arduino shield used to track air temperature, relative humidity and light in aquaponic and hydroponic grow beds.  An equally important parameter to track is root temperature and with the new prototyping area on the v2 Environment DAQ boards, it is easy to add a new sensor.

The goal is to add the water temperature sensor to the other sensors on the Arduino  shield.

This tutorial requires that you have already completed the tutorials: Environment DAQ and Water Temperature.  You can download the complete source code here.

Part I:  Arduino
In Figures A and B you can see the Fritzing diagrams.  Figure A shows the full Environment DAQ with the DS18B20 integrated in and Figure B shows it solo.

Figure A.  Full EnvDAQ with DS18B20 to digital pin 5.

Figure B.  DS18B20 solo to digital pin 5.

To start upgrading the Arduino sketch, include the one-wire libraries and the sensor information.

Figure C.  Include statements and assignments.
The DS18B20 is a one-wire sensor, meaning you could run more than one sensor to the same digital port and differentiate the values using the device address.  At the bottom of the highlighted code in Figure C you will find the device address for our DS18B20 used for the this tutorial.  The link above it is a tutorial for finding the address of your specific sensor.

 Figure D shows a miscellaneous string used to temporarily hold the water temperature reading.

Figure D.  Temporary string for holding the water temperature reading.

In setup(), we need to add the commands to begin the sensor and set the resolution - Figure E.

Figure E.  setup() commands for the DS18B20

Each sensor in the main loop resets a string to blank, requests the data string from its function and outputs the new string to Serial.  You can comment out the Serial when you put this into operation.

Figure F.  DS18B20 loop() code.

 Next, add the string from Figure F to the end of the GAE request - Figure G.

Figure G.  Add the water temp string to the end of the web request.

Finally, create the function that gets the root temperature and converts it from Celsius to Fahrenheit and finally, to the string the web request uses.





Part II: App Engine
To make this process as easy as possible, cut and paste the temperature code and add a "w" or "W" in the places shown.  This will dramatically decrease the chances of typo errors and the time this upgrade takes.

UserPrefs Model & Settings Template
Open settings.py and edit the UserPrefs model.  Add in the properties for water temperature minimum and water temperature maximum preferences - Figure 1.  This is the first example of the suggestion above about copy and pasting the temperature property data; here, copy and paste and a "w" to the beginning.


Figure 1.  Water temperature min and max preferences.

Scroll down settings.py and add the form variables below the light properties.

Figure 2.  Water temperature variables for settings form.

The water temperature preferences are in a template (which we will create in a minute).  First, add the code from Figure 3 to render the (yet-to-be-created) water temperature template and pass in the preferences.

Figure 3.  Render the water temperature template.

The water temperature template is loaded into the /templates/settings/content.html template - the main settings template.  Edit the template rendering code to pass in the water temperature template - Figure 4.

Figure 4.  Pass the water temperature template into the main template.

Next, edit /templates/settings/content.html by adding in the template variable for the water temperature template from Figure 4.

Figure 5.  Edit content.html for the new water temperature template.

Finally, create the water temperature template: water_temp.html.  Again, this is easily done by copying and pasting the original temperature.html code and add the "w" in places.  The full template is in Figure 6.

Figure 6.  Water temperature template.

Launch the web application in the sandbox and go to Settings to check the templates are loading correctly.

Figure 7.  Water temperature template rendered in Settings tab.

Saving Water Temperature Preferences
To save the preferences for water temperature, start by creating the onclick handler in javascript.  Open settings.js, copy the original saveTempSettings() function and edit for water temperature - Figure 8.

Figure 8.  Onclick handler for water temperature save button.

The onclick handler makes an asynchronous request to the server, so we need a request handler to process the request.

Figure 9.  Request handler for water temperature form.

Add the new request handler to the bottom so the request is properly routed.

Figure 10.  Request handler link.

Finally, reload the settings page in the sandbox and save water temperature settings.

Environment.py:  EnvData Model
In environment.py, amend the data model to include the water temperature parameter.


Figure 11.  EnvData water temperature property.

Adacs.py:  Arduino Request Handler
The request handler for the Arduino is in adacs.py.  Start by getting the water temperature argument passed from the Arduino and assigning it to WTemp.  Optionally, you can add a logging command to spit out the data that is passed.

Figure 12.  Arduino argument.

Next, assign the WTemp argument to the WTemp property of the EnvData model created in Figure 11.

Figure 13.  Assign the new argument to the WTemp property  of the EnvData entity.

One of the major upgrades to the EnvDAQ cloud application is the use of memcache.  Memcache stores data in system memory for a limited time and is specifically used here to hold the current parameters sent by the Arduino in order to reduce datastore read operations.  The original ~17,000+ read operations have been cut by a third, reducing the system load (and the potential for the server to instantiate new instances) and speeds up response times from the browser to the server.  Similarly, user preferences are stored in memcache.

Append the EnvNow assignment to include WTemp, before it is put in memcache.


Figure 14.  EnvNow with water temperature reading.

Test the Arduino request handler by typing in the following url in your browser

localhost:8080/adacs/arduino?Temp=84.1&Humidity=69.8&AmbientLDR=850&WaterTemp=75.0

If everything is working, the application will return "Connected".  To confirm the data was saved, open the Admin Console (localhost:8000/)  and then open Datastore Viewer.


water_temp.js
Just as we have JavaScript files for temperature, relative humidity and light, we need one for water temperature.  Create a new file: /static/scripts/water_temp.js and add the following

// Shared Aspects
var WTData = [['Time', 'WaterTemp', 'Min', 'Max']];       // Data for all water temp visualizations
var wtempChartData;

// Main Table
var wtempTable;

// Chart
var wtempChart;
var wtempChartOptions;

// Gauge
var wtempGauge;
var wtempGaugeData;
var wtempGaugeOptions;



function drawWTempTable() {
     // Chart data
     wtempChartData = google.visualization.arrayToDataTable(WTData);
     
     // Assign new visualization to DOM element
     wtempTable = new google.visualization.Table(document.getElementById('wtempTable'));
     
     // Draw Table
     wtempTable.draw(wtempChartData);
}     

function updateWTempTable(Time, TempValue, MinTemp, MaxTemp) {
     // Get the last row number
     var lastRow = wtempChartData.getNumberOfRows();
     
     // Get the value of the last row
     var timeStamp = wtempChartData.getValue(lastRow - 1, 0);
     
     //alert(timeStamp + ' ' + TempValue);
     if (timeStamp == 'Now') {
          wtempChartData.removeRow(0);
     }
     
     
     wtempChartData.addRow([Time, TempValue, MinTemp, MaxTemp]);
     wtempTable.draw(wtempChartData);     
     
}

/////////////////////////////////////////////////////////////////////////////////////////////////

function drawWTempChart() {
     wtempChart = new google.visualization.LineChart(document.getElementById('wtempChart'));
     wtempChartOptions = {         
       animation: {duration: 1000, easing: 'out'},
       backgroundColor: { fill: "none" }
     };
     wtempChart.draw(wtempChartData, wtempChartOptions);          
}


function updateWTempChart() {
     wtempChart.draw(wtempChartData, wtempChartOptions);
}



///////////////////////////////////////////////////////////////////////////////////////////////
/* Draws Water Temperature Gauge Using Water Temperature Chart Data */
function drawWTempGauge() {    
     var lastRow = wtempChartData.getNumberOfRows();
     var lastTemp = wtempChartData.getValue(lastRow - 1, 1);
     var minTemp = wtempChartData.getValue(lastRow - 1, 2);
     var maxTemp = wtempChartData.getValue(lastRow - 1, 3);
     
     //alert('MinTemp: ' + String(minTemp) + ' ' + 'MaxTemp: ' + String(maxTemp));
     
     
     wtempGaugeData = google.visualization.arrayToDataTable([
       ['Water'],
       [lastTemp]
     ]);
     
     wtempGauge = new google.visualization.Gauge(document.getElementById('wtempGauge'));
     wtempGaugeOptions = {          
       min: 0,
       max: 100,
       redFrom: 0, redTo: minTemp,
       greenFrom: minTemp, greenTo: maxTemp,
       yellowFrom: maxTemp, yellowTo: 100,        
       minorTicks: 5       
     };
     wtempGauge.draw(wtempGaugeData, wtempGaugeOptions);
}

function updateWTempGauge(TempValue, Threshold) {
     wtempGaugeData.setValue(0, 0, TempValue, Threshold);           
     wtempGauge.draw(wtempGaugeData, wtempGaugeOptions);
     
}

The new script needs to be loaded with the others.  Open /templates/main/scripts.html and insert the new script below light.  Do not put this script first - temp.js must be first.


Figure 15.  Include water_temp.js with the other JavaScript  for main.

Next, add the GCT elements referenced in water_temp.js to /templates/main/content.html.

Figure 16.  Div elements for water temperature GCT.


Main.js:  getChartData()
The AJAX request to the server to get the chart data on load is in /static/scripts/main.js. The function getChartData needs to amended in two places.  The first creates dummy data in the event the Arduino has not uploaded any data from the aquaponic/hydroponic system.

Figure 17.  Dummy placement data.

The second place pushes data to the WTData array created at the top of /static/scripts/water_temp.js.

Figure 18.  Add data to WTData array.

Finally, edit drawCharts() to include calls to water temperature.

Figure 19.  drawCharts with new water temperature function calls.


Environment.py:  GetChartData
The request handler for getting chart data is in environment.py.  Edit GetChartData so that it returns the water temperature data and preferences.

Figure 20.  GetChartData returning water temperature data and preferences.

Test
At this point you should be able to reload the main page of the webapp and be presented with the new charts for water temperature.

Figure 21.  New water temperature container.

Main.js:  UpdateChart
The second to last App Engine upgrade is getting the chart data for real-time graphing.  There are four places we need to edit /static/scripts/main.js.  First, add the lines from Figure 22 to include the new water temperature data from the JSON object.

Figure 22.  Get water temp data from JSON.

The next edit deals with resetting the charts should a new day roll over - this way, you are always view the current day's data and reducing the browser load.

Figure 23.  Reset charts if a new day is detected.

The code in Figure 24 adds the data to the original data array as a redundant measure should your browser window change size and automatically redraw the charts.

Figure 24.  Add new data to original data array.

Finally, add the function calls that update the water temperature charts.

Figure 25.  Update water temperature charts.

Environment.py: UpdateChart
In environment.py we need to edit updateChartData().  The request handler is a conditional that tries to get the EnvNow data (as Environment) from memcache.  The first condition occurs if the memcache has expired.


Figure 26.  No memcache of current data.

The second condition returns evaluates the timestamp against the current data in memcache and returns the data only if the timestamps are different.

Figure 27.  Memcache is present and timestamps are different.

That's it!  The DS18B20 in this tutorial is meant for the grow beds, but the code would work if you put it in the stock tank as well.  If you want to take this a step further, you can plot both air temperature and water (root) temperature on the same chart for comparison.

Related Projects:
Environment DAQ
Pump Controller

Related Parts:
Water Temperature
Temp and Humidity
Light
pH
Dissolved Oxygen

Grow Lights and Automation

Fig 1.  Chlorophyll.

The Vertical Farm (TVF) is an implementation of Controlled Environment Agriculture (CEA), employing technology that enables the manipulation of the environment to meet a crop's optimum growing conditions.  Greenhouses, aquaculture, hydroponics and aquaponics are examples of CEA, where temperature, lighting, heating, pH, humidity and nutrient analysis are all tightly controlled.  Every plant has a natural tolerance range for each of these variables, but it is light that plants depend on most, keeping all other variables within their extrema.  It is also one the more intense areas of research in CEA.  For commercial operations and home growers alike, lighting is the key to a consistent yield - the determining factor to retaining customers and remaining in business. 

To understand the importance of light, we need a quick biology and physics lesson.  Inside each leaf of a plant are hundreds of thousands of microscopic organelles called chloroplast, whose function, among other things, is to conduct photosynthesis.  The green pigment found in a plant leaf is called chlorophyll and it is the job of chlorophyll to capture photons and convert them into energy-storage molecules.  During photosynthesis, the chlorophyll use photons to break down carbon dioxide \(CO_2\), which contains one carbon and two oxygen and water \(H_2O\), two hydrogen and one oxygen.  Carbon dioxide and water are broken down to produce sugar and other plant products like cellulose \((C_{6}H_{10}O_{5})n\), in the process releasing the oxygen in the carbon dioxide molecule back into the atmosphere.  Animals then eat the plants and combine the carbons in the plant sugars with two oxygen atoms we breathe, producing the carbon dioxide \(CO_{2}\) we exhale as waste and adenosine triphosphate (ATP), the chemical energy our bodies use.  The cycle repeats.

If we could keep the amount of light consistent 365 days a year, we would produce a consistent crop, in quality and quantity.  Remember, a commercial greenhouse operation expecting to sell 1500 heads of lettuce a week needs to sell 1500 heads of lettuce, not 1000 and not 2000; excess production is just as much a problem as a lack of production.  If you produce too much you probably don't have enough transplants ready and will have unused space in your grow beds.

Mother nature is rarely cooperative in providing the same intensity of light on a daily basis, so it was only natural for indoor farmers to employ artificial lighting.  If we want to increase the efficiency of lighting for plant growth we start with the observation that chlorophyll is green.  Obvious, but important, because it means chlorophyll does not absorb the entire light spectrum and artificial lighting drawing power to produce green wavelengths is wasting money.

Continuing our research, we find there are two important forms of chlorophyll, chlorophyll a and chlorophyll b, and each absorbs distinct wavelengths of the visible electromagnetic spectrum.  Fig. 2, shows the peak absorption wavelengths.

Fig. 2 - The EM absorption spectrum of chlorophyll.  Image Source: Wikipedia.

You'll notice they absorb mostly in the darker blue and red spectrum.  This is critical because it means the majority of the visible light is useless in the process of photosynthesis.  It also means those nice bright white lights are drawing electricity to output wavelengths that are simply wasted in the growing process, reducing efficiency and increasing costs. 

The parameters for determining optimal lighting are:
  1. The type of plant being grown - intensity
  2. The stage of growth - wavelength
  3. The photoperiod required by the plant - time
The vegetative phase requires the blue spectra while fruiting requires the red, or red-orange spectra and typically requires a higher intensity. Seedlings require less intensity and are planted much closer together (an average of 2 inches apart).  This allows one grow light to be used for a large number of seedlings and is therefore more economically viable.  As the plants grow, the single grow light can no longer provide the necessary intensity for the same number of plants, forcing growers to either buy more lights or rely on natural light alone, thus losing control of the schedule.

Not all lights are created equally.  Incandescent bulbs are inexpensive, but have very poor intensity and waste the most electricity in the form of heat.  Fluorescents also lack enough intensity for larger plants or plants in the fruiting stage, but they can be used for plants not requiring too much light, such as herbs.  Newer fluorescents are making big strides in heat loss and increased intensity, but obviously cost more.  High Intensity Discharge (HIDs) lamps are on the high end, both in cost and quality.  They are very bright and are more efficient, but they still output a lot of thermal radiation.  Metal halide bulbs have a blue tint to them and based on your new knowledge of wavelengths you know these are good for the growth stage; they also output a lot of lumens.  While metal halides are good for growth, high pressure sodium lights hit the spectrum for fruiting/flowering with a red-orange tint.  To get the most out of artificial lighting it has become a common practice to put the grow lights very close to the plants to achieve a higher intensity, however, this is dangerous with lights that output too much heat. 

New forms of lighting are being engineered for the express purposes of emitting just the right wavelengths plants need and increasing efficiency by drawing only the energy needed to produce them and preventing the loss of energy to thermal radiation.  LEDs (light emitting diodes) have been around for years, but are relatively new in application to agriculture while OLEDs (organic light emitting diodes) hold the potential to accurately target specific wavelengths.  Another exciting aspect of OLEDs is that they can be "printed" on thin pieces of plastic, allowing for uniquely shaped lights.  Imagine a hollow cylinder that produces light only on the inside, and that can enclose an entire plant.

The production of light is not the only area for improvement.  A second area of research is the high tech plastics and glasses used in greenhouse windows and a key component in a Vertical Farm.  Glazing on the glass can lead to absorption of the wrong spectrum and reduce the overall intensity, both highly undesirable characteristics.  There is active research into windows that allow for higher emissivity, one-way emissivity, heat retention, increased tensile strength, lighter weight, improved weathering and made from recycled plastics.

Cornell University's CEA program has done some important research in the amount of light a plant needs.   They have developed an algorithm to meet optimal lighting with what they call the Daily Light Integral.  By using a combination of artificial lighting on cloudy days, natural light and active shading on sunny days, they can hit a target DLI over the course of three days and therefore keep a consistent crop rotation schedule. For commercial operations and self sufficient families who depended on their aquaponics systems, consistency is key.  Exceeding the photoperiod for a plant is a waste of money and can cause physiological symptoms.  Plants producing fruits (or flowers) need about 16 hours a day of solid light, while non-fruiting plants are around 10 to 12 hours.  Don't forget: plants need their "sleep" too.

Fig 3.  Using a LDR input and a relay to control grow lights.

Automating aquaponic grow lights for systems utilizing a combination of daytime and artificial lighting can be done using a light dependent resistor (LDR) and a 120V @15A relay, as seen in Fig 3.  In this case, the LDR output is monitored until the resistance produced meets a threshold you define through calibration (indicating a decreasing natural light intensity), triggering the relay and turning on the grow light(s).  This setup is much more adaptive than a fixed timer, allowing for changing weather patterns and lengths of the day throughout the year.  A more complex version can replace the LDR with a photometer to more accurately analyze the natural light for the specific wavelengths you need.  An extension of this project is to use a second photoresistor to monitor the grow light and alert you if the light goes out unexpectedly and is covered in depth in the upcoming book, Automating Aquaponics with Arduino.  While this addresses the photoperiod, it says nothing of the wavelengths necessary for each stage of plant growth.  Some home aquaponics and hydroponics growers are experimenting with using matrices of off-the-shelf red and blue LEDs as artificial lighting.

To evaluate the electrical costs of artificial lighting per month:
  1. Add up the combined wattage of all grow lights
  2. Divide (1) by 1000 to get total kW (kilowatts)
  3. Multiply (2) by the kW/hour rate your your utility company charges
  4. Multiply (3) by the number of hours your lights are on in one month
As an example, lets say you have one, indoor, 4 x 4 foot grow bed.  A 400W HID lamp could cover this area with the right light intensity.  The average winter rate of my electric company is 9.66 cents per kWh and assuming I am running my grow lights for 16 hours per day for 31 days, I have 496 hours per month.

\((400W) * (\frac{1E-3kW}{W}) * (\frac{$.0966}{kWh}) * (\frac{496h}{month}) = $47.9/month\)

Compared to conventional agriculture, which is entirely dependent on oil, aquaponics runs off of electricity and therefore can be powered by alternative energies such as wind, photovoltaic and hydro-electric.  For those who run their systems "on the grid" and then lose power when the grid goes down, it is very simple to incorporate a backup diesel/gas electric generator.  There are no backups for conventional agriculture.

According to Cornell University's CEA, "...the KEY to acquiring and retaining long-term customers for a commercial production facility involves ONE simple concept:  Produce a consistent, high-quality crop at a predictable and steady rate 365 days per year....More than any other environmental variable, the total sum of light received by the plants in a 24-hour period determines the rate that the plants will grow and thus the amount of produce available for sale."

The success of the Vertical Farm will inevitably be evaluated on its commercial returns and rightly so.  For those employing aquaponics at home (kudos to you), you can take advantage of this biology and physics knowledge to enhance your own systems for consistent output and also evaluate any physiological symptoms of your plants for evidence of poor lighting conditions.

--------------------------
If you would like to learn more about automating your aquaponics system, sign-up for our new book Automating Aquaponics with Arduino.

The Vertical Farm

Eco-Laboratory by Weber Thompson.
The first time I came across the Vertical Farm concept, it was in an issue of Popular Science.  A large pullout showed an awe-inspiring skyscraper with a white-bearded man posing in front, cupping an ear of corn and staring off in the distance.  The Future of Farming.

Upon hearing of aquaponics I was immediately reminded of that pullout and dug out my old PopSci issue.  A few days later I checked out, "The Vertical Farm," by Dr. Dickson Despommier, from my local library.

"The Vertical Farm" is a two part book.  We start off looking at the past and current state of agriculture, coming to the conclusion it is failing to provide nutritious foods, it is insufficient to sustain us in the future and the ecological destruction caused my modern farming methods has taken an incredible toll on the planet.

Dr. Despommier's solution is to utilize skyscrapers to grow food hydroponically in the middle of cities.  According to Dr. Despommier, the vertical farm has a number of advantages over traditional agricultural methods.  In the remainder of this article I discuss his proposed advantages and in my next article I will argue aquaponics not only has these benefits, but it takes them to a whole new level and then adds more.

"The Living Skyscraper:
Farming the Urban Skyline"
by Blake Kurasek
1.  Year-round crop production.  By growing crops inside controlled environments, crop production is not dependent upon the seasons.  Instead of one season of tomatoes, staggered planted tomatoes can be harvested year round.

Related:  CEA and grow lights

2.  No Weather-related Crop Failures.  As I write this, the corn crop in Iowa is in trouble.  There has been very little rain this season and the crops have suffered accordingly.  By growing foods in controlled environments, droughts, floods, hurricanes, tornadoes and other natural phenomena are irrelevant (assuming the vertical farm survived the tornado).  The world will feel the effects of the drought in corn country since products from Coca Cola to Starbucks, ethanol to beef all contain corn products and the increased price per bushel of corn is going to permeate the global economy.

3.  No Agricultural Runoff.  "According to the USDA, Agricultural nonpoint source pollution is the primary cause of pollution in the U.S." - The Vertical Farm.  Soil is composed of pesticides, herbicides, fungicides, rock, etc. and when it rains the runoff inevitably ends up in streams and heads down river.  By growing hydroponically in a controlled environment, these toxic chemicals are unnecessary.

4.  Allowance for Ecosystem Restoration.  The first part of The Vertical Farm talks about the current state of the ecosystem, specifically how poor a state it is in.  By moving agriculture into city skyscrapers, Dr. Despommier argues traditional agriculture won't be necessary and the land can be turned back over to nature to recover.

5.  No Use of Pesticides, Herbicides, or Fertilizers.  Guess what?  There are no weeds to pull in hydroponic/aeroponic/aquaponic systems!  Dr. Despommier argues hydroponics is a superior method of growing foods; by adding only the nutrients the plants need to the water the plants live in, a balance is achieved.  The plants absorb all the nutrients and clean the water.  The nitty-gritty details on this point are really where aquaponics and hydroponics shine as an alternative to traditional agriculture.  But I disagree with Dr. Despommier on this point and believe aquaponics is a far superior method to hydroponics.

6.  Use of 70-95 percent less water.  According to The Vertical Farm, "Today, traditional agriculture uses around 70 percent of all the available freshwater on earth, and in doing so pollutes it, rendering it unusable for those living downstream." Water is by far the most precious resource on Earth. The pollution of our water by traditional agriculture is the primary need to alter our farming methods. Of all the benefits on this list, this is the most important.

7. Greatly reduced food miles. A common argument for alternative farming is that the average distance food travels from farm to table is 1500 miles. That is a staggering number! The Vertical Farm proposes growing food in the center of cities, drastically cutting this distance down. I propose an even greater reduction in food miles by growing food at your home!

8. More Control of Food Safety and Security. The Vertical Farm is designed using the same equipment hospitals use in intensive care units to prevent pathogens and pests from affecting the crops. Security is proposed to prevent people from sabotaging the environment.


Artist's rendition of a
desertVertical Farm
9. New Employment Opportunities. When farming exists in a skyscraper there are plenty of job opportunities. The traditional farmer goes through stages: they buy their seeds, tills, fertilizes, plants, maintains, harvests and sells. In the Vertical Farm, the crops exist in all of these stages all the time, necessitating the need for labor.

10. Purification of Grey Water to Drinking Water. Grey water reclamation will become an even hotter topic as the scarcity of clean water becomes more desperate. Plants provide a natural (bio) filtration process that can clean toxins out of the water. Clean water from plant transpiration can be recovered using dehumidifiers. While you can't eat the plants, Dr. Despommier argues the plants can be incinerated using plasma arc gasification to create energy.

11. Animal Feed from Post-harvest Plant Material. You don't eat all parts of a plant and what is leftover can be used as animal feed. I argue you can take this one step further and suggest you could also compost this material for seedling beds.

Wow, those are some good arguments!  

Overall, I thoroughly enjoyed reading The Vertical Farm. But there are problems here. Firstly, and even Dr. Despommier freely admits, you need to suspend your belief any government will sponsor a vertical farm. States are so strapped for cash, projects like this, on the scale proposed, are pipe dreams. I find it hard to believe a project like this will ever be subsidized, a need the author believes is necessary.  

Second, if the project did get off the ground, the costs are staggering to the point the product may not be affordable. The price drives consumer choice. Yes, there are niche demographics that are willing to pay a premium for a premium product, like customers of farmer markets or Whole Foods. I must say, I feel different now shopping at a store like Whole Foods. I might buy avocados grown in a sustainable way, but they are grown in Mexico. Is it really better to buy foods grown so far away? Do the benefits offset the the food miles? I don't think so. Enter the birth of groups like The Hundred Mile Diet.

The Vertical Farm - Dr. Dickson DespommierWhen I finished The Vertical Farm I admit I was disappointed. Like Food, Inc. I was left with the question, "What can I do now?". I want to buy foods that are better for my family, better for the environment, better for society. How am I supposed to source locally grown organic tomatoes in January?

But there is an even better method than the vertical farm, a more sustainable method, that takes these advantages to a whole new level and I will show you what you can do right now.






Related:  Grow Lights and Automation

----------

Need help monitoring your aquaponics system?  Check out Aquaponics Tracker, an Android app for keeping tabs on the key parameters that keep your system healthy.