17
SMARTY PLANTS Christine McGahhey Phys. Computing Project December 8th, 2016 The Plant That Talks Back

Smarty Plants

Embed Size (px)

Citation preview

Page 1: Smarty Plants

SMARTY PLANTS

Christine McGahhey Phys. Computing Project

December 8th, 2016

The Plant That Talks Back

Page 2: Smarty Plants

OVERVIEW

Arduino Project Fall/Winter 2016

Process

1. Ideation

2. Planning

3. Initial Prototypes

4. First Fabrication

5. Final Prototype

6. Next Steps

Page 3: Smarty Plants

IDEATION

Combine Technology and Gardening

● Current smart planters do all the work and sever the connection between the owner and the plant

● Technology is a useful tool that people can use to better communicate

● Merging modern technology with an age old pastime

Encourage People to Own Plants

● Plants reduce depression and allergies and help keep their owners healthy

● Many people are afraid of keeping plants because of fear of killing the plant

● How-To guides are often not much help for beginners

Page 4: Smarty Plants

Nov. Week 1-2 Nov. Week 3-4 Dec. Week 1 Dec. Week 2 Dec. Week 3

PLANNING

Order Parts and find tutorials

Test Moisture Sensor

Connect LCD to Pot

Fabrication

Exhibition/Finalize

Page 5: Smarty Plants

INITIAL PROTOTYPES

Page 6: Smarty Plants

1 - Testing the Sensor and Screen

The very first prototype was a test to make sure the

moisture sensor gave readings and that those reading could

be displayed on an LCD screen and in the Serial Monitor.

The first readings were simple converted into percentages

and I analyzed this data to find the numbers for the ideal

amount of water to later convert into specific messages.

Parts/Materials:

Grove Moisture Sensor, Arduino, Breadboard, LCD Screen,

Wires, Potentiometer, Bowls with Soil, Water

Page 7: Smarty Plants

2 - Creating Phrases and First Box

The second prototype converted the readings into different

phrases for the screen to display, based on moisture levels. I

added 5 unique phrases based on water levels; Drowning,

too wet, perfect levels, getting dry, too dry. All of the

phrases are sarcastic and can be customized as well.

Next, I made the first box out of poster board to cover the

Arduino unit and placed the pot on top.

Parts/Materials:

Grove Moisture Sensor, Arduino, Breadboard, LCD Screen,

Wires, Potentiometer, Plastic pot, Soil, Posterboard

Page 8: Smarty Plants

Initial Prototype Findings

1. Reduce features that were originally planned (buzzer, LEDs) and focus on interaction

2. Create a clean looking box to store the pot and Arduino

3. Place the sensor at the bottom to hide the sensor and hide more precise readings

Page 9: Smarty Plants

FIRST FABRICATION

Page 10: Smarty Plants

First Box

The first box had an exposed top so the main issue was being able to see the wires when looking at the top, since there was no lid to cover it.

The chord also stood out because of the jarring red color, and the box had no other decorations to make it stand out. It was also a bit bulky and could be slimmed down more to make it easier to place on a shelf or windowsill.

Finally, since people are looking down when they water a plant, it seemed better to place the screen at the top rather than the side.

Page 11: Smarty Plants

First Fabrication Findings

1. Add a lid to the top to cover all signs of wires

2. Change the chord color to black or white

3. Place the screen at the top of the device

4. Add more decoration to make the box unique

5. Place the Arduino on the side to protect from water damage

Page 12: Smarty Plants

FINAL PROTOTYPE

Page 13: Smarty Plants

Schematic

Page 14: Smarty Plants

Code#include <LiquidCrystal.h>// include the LCD libraryLiquidCrystal lcd(12, 11, 7, 6, 5, 4);// Set pins as 12,11,7,6,5,4. It might be different for your LCD, check the producer catalog

//sensor codeint potPin = A0; //input pinint soil = 0;

void setup() {

// lcd rows and columns lcd.begin(16, 2);

Serial.begin(9600);

}void loop() { //sensor in serial monitor int sensorValue = analogRead(A0); Serial.println(sensorValue); delay(100);

// map the values int soil = analogRead(potPin) ; //bone dry message if (soil >= 950 && soil <= 1023) lcd.setCursor(0, 0); lcd.print("I'm so thirsty!"); lcd.setCursor(6, 1); lcd.print("X__X"); delay(2000); lcd.clear(); delay(2000); lcd.print("Water me or I'll"); lcd.setCursor(0, 1); lcd.print("die & haunt you"); delay(2500); lcd.clear(); lcd.setCursor(0, 0);

lcd.print("as a plant ghost"); lcd.setCursor(6, 1); lcd.print("X__X"); delay(2000); lcd.clear(); } //damp soil message else if (soil >= 700 && soil <= 949) { lcd.setCursor(0, 0); lcd.print("I'm drying out!"); lcd.setCursor(6, 1); lcd.print(">__>"); delay(2000); lcd.clear(); delay(2000); lcd.print("Do me a favor &"); lcd.setCursor(1, 1); lcd.print("actually care"); delay(2500); lcd.clear(); lcd.setCursor(0, 0); lcd.print("about my health"); lcd.setCursor(6, 1); lcd.print("<__<"); delay(2000); lcd.clear(); } //watered well message else if (soil >= 350 && soil <= 699) { lcd.setCursor(0, 0); lcd.print("I'm feeling good"); lcd.setCursor(6, 1); lcd.print("^__^"); delay(2000); lcd.clear(); delay(2000); lcd.print("What a surprise"); lcd.setCursor(0, 1);

lcd.print("you did your job"); delay(2500); lcd.clear(); lcd.setCursor(4, 0); lcd.print("for once"); lcd.setCursor(6, 1); lcd.print("^__^"); delay(2000); lcd.clear(); } //too wet messsage else if (soil >= 270 && soil <= 349) { lcd.setCursor(1, 0); lcd.print("I'm too soaked"); lcd.setCursor(6, 1); lcd.print("-__-"); delay(2000); lcd.clear(); delay(2000); lcd.setCursor(1, 0); lcd.print("Next time you"); lcd.setCursor(0, 1); lcd.print("water me try to"); delay(2500); lcd.clear(); lcd.setCursor(1, 0); lcd.print("pay attention"); lcd.setCursor(6, 1); lcd.print("-__-"); delay(2000); lcd.clear(); }

//too much water message else if (soil >= 0 && soil <= 269) { lcd.setCursor(1, 0); lcd.print("I'M DROWNING!!"); lcd.setCursor(6, 1);

lcd.print("O__O"); delay(2000); lcd.clear(); delay(2000); lcd.setCursor(2, 0); lcd.print("HELP! HELP!"); lcd.setCursor(1, 1); lcd.print("My owner is a"); delay(2500); lcd.clear(); lcd.setCursor(1, 0); lcd.print("complete moron"); lcd.setCursor(6, 1); lcd.print(">__<"); delay(2000); lcd.clear(); }}

Page 15: Smarty Plants

Design Photos

Page 16: Smarty Plants

5 Set Phrases

Page 17: Smarty Plants

NEXT STEPS

CustomizabilityAllow the users to customize the messages themselves

LED Matrix Panel To display the character sprite of the user’s plant with emotions

Sound Feedback Add sounds to certain emotions so that the user knows when it’s talking to them while they’re in another room

Photocell Add a light sensor so that the pot can also read the light levels