Water My Plant

Made by Lynn Sandberg

We're not always sure which plants need more or less water. This offers an easy indicator to know if it’s time to water a plant or not.

Created: January 29th, 2016

0

Problem Statement

My roommate has several potted plants in our house and she doesn't know how much water they need. She estimates that she should water them every week – but she has no feedback as to if she’s over-watering or under-watering. She understands that some plants need water more often than others but she waters them the same because she isn’t sure which plants need more or less water. She would like some easy indicator to know if it’s time to water her plant or not. 

Goal

The goal here is to know if a plant is too dry and if it should be watered or not.

Process

Components

2 – Screws

2 – Washers

8 – Jumper wires

1 – Red LED

2 – 220Ω resistors

0
The Photon Setup
Screen shot 2016 01 29 at 4.15.56 pm.thumb
0
Code Used
// Define a pin that we'll place the photo cell on
// Remember to add a 10K Ohm pull-down resistor too.
int photoCellPin = A0;

// Create a variable to hold the light reading
int photoCellReading = 0;

// Define a pin we'll place an LED on
int ledPin = D0;

// Create a variable to store the LED brightness.
int ledBrightness = 0;

//
void setup(){

  // Set up the LED for output
  pinMode(ledPin, OUTPUT);

  // Create a cloud variable of type integer
  // called 'light' mapped to photoCellReading
  Particle.variable("light", &photoCellReading, INT);
}

void loop() {

  // Use analogRead to read the photo cell reading
  // This gives us a value from 0 to 4095
  photoCellReading = analogRead(photoCellPin);

  // Map this value into the PWM range (0-255)
  // and store as the led brightness
  ledBrightness = map(photoCellReading, 0, 4095, 0, 255);

  // fade the LED to the desired brightness
  analogWrite(ledPin, ledBrightness);

  if( photoCellReading < 1100 ){
    Particle.publish( "lynn-plant-in-distress" );
  }

  // wait 1/10th of a second and then loop
  delay(1000);
}
Click to Expand
0

Outcome

When water is added to the plant, the photon senses that there is an electrical current between the nails in the wet soil. When the soil is dry, the red LED will turn off and I will receive a notification to my phone, which will tell me to water my plant. In the future, I would like to set different resistance detectors which will let me know just how dry or moist my plant is, so the plant can maintain a comfortable moisture level – and it so it won’t become overly dry or overly wet. In general, I’m very happy with how it has turned out. 

0
Water my plant - Particle.io example
Lynn Sandberg - https://www.youtube.com/watch?v=Krca6z3Mr7g&feature=youtu.be
0
No water added (LED off)
Screen shot 2016 01 29 at 4.16.32 pm.thumb
0
After Water Added (LED is on)
Screen shot 2016 01 29 at 4.16.44 pm.thumb
0
Notification from IFTTT to water my plant.
Screen shot 2016 01 29 at 4.46.45 pm.thumb
0

Reflection

I learned a little bit more about how resistors work; they need some sort of sensory input to be activated. I also learned a little bit more about the photon/breadboard and which sides of the board are “ground” and how the power is connected. I also learned a little bit about how to create an event in IFTTT. I feel like I have a better idea of how all these devices and programs are connected. 

x
Share this Project

Courses

49-713 Designing for the Internet of Things

· 4 members

This course charts the emergence of the now "connected world" to explore the possibilities for future products and connected spaces.


Focused on
About

We're not always sure which plants need more or less water. This offers an easy indicator to know if it’s time to water a plant or not.