Modular aeroponics-based vertical farming
To make the experience fit your profile, pick a username and tell us what interests you.
We found and based on your interests.
Now these are quite awful, and I need to learn some basics of using CAD software! But I put them in case I forget when I have new ideas!
1. This is an indoor system. Imagine the root-zone (which is below) and the plant-zone being the size of a coffee table. But the depth would be greater, maybe 60cm? And on the front, we have the nutrient + water tank (so easily accessible), and the accumulator tank, and in-between these we have an enclosure for the microprocessors, with a touchscreen on top. LED matrix is attached to the 'coffee table' with a beam, and placed above. Not sure on the height above as of yet. Then we can also enclose the whole plant zone perhaps.
2
3
What tasks will each perform?
Arduino
1. Collect sensor data
2. Send sensor data to Pi via serial
3. Control actuators (pump, solenoids, fans, LED)
Pi
1. Rx sensor data from Arduino
2. Tx settings for the actuators to the Arduino
3. GUI (Tkinter) to display sensor data and state of actuators on a touch screen. Allow users to change limits for the sensors. So e.g. set temperature range of 20-25C. If temperature out of range, alarm is triggered, and perhaps actuator is triggered. Allow users to change settings for the actuators e.g. spray for 1 min then off for 5 mins.
4. Save all our sensor data to MySQL databases
5. Send our sensor data to the web
6. Take images of the growing plants. These can be used in an ML model. See 7
7. ML: So we want to learn which nutrients, gas mix, temperature, humidity, spray condition, lighting condition, etc. result in the best plant growth or taste! I imagine users would label each dataset for a harvest as being 'good taste', 'nasty taste' etc. So we can after a while, and with lots of people using the homefarm, get an idea of which variables result in the best taste for each plant! Yes, this is a bit sketchy at present! I can't really imagine the Pi training these models. More likely we want to upload all the data to a cloud-computer with a GPU.
So I finally got started with some sensors! Here are the sensors I started with:
I've used my arduino uno [fairly old, not sure which revision] to collect the data from them. I've used this grove breakout board, with lots of 4 wire connectors to match the sensors: https://wiki.seeedstudio.com/Base_Shield_V2/
You can see three of them connecting, and the console showing their data in my video on twitter -> https://twitter.com/KoalasWelcome/status/1397243671792214018?s=20
That's the IC2 sunlight sensor in the photo above!
So I just put together some of the code from the wiki listed above. I take data from one sensor after another, and then loop to do it again Printing it on the console.
// OneWire Temp Sensor includes
#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is plugged into port ? on the Arduino
#define ONE_WIRE_BUS 3
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
// DHT humidity/temp sensor includes
#include "DHT.h"
#define DHTPIN 2 // what pin we're connected to
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
#if defined(ARDUINO_ARCH_AVR)
#define debug Serial
#elif defined(ARDUINO_ARCH_SAMD) || defined(ARDUINO_ARCH_SAM)
#define debug SerialUSB
#else
#define debug Serial
#endif
// ends DHT includes
// Grove Sunlight Sensor includes
#include <Wire.h>
#include "Arduino.h"
#include "SI114X.h"
SI114X SI1145 = SI114X();
// ends Grove Sunlight Sensor includes
void setup() {
// OneWire sensor setup
// start serial port
Serial.begin(115200);
Serial.println("Dallas Temperature IC Control Library Demo");
// Start up the library
sensors.begin();
// DHT sensor setup
debug.begin(115200);
debug.println("DHTxx test!");
Wire.begin();
/*if using WIO link,must pull up the power pin.*/
// pinMode(PIN_GROVE_POWER, OUTPUT);
// digitalWrite(PIN_GROVE_POWER, 1);
dht.begin();
// Sunlight sensor setup
Serial.begin(115200);
Serial.println("Beginning Si1145!");
while (!SI1145.Begin()) {
Serial.println("Si1145 is not ready!");
delay(1000);
}
Serial.println("Si1145 is ready!");
}
// ends sunlight sensor setup
void loop() {
Serial.println("");
Serial.print("//--------------------------------------//\r\n");
Serial.print("........ Visible, IR, and UV Radiation ........\r\n");
Serial.print("Vis: "); Serial.println(SI1145.ReadVisible());
Serial.print("IR: "); Serial.println(SI1145.ReadIR());
//the real UV value must be div 100 from the reg value , datasheet for more information.
Serial.print("UV: "); Serial.println((float)SI1145.ReadUV() / 100);
delay(1000);
Serial.println("");
// Sunlight sensor above
// DHT loop
float temp_hum_val[2] = {0};
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
if (!dht.readTempAndHumidity(temp_hum_val)) {
Serial.println("");
Serial.print("//--------------------------------------//\r\n");
Serial.print("........ Temperature and Humidity ........\r\n");
Serial.print("Humidity: ");
Serial.print(temp_hum_val[0]);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temp_hum_val[1]);
Serial.print(" *C");
Serial.println("");
} else {
debug.println("Failed to get temprature and humidity value.");
}
delay(1500);
// OneWire...
Read more »
So this will be quite a fun bit! And we [yes I know it's just me lol] get started on this quite quickly! What kind of sensors will we need? Will we want to record all the sensor data to a mySQL database? We'll want to to output sensor data to a screen locally, And also output to a a smart phone too. And a not-smart phone via SMS. I imagine we can do something with Microsoft Azure IOT platform too.
Anyway, so the zones we have which require sensors are:
Well, for the plant zone we need to monitor gases, and temperature. We could also take images of the plant leaves. We don't need to monitor light since we know what the LEDs will output. Perhaps we should monitor relative humidity here?
For the root zone, we need to again monitor gases. Although since the plant-zone and root-zone are not hermetically sealed the gases are going to be the same. We mostly need to monitor relative humidity. And temperature too.
For the water-supply zone, we need to monitor the water-level in the reservoir, pH in the reservoir, and TDS (total dissolved solids) in the reservoir too.
Anyway, so we can get this all prototyped fairly easily!
Now the hardware for this, I think, is going to be a GrovePi+ HAT for the Raspberry Pi, and using the Grove sensors. They have a really extensive range of gas sensors [see https://wiki.seeedstudio.com/Sensor_gas/]
Here's a diagram of the layout I'm going to start with! I don't need to complicate things with anything else at this point. I can fasten these to a piece of wood, with a bucket for the reservoir!
So the parts needed!
High-pressure pump: So I'm looking at a 12V DC 100psi diaphragm pump from ShurFlo [~£70] which has its own pressure sensor. More on that when I actually get this all hooked up!
Accumulator tank: Now I was looking at the ShurFlo nylon-based 710ml tank [~57 euros] with max 125psi rating. They are shipping pre-charged to 30psi, but can be altered by letting more air in? I'm still a bit confused about this. There are also many steel tanks too! And we actually have some DIY ones per this https://www.reddit.com/r/aeroponics/comments/i3qft8/recommendation_for_hpa_accumulator_tank/ which is really interesting!
Pipes: still unsure of diameter
Filters: not required at this stage
Solenoids: not required at this stage
Sprayers: Well I've noted 'Spray Jet' with 0.016" Orifice [https://aeroponics.com/secure/shop/item.aspx?itemid=85] that should be good for 5-25 micron droplets. These can be in nylon, or brass from what I've seen. Now idea how I can even measure droplet size!. I'll give those a try since they are kinda cheap !
On-going list of relevant resources:
Reddit r/aeroponics https://www.reddit.com/r/aeroponics/
Reddit r/hydroponics https://www.reddit.com/r/Hydroponics/
Reddit r/fogponics https://www.reddit.com/r/Fogponics/
Reddit r/verticalfarming https://www.reddit.com/r/verticalfarming/
So the primary components of an aeroponics-based vertical farm:
LIGHTING
LED-lighting array comprising LEDs of varying wavelengths
NB. needs to be isolated from the plant and root zones, since we don't want the electronics to get wet! Perhaps with plastic or glass as a barrier.
PLANT-ZONE
Mounts for the plants, with supply of required gas mix. Sensors specific to this zone.
ROOT-ZONE
Here the roots are exposed to components which will deliver water and nutrients and required gas mix. Sensors specific to this zone.
WATER-SUPPLY
In order to supply water droplets of required size (i.e. 5-50 microns per [need study ref is this the best size] we would need a high-pressure delivery system for the water. This is I think to most complex component, and has a few different possible designs (each with positives and negatives to investigate)
There is actually an alternative to using high-pressure for producing droplets of required size! Loosely referred to as fogonomics. So would use ultrasonic atomizers (e.g. https://www.amazon.com/dp/B073322QF8/ amazon link) to get required droplet size from a water reservoir. Perhaps with wicks from the water reservoir to the atomizer which could be then mounted in the ROOT-ZONE? An issue with this is difficulty of cleaning the atomizers, and would the nutrients get through them ok? It's kinda easy to screw off a spray nozzle and clean it manually. But these not so much. There is an idea to automatically clean them I have noticed, and will investigate. The positives of this method are being we don't need to worry about the pre-pressurized accumulator tank anymore and don't need a high-pressure pump.
Create an account to leave a comment. Already have an account? Log In.
Become a member to follow this project and never miss any updates
By using our website and services, you expressly agree to the placement of our performance, functionality, and advertising cookies. Learn More