• Some ideas for the layout of the system

    Neil K. Sheridan05/27/2021 at 20:03 0 comments

    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.



  • Ideas for what the Pi and Arduino will do

    Neil K. Sheridan05/26/2021 at 21:29 0 comments

    What tasks will each perform?


    1. Collect sensor data

    2. Send sensor data to Pi via serial 

    3. Control actuators (pump, solenoids, fans, LED)


    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.

  • Starting with the sensors!

    Neil K. Sheridan05/25/2021 at 19:08 0 comments

    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
    #if defined(ARDUINO_ARCH_AVR)
        #define debug  Serial
    #elif defined(ARDUINO_ARCH_SAMD) ||  defined(ARDUINO_ARCH_SAM)
        #define debug  SerialUSB
        #define debug  Serial
    // 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.println("Dallas Temperature IC Control Library Demo");
        // Start up the library
    // DHT sensor setup
        debug.println("DHTxx test!");
        /*if using WIO link,must pull up the power pin.*/
        // pinMode(PIN_GROVE_POWER, OUTPUT);
        // digitalWrite(PIN_GROVE_POWER, 1);
    // Sunlight sensor setup
        Serial.println("Beginning Si1145!");
        while (!SI1145.Begin()) {
            Serial.println("Si1145 is not ready!");
        Serial.println("Si1145 is ready!");
    // ends sunlight sensor setup
    void loop() {
        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);
      // 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.print("........ Temperature and Humidity ........\r\n");
            Serial.print("Humidity: "); 
            Serial.print(" %\t");
            Serial.print("Temperature: "); 
            Serial.print(" *C");
        } else {
            debug.println("Failed to get temprature and humidity value.");
    // OneWire...
    Read more »

  • Ideas for sensors!

    Neil K. Sheridan04/30/2021 at 21:22 0 comments

    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:

    • Lighting zone, i.e. LED lighting
    • Plant zone, i.e. the leaves and stems. Would also include the baskets the plants are housed in
    • Root zone, i.e. yup the roots which are exposed in this zone
    • Water-supply zone/reservoir

    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/]

  • Getting started with a basic high-pressure WATER-SUPPLY subsystem (4/17/21)

    Neil K. Sheridan04/17/2021 at 22:02 0 comments

    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 !


    Neil K. Sheridan04/16/2021 at 21:49 0 comments

    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/

  • Investigating components of the system (4/16/2021)

    Neil K. Sheridan04/16/2021 at 21:24 0 comments

    So the primary components of an aeroponics-based vertical farm:


    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.


    Mounts for the plants, with supply of required gas mix. Sensors specific to this zone.


    Here the roots are exposed to components which will deliver water and nutrients and required gas mix. Sensors specific to this zone.


    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)

    • Water and nutrient reservoir 
    • High-pressure ~100psi water-pump. This would be an off-shelf component of the system
    • Filtration upstream or downstream of the pump? Or is it actually upstream of the reservoir?
    • Pre-pressurized accumulator tank. The reason being the pump will take some time to get to required pressure, so this prevents us hitting the roots with droplets that are too large. This is one of the components I'm a bit unhappy with. Since off-shelf will mostly be steel, and if they go over their pressure tolerances (e.g. pressure-relief valve fails, poor maintenance, problems with pump) they may explode! The off-shelf tanks can also be made from nylon, and I have heard reports of DIY tanks being built from PET bottles. So this bit will need careful investigation.
    • Solenoids for switching the spray nozzles on/off
    • Spray nozzles with holes of required diameter. These can be purchased easily, or can be 3d printed I guess?

    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.