Lazy Indoor Garden

Spending 100 times more time fiddling with this contraption than I would have just watering plants.

Jan 13, 2019

53560 views

82 respects

Components and supplies

1

Arduino UNO

1

Hydroplanet T5 4ft 8lamp

1

DHT11 Temperature & Humidity Sensor (3 pins)

1

Rotary potentiometer (generic)

1

Solderless Breadboard Full Size

1

Blumat Drip System

2

IoT Relay

1

DS3231M - ±5ppm, I2C Real-Time Clock

1

Water pump

1

Standard LCD - 16x2 White on Blue

2

Resistor 220 ohm

9

Soil moisture sensor

Project description

Code

LazyPlants v2

arduino

1. Controls lights on a timer. 2. Tells you when a plant isnt getting enough water from drip system. 3. Records temp and humidity to confirm fruiting temp for peppers more to come wifi monitoring of arduino with raspberry pi & web interface PoE power and data transmission from soil sensors through home ethernet wiring mulyiplexed through 8 twisted pairs of cat5e more lights & hydroponics!

LazyPlants v2

arduino

1. Controls lights on a timer. 2. Tells you when a plant isnt getting enough water from drip system. 3. Records temp and humidity to confirm fruiting temp for peppers more to come wifi monitoring of arduino with raspberry pi & web interface PoE power and data transmission from soil sensors through home ethernet wiring mulyiplexed through 8 twisted pairs of cat5e more lights & hydroponics!

Downloadable files

Wiring Diagram

Wiring diagram png file

Wiring Diagram

Automatic indoor garden

This is an Arduino based plant life cycle controller

Automatic indoor garden

Wiring Diagram

Wiring diagram png file

Wiring Diagram

Comments

Only logged in users can leave comments

Image
Image

Snaresman

2 years ago

I am very interested in this project. I want to build something similar. I have one indoor greenhouse and plan on a second. I want to monitor and record the temperature, humidity and soil moisture. Then use the soil moisture for watering. I'm currently using a heater controller for temperature and a timer for the lights.

Image
Image

Anonymous user

2 years ago

https://github.com/Porokhnya/GreenhouseProject/blob/master/README_EN.md

Image
Image

londonium2021

2 years ago

Snaresman, I personally learned the little bit of c++ I know from here. https://www.codecademy.com/learn/learn-c-plus-plus You can make a free account and get the pro subscription for week long trial which should be long enough to complete the module. Then once you get the basics you just search for the libraries of the hardware you are connecting to Arduino and watch youtube tutorials of how to use the libraries.

Image
Image

londonium2021

2 years ago

Snaresman, That's awesome. What are you growing indoors? Sounds like you just need to automate water and you'll be able to go on vacation lol.

Image
Image

Snaresman

2 years ago

I'll have to try that. Thanks!

Image
Image

Snaresman

2 years ago

I’m starting some vegetables and cooking herbs. I’m wondering if I should go this route for monitoring. From the comments I’ve read on different projects, there isn’t much help on the programming. I’m trying to learn the language and it seems to be geared towards computer engineers. This is one of about four programming languages I’m trying to learn. Do you know where I can get any help?

Image
Image

Anonymous user

2 years ago

Hello Good Sir, Thank you kindly for posting this automated process. This should help 'grow' my indoor poppy business, who doesn't like poppy seeds on there bagels? Thanks

Image
Image

londonium2021

2 years ago

Zadok, I don't know if it works on illicit or controlled plants. Will update you with my progress. Thanks for the suggestive suggestion.

Image
Image

phuongtiee

2 years ago

hey bro, i very like your project. Can you give me code and connection diagrams?. address: maxem4329@gmail.com. thank you very much!!

Image
Image

Anonymous user

2 years ago

Hi! I think your project is really brilliant and the most easiest I have found to comprehend! Would you please be able to share the updated code if possible so that I can try it? Thanks a lot!

Image
Image

somerandomguy321

2 years ago

Hey i am new to this and plus i am working on my very first arduino project relating to this to, so would like to ask what is it that you are still working on? I am asking this because you mentioned that you are working on something with this project. Am not copying this project I am just taking inspiration from this project :0

Image
Image

Anonymous user

2 years ago

Hi ! thank you very much for this inspirational project. A short question: What kind of lights are you using? My concern is they consume some energy.

Image
Image

Anonymous user

2 years ago

I see, thanks ;)

Image
Image

londonium2021

2 years ago

beccuti, The light bulbs are 54w High Output fluorescent bulbs. They do consume a fair amount of energy but where I live there isn't enough sunlight or warmth to grow outside this time of the year. Thank you for looking into my project.

