Summary:

Barn Owl aims to automate greenhouse plant care and provide users with a simple interface to monitor plants and manually control environmental conditions.

Concept:

Using the normalized difference vegetation index (NDVI) as our basis for detecting plant health, our system will follow automation regimens for specific species of plants. Soil moisture, lighting, and temperature/humidity will be monitored by the system to make appropriate changes to the environment.

Goals:

Our goal with Barn Owl is to automate a micro-farm using the existing greenhouse outside of the Skirkanich building. Several plants will be cared for automatically in the greenhouse using various sensors (temperature/humidity, lighting, soil moisture) to monitor conditions. Watering intervals, fans, and lighting will be adjusted by our system to provide optimal growing conditions. A front-end interface will be used to monitor the greenhouse and provide manual control. The front-end interface will also allow users to specify which plants are being grown in order to better tailor the conditions to the needs of a certain plant species.

System Architecture:

Please refer Fig.System Architecture

Timeline

Week of 10/16: Identify and order components; Research ideal plant regimens; identify problems with greenhouse and fix them (if needed)

Week of 10/23: Finish fixes with greenhouse (if needed); Communication between all sensors and microcontroller via SPI (or similar); HTML mockup of front-end environment; Begin soldering of protoboard if possible; build and test watering system, fan system, and lighting system

Week of 10/30: Solder prototype board and test (if needed), Finish water/fan/light system (if needed), Order enclosure and any remaining parts, Early integration – send signal from front-end to microcontroller (e.g. turn on an LED) and from microcontroller to front-end (push button makes a change on the front-end);

Week of 11/6: Integration step 2 – toggle water/fans/lighting from front end, and send the actual system state back to the front-end; Build logic to control automation regimens;

Week of 11/13: Final integration and system testing

Share this project:

Updates

posted an update

Update #6 Pre-Demo Day

Here's a quick video showing our working greenhouse for Demo Day 1:

video

After spending several hours in windy 40ºF weather, it was a big relief to see our system working as intended. We'll let the video speak for itself!

Although not shown in the video, you can rest assured our graphs now have titles and axis labels :)

UpdatedGUI

This GUI will continue to evolve as we add features for Demo Day 2.

Log in or sign up for Devpost to join the conversation.

posted an update

Update #4 Our Front End

Using Python, we've created a front end for controlling and monitoring our greenhouse.

Front end

Two Python scripts power the "brains" of our greenhouse -- one script acts as a server passing information to and from the greenhouse, and the other script generates the GUI you see above. The GUI script allows users to control the greenhouse directly (putting the greenhouse into manual mode for various inputs to our system), but it also drives the automation of the greenhouse. Input data from the greenhouse are regularly checked and the system sends the correct state back.

Live update

Above is a quick demonstration of our server receiving real temperature data and our GUI graphing it in real-time.

Log in or sign up for Devpost to join the conversation.

posted an update

Update #4 Purchases: Seeds, Soil, and Heating

One of our goals with this project was to create a greenhouse that would allow plants to grow regardless of the weather outside. Freshly planted seeds are especially sensitive to their environment.

Seeds

Here you see the seeds we selected for growing: broccoli, Bibb lettuce, and kale. In addition to the seeds, we purchased a 70 pound bag of Miracle Grow soil to refresh the current soil in the greenhouse and a small outdoor forced-air heater. The heating will automatically turn on and off with our automated gardener program.

Log in or sign up for Devpost to join the conversation.

posted an update

Update #3 Front End Options

We've gone through several revisions of our front end system, and along the way we've learned a lot about what works and what doesn't!

We've set up EC2 instances on Amazon and torn them down, we've implemented tests in Node.js, Matlab, and most recently, Python -- at one point we even thought we'd use a PostgreSQL database, so we went and learned about databases. In short, we've touched on quite a few possible implementations in a short period of time.

Nodejs This was one of our first attempts at graphing live data from a Photon. We liked Node.js, but we're unsure how well it would handle some of the image processing we'll need to do for NDVI.

We will have a more thorough post about our final front end in the future.

Log in or sign up for Devpost to join the conversation.

posted an update

Update #2 Sensor Boards

Here's quick peek at our soldered sensor boards. These were created by cutting a larger protoboard into 4 pieces and soldering all the sensors and components on.

Sensor board

Our system will handle four plants simultaneously, so we'll have four of these boards in the greenhouse. Each board has temperature, light, and humidity sensing capabilities.

Log in or sign up for Devpost to join the conversation.

posted an update

Update #1 NDVI Data Collection

We met with Jnaneshwar Das (JD), our customer for Barn Owl, to discuss the state of the greenhouse and previous progress. JD suggested we use NDVI (https://en.wikipedia.org/wiki/Normalized_Difference_Vegetation_Index) to measure whether our plants were stressed or healthy, and so we’ve spent some time collecting data on healthy and unhealthy leaves to determine if NDVI will work for our project. Below you’ll see the leaves we used for our data collection:

Leaves

From left to right, the samples are two leaves from a citrus tree with fruit, two leaves from a citrus tree without fruit, and two leaves that had fallen off the plant (assumed to be a good analog for “unhealthy”). Below is a sample of the spectrometer data we collected:

Spectrum

The spectrum shown is for healthy leaf from a tree with fruit. We are in the process of purchasing camera filters and doing an NDVI calculation using cameras as well. We plan to use a two camera setup for our final implementation, but this initial data collection will serve as a proof of concept.

Log in or sign up for Devpost to join the conversation.

posted an update

Update #1 NDVI Data Collection

We met with Jnaneshwar Das (JD), our customer for Barn Owl, to discuss the state of the greenhouse and previous progress. JD suggested we use NDVI (https://en.wikipedia.org/wiki/Normalized_Difference_Vegetation_Index) to measure whether our plants were stressed or healthy, and so we’ve spent some time collecting data on healthy and unhealthy leaves to determine if NDVI will work for our project. Below you’ll see the leaves we used for our data collection:

leaves

From left to right, the samples are two leaves from a citrus tree with fruit, two leaves from a citrus tree without fruit, and two leaves that had fallen off the plant (assumed to be a good analog for “unhealthy”). Below is a sample of the spectrometer data we collected:

spectrum

The spectrum shown is for healthy leaf from a tree with fruit. We are in the process of purchasing camera filters and doing an NDVI calculation using cameras as well. We plan to use a two camera setup for our final implementation, but this initial data collection will serve as a proof of concept.

Log in or sign up for Devpost to join the conversation.