As cities get denser and urban sprawl continues, the demands on agriculture to deliver greater amounts from distant places is growing. This also in turn means a much larger demand in water consumption and transportation. Eating locally grown food can help reduce this demand, but how can you eat locally in a city like San Francisco, when the majority of food is grown hundreds of miles away?
Our team believes a potential solution is to enhance buildings in cities, to become small farms on their own.
At a small scale this can be an indoor garden for individual apartment dwellers; at a large scale, whole unused floors of buildings can be set up to grow specific crops like strawberries, herbs, potatoes, mushrooms etc that are feasible within indoor spaces. At both of these scales gray water produced in the building such as that from sinks, laundry machines, showers etc can be recycled into the crop production system.
What it does
The Water Conductor helps automate indoor, building based, urban farming. It takes input from various sensors like light, temperature, humidity, and gas sensors to optimize the gardening environment for a particular crop. Based on these inputs, it also controls the water flow from a filtered grey water system into the garden.
How I built it
To build a small proof of concept system, we used the following: -Samsung ARTIK, -Sensors: photosensor, analog temperature sensor, a multi-gas sensor, humiture sensor, raindrop sensor -Windshield fluid pump -Magnetic relay -Bucket for water storage -Plastic tubing -7.2 Volt battery
The photosensor, analog temperature sensor, multi-gas, and humiture sensors were placed around the plant and interfaced via GPIO to the Samsung Artik. Based on the readings of these sensors and the watering schedule of the particular plant being grown, the relay for controlling the pump/battery connection was actuated. In our case, the pump would take water from the bucket and dispense it into the plant. Additionally, the raindrop sensor was placed in the bucket to measure water levels, to send alerts of overflow or low water levels based on need.
Challenges I ran into
A small first challenge was interfacing with the ARTIK on the same network to upload the code. Troubleshooting those network issues took some time.
The main challenge was filtering noise and getting accurate readings from the various sensors we used: the input streams sometimes lead to false readings/values which threw off the control code for dispensing water. Eventually for this demonstration, we had to continuously tweak the code to maintain controllable sensor readings.
Accomplishments that I'm proud of
Our system is immediately scalable without requiring any specific/proprietary hardware. The ARTIK board can be taken with the software running and interfaced with other industrial sensors simply by adding in a protocol shim that converts MODBUS, BACNET and other industrial protocols feeds input into the core automation engine. Currently we are only able to model basic control, not optimization just yet, but we have gone quite far with sensor and motor command and control.
What I learned
We learned a lot more about sensor filtering and control, and the intricacies required to make sure accurate readings are received. We still have not been able to fully filter all the sensor readings, and it is still a work in progress to build the optimization algorithm for specific plants.
What's next for Water Conductor
Next steps are: -Adding more filtering capabilities to the sensors for accurate readings -We are doing further development of the optimization algorithm for controlling water for specific crop growth -We are also currently interfacing with industrial level sensors and pump systems (specifically the GS2 Variable Frequency Drive by Automation Direct) via the Python-MODBUS library to show control in an actual building based, industrial setting