Image
Image

Anonymous user

2 years ago

I really like this project and want to build one down the road. So many time I forget to water plants to find them all dried up. Thanks for sharing this!

Image
Image

vladimirdimov

2 years ago

odlicen proekt

Image
Image

Anonymous user

2 years ago

This is fantastic, really well done! I'm very inspired by what you've done here, thank you so much for the great work putting together this guide for the community. Major kudos!

Image
Image

Anonymous user

2 years ago

Great job and thanks for sharing. I think one of the major factor is pH level that directly effects result. Did you consider to use pH sensors as well?

Image
Image

londonium2021

2 years ago

Kadir, I had considered the use of some pH monitoring but wasn't quite sure how to implement a reliable automated solution for 12 or more individual plants. I'm thinking my next project will be a home made hydroponics system that incorporates pH control, ppm/nutrients and aeration from a single controller.

Image
Image

Anonymous user

2 years ago

I could not find any pH sensor that you can easily attach the board. Some extra work may needed. It is good to have that pH considered. One more point; Generally, one shot sensor reading is not consistent. It generates up and down value until stabilizes. I ve used the attached kalman filter to get reliable value from any sensor. It may help you if you have similar issue. kalman.h /* * SimpleKalmanFilter - a Kalman Filter implementation for single variable models. * Created by Denys Sene, January, 1, 2017. * Released under MIT License - see LICENSE file for details. */ #ifndef KalmanFilter_h #define KalmanFilter_h class KalmanFilter { public: KalmanFilter(float mea_e, float est_e, float q); float updateEstimate(float mea); void setMeasurementError(float mea_e); void setEstimateError(float est_e); void setProcessNoise(float q); float getKalmanGain(); private: float _err_measure; float _err_estimate; float _q; float _current_estimate; float _last_estimate; float _kalman_gain; }; #endif KalmanFilter.cpp /* * SimpleKalmanFilter - a Kalman Filter implementation for single variable models. * Created by Denys Sene, January, 1, 2017. * Released under MIT License - see LICENSE file for details. */ #include "Arduino.h" #include "KalmanFilter.h" #include <math.h> KalmanFilter::KalmanFilter(float mea_e, float est_e, float q) { _err_measure=mea_e; _err_estimate=est_e; _q = q; } float KalmanFilter::updateEstimate(float mea) { _kalman_gain = _err_estimate/(_err_estimate + _err_measure); _current_estimate = _last_estimate + _kalman_gain * (mea - _last_estimate); _err_estimate = (1.0 - _kalman_gain)*_err_estimate + fabs(_last_estimate-_current_estimate)*_q; _last_estimate=_current_estimate; return _current_estimate; } void KalmanFilter::setMeasurementError(float mea_e) { _err_measure=mea_e; } void KalmanFilter::setEstimateError(float est_e) { _err_estimate=est_e; } void KalmanFilter::setProcessNoise(float q) { _q=q; } float KalmanFilter::getKalmanGain() { return _kalman_gain; } and Arduino implementation #include <Arduino.h> #include "KalmanFilter.h" #include <math.h> #include <SoftwareSerial.h> // These constants won't change. They're used to give names // to the pins used: const int analogInPin = A1; // Analog input pin that the potentiometer is attached to const int digitalInPin = 12; // Analog output pin that the LED is attached to int sensorAValue = 0; // value read from the pot int sensorDValue = 0; // value output to the PWM (analog out) int outputValue = 0; int tmpValue = 0; int window_size = 10; KalmanFilter kalmanFilter(2, 2, 0.01); void setup() { // initialize serial communications at 9600 bps: Serial.begin(115200); pinMode(digitalInPin, INPUT); } void loop() { // read the analog in value: tmpValue = analogRead(analogInPin); float realValue = tmpValue/1024.0 * 100; float measuredValue = realValue + random(-100, 100) / 100.0; float estimatedValue = kalmanFilter.updateEstimate(measuredValue); sensorAValue = tmpValue / window_size; sensorDValue = digitalRead(digitalInPin); // map it to the range of the analog out: outputValue = map(sensorAValue, 0, 1023, 0, 255); // change the analog out value: // print the results to the serial monitor: Serial.print("sensor Analog = "); Serial.print(estimatedValue); Serial.print("\ sensor Digital = "); Serial.println(tmpValue); // wait 2 milliseconds before the next loop // for the analog-to-digital converter to settle // after the last reading: delay(250); }

Image
Image

Anonymous user

2 years ago

I would like to know the exact way of working of this system. Those Blumats have their own moisture sensing, whats the point in controlling humidity separatly if Blumats are going to push the water in the soil whenever they want? Or are we ignoring that and just telling Arduino to water when humidity has gone below X% of humidity? Regards.

Image
Image

londonium2021

2 years ago

Thanks for the question. I initially started measuring the soil capacitance with the moisture sensors and found that I was spending too much time fiddling with individual plants and couldn't control their moisture independently (not enough analog inputs on one arduino). I then decided to move to Blumats because of the simplicity of automation and calibration. At the end of the day the point of this project is to have a garden that grows actual food with minimal human interaction. The old code for sensing is still in the program providing valuable data about relative humidity and soil capacitance. The arduino will be used as a sort of emergency shutoff valve if the blumats go crazy.

Image
Image

Anonymous user

2 years ago

Congragulations.I liked this project and ı am thinking to this.If there exist some questions about project,ı am gonna ask you.

Image
Image

phuongtiee

5 years ago

hey bro, i very like your project. Can you give me code and connection diagrams?. address: maxem4329@gmail.com. thank you very much!!

Image
Image

somerandomguy321

5 years ago

Hey i am new to this and plus i am working on my very first arduino project relating to this to, so would like to ask what is it that you are still working on? I am asking this because you mentioned that you are working on something with this project. Am not copying this project I am just taking inspiration from this project :0

Image
Image

Anonymous user

5 years ago

Hi! I think your project is really brilliant and the most easiest I have found to comprehend! Would you please be able to share the updated code if possible so that I can try it? Thanks a lot!

Image
Image

Anonymous user

6 years ago

I would like to know the exact way of working of this system. Those Blumats have their own moisture sensing, whats the point in controlling humidity separatly if Blumats are going to push the water in the soil whenever they want? Or are we ignoring that and just telling Arduino to water when humidity has gone below X% of humidity? Regards.

Image
Image

londonium2021

2 years ago

Thanks for the question. I initially started measuring the soil capacitance with the moisture sensors and found that I was spending too much time fiddling with individual plants and couldn't control their moisture independently (not enough analog inputs on one arduino). I then decided to move to Blumats because of the simplicity of automation and calibration. At the end of the day the point of this project is to have a garden that grows actual food with minimal human interaction. The old code for sensing is still in the program providing valuable data about relative humidity and soil capacitance. The arduino will be used as a sort of emergency shutoff valve if the blumats go crazy.

Image
Image

Anonymous user

6 years ago

This is fantastic, really well done! I'm very inspired by what you've done here, thank you so much for the great work putting together this guide for the community. Major kudos!

Image
Image

bogoyeman

6 years ago

Congragulations.I liked this project and ı am thinking to this.If there exist some questions about project,ı am gonna ask you.

Image
Image

Anonymous user

6 years ago

Great job and thanks for sharing. I think one of the major factor is pH level that directly effects result. Did you consider to use pH sensors as well?

Image
Image

londonium2021

2 years ago

Kadir, I had considered the use of some pH monitoring but wasn't quite sure how to implement a reliable automated solution for 12 or more individual plants. I'm thinking my next project will be a home made hydroponics system that incorporates pH control, ppm/nutrients and aeration from a single controller.

Image
Image

Anonymous user

2 years ago

I could not find any pH sensor that you can easily attach the board. Some extra work may needed. It is good to have that pH considered. One more point; Generally, one shot sensor reading is not consistent. It generates up and down value until stabilizes. I ve used the attached kalman filter to get reliable value from any sensor. It may help you if you have similar issue. kalman.h /* * SimpleKalmanFilter - a Kalman Filter implementation for single variable models. * Created by Denys Sene, January, 1, 2017. * Released under MIT License - see LICENSE file for details. */ #ifndef KalmanFilter_h #define KalmanFilter_h class KalmanFilter { public: KalmanFilter(float mea_e, float est_e, float q); float updateEstimate(float mea); void setMeasurementError(float mea_e); void setEstimateError(float est_e); void setProcessNoise(float q); float getKalmanGain(); private: float _err_measure; float _err_estimate; float _q; float _current_estimate; float _last_estimate; float _kalman_gain; }; #endif KalmanFilter.cpp /* * SimpleKalmanFilter - a Kalman Filter implementation for single variable models. * Created by Denys Sene, January, 1, 2017. * Released under MIT License - see LICENSE file for details. */ #include "Arduino.h" #include "KalmanFilter.h" #include <math.h> KalmanFilter::KalmanFilter(float mea_e, float est_e, float q) { _err_measure=mea_e; _err_estimate=est_e; _q = q; } float KalmanFilter::updateEstimate(float mea) { _kalman_gain = _err_estimate/(_err_estimate + _err_measure); _current_estimate = _last_estimate + _kalman_gain * (mea - _last_estimate); _err_estimate = (1.0 - _kalman_gain)*_err_estimate + fabs(_last_estimate-_current_estimate)*_q; _last_estimate=_current_estimate; return _current_estimate; } void KalmanFilter::setMeasurementError(float mea_e) { _err_measure=mea_e; } void KalmanFilter::setEstimateError(float est_e) { _err_estimate=est_e; } void KalmanFilter::setProcessNoise(float q) { _q=q; } float KalmanFilter::getKalmanGain() { return _kalman_gain; } and Arduino implementation #include <Arduino.h> #include "KalmanFilter.h" #include <math.h> #include <SoftwareSerial.h> // These constants won't change. They're used to give names // to the pins used: const int analogInPin = A1; // Analog input pin that the potentiometer is attached to const int digitalInPin = 12; // Analog output pin that the LED is attached to int sensorAValue = 0; // value read from the pot int sensorDValue = 0; // value output to the PWM (analog out) int outputValue = 0; int tmpValue = 0; int window_size = 10; KalmanFilter kalmanFilter(2, 2, 0.01); void setup() { // initialize serial communications at 9600 bps: Serial.begin(115200); pinMode(digitalInPin, INPUT); } void loop() { // read the analog in value: tmpValue = analogRead(analogInPin); float realValue = tmpValue/1024.0 * 100; float measuredValue = realValue + random(-100, 100) / 100.0; float estimatedValue = kalmanFilter.updateEstimate(measuredValue); sensorAValue = tmpValue / window_size; sensorDValue = digitalRead(digitalInPin); // map it to the range of the analog out: outputValue = map(sensorAValue, 0, 1023, 0, 255); // change the analog out value: // print the results to the serial monitor: Serial.print("sensor Analog = "); Serial.print(estimatedValue); Serial.print("\ sensor Digital = "); Serial.println(tmpValue); // wait 2 milliseconds before the next loop // for the analog-to-digital converter to settle // after the last reading: delay(250); }

Image
Image

vladimirdimov

6 years ago

odlicen proekt

Image
Image

Anonymous user

6 years ago

I really like this project and want to build one down the road. So many time I forget to water plants to find them all dried up. Thanks for sharing this!

Image
Image

Snaresman

6 years ago

I am very interested in this project. I want to build something similar. I have one indoor greenhouse and plan on a second. I want to monitor and record the temperature, humidity and soil moisture. Then use the soil moisture for watering. I'm currently using a heater controller for temperature and a timer for the lights.

Image
Image

londonium2021

2 years ago

Snaresman, I personally learned the little bit of c++ I know from here. https://www.codecademy.com/learn/learn-c-plus-plus You can make a free account and get the pro subscription for week long trial which should be long enough to complete the module. Then once you get the basics you just search for the libraries of the hardware you are connecting to Arduino and watch youtube tutorials of how to use the libraries.

Image
Image

londonium2021

2 years ago

Snaresman, That's awesome. What are you growing indoors? Sounds like you just need to automate water and you'll be able to go on vacation lol.

Image
Image

Anonymous user

2 years ago

https://github.com/Porokhnya/GreenhouseProject/blob/master/README_EN.md

Image
Image

Snaresman

2 years ago

I’m starting some vegetables and cooking herbs. I’m wondering if I should go this route for monitoring. From the comments I’ve read on different projects, there isn’t much help on the programming. I’m trying to learn the language and it seems to be geared towards computer engineers. This is one of about four programming languages I’m trying to learn. Do you know where I can get any help?

Image
Image

beccuti

6 years ago

Hi ! thank you very much for this inspirational project. A short question: What kind of lights are you using? My concern is they consume some energy.

Image
Image

beccuti

2 years ago

I see, thanks ;)

Image
Image

londonium2021

2 years ago

beccuti, The light bulbs are 54w High Output fluorescent bulbs. They do consume a fair amount of energy but where I live there isn't enough sunlight or warmth to grow outside this time of the year. Thank you for looking into my project.

Image
Image

Anonymous user

6 years ago

Hello Good Sir, Thank you kindly for posting this automated process. This should help 'grow' my indoor poppy business, who doesn't like poppy seeds on there bagels? Thanks

Image
Image

londonium2021

2 years ago

Zadok, I don't know if it works on illicit or controlled plants. Will update you with my progress. Thanks for the suggestive suggestion.