Back to Parent

Outcome


Solution

Pluto the Plant is your plant friend that will express the moisture and sunlight level he gets, and be your little helper to control the light when you are not at home.

When you press the button, it will show you the soil moisture level though different colors of light with red representing dry soil, and getting greener if the moisture level rises. It will also sing a song to express his mood corresponding to 3 levels of sunlight: happier tune if the level of sunlight is higher.

If you don't want to come back to a dark, lonely home, you can call Pluto and let him turn on a light with the mood you prefer and wait for you to come home.

(Want to try it out? Call Pluto at +1-425-312-2142! You won't be able to see the LED light but you can see your input of color been updated in column C of the Google Sheet. *Valid before 2019/11/30)

Approach

Level of moisture and sunlight are two crucial factors when growing a plant. Considering there are already too much screen time and disturbance in our daily life, I want to find an ambient solution to monitor plant status without disturbing the user or asking the user to check any web or app interface. Also, I want it to show the information only when it's needed to reduce unnecessary energy waste.

To enhance the "friend" feature of the plant, I want to create a way for people to build a two-way connection with their plants, so that they can have a plant friend that warms their heart.

Process

Choice of Components

For the output, in order to design an ambient display showing plant status, I decided to go with sound (piezo) and light (LED light) elements, since they are easier to relate to the emotions, making it suitable to express the characteristic of a plant friend. As for the input, I choose a FSR sensor to detect the action of user pressing the button as a trigger, a photoresistor to detect the level of sunlight, and a DIY moisture sensor to detect the level of soil moisture.

Choice of Technical Approaches

Since I would like to enhance the bonding and communication between user and the plant, I originally decided to use DialogFlow to create a chatbot that enables you to chat with your plant via social platforms like Facebook Messenger, Slack, etc. But you will need to chat with your plant by staring at your screen, which seems to be unhealthy and a little unnatural/indirect in a desired scenario as talking to a friend. So I go with the idea of "calling your plant" by phone so you can literally talk to your plant friend.

The next problem to be solved is how to link DialogFlow with Particle. I tried to connect them directly with IFTTT but they don't have DialogFlow as one of the supporting application. Then I tried with Microsoft Flow but the "receiving HTTP request" trigger is only in the premium version. So I landed on connecting Particle to Google Sheets via IFTTT, then linking Google Sheets to DialogFlow with its Inline Editor.

Implementation

Workflow - Show Status of the Plant

User press the button
→ light up LED (dry: red, moist: green)
→ sing a song (higher level of light: more energetic tune)  

Workflow1
Show Advanced Options

Workflow - Turn On Light via Phone Call

Users call Pluto
→ trigger DialogFlow for the conversation
→ collect user's input on Google Sheets
→ trigger IFTTT
→ collect value from Google Sheets and send it to Particle function
→ send signal to Pluto and light up desired color

Workflow2
Show Advanced Options

List of Parts

  • FSR Sensor *1
  • Piezo Speaker *1
  • RGB LED *1
  • 1kΩ Resistor *6
  • Photoresistor *1
  • Particle Argon *1
Untitled sketch 2 bb
Show Advanced Options
Show Advanced Options

Next Steps

One major adjustment/improvement I might make when taking this project forward is trying to link Particle and DialogFlow directly. Currently, the device is having a 10 to 30 seconds delay when getting input from the user. The delay can be captured in the backstage of IFTTT. Plus, it's restrictive to work with IFTTT when the functions are getting more and more complex. Connecting Particle and DialogFlow directly might reduce the delay and open up more possibilities. (Or maybe start with connecting the two through Google Sheets first as a more approachable solution.) 

In the sense of the project's future direction, I think of two possible applications: green smart home device, or chatting system encouraging people to support tree planting events by improving the level of how much people feel they are bonding with the tree they plant.

Reflection

There are a lot of resources online about different levels of different applications, and also lots of people sharing their projects, problems and solutions with the community. This opensource spirit in the community is a positive cycle that is super helpful, making it possible for everyone to learn how to build and code, and also allowing all the creators build upon others' work to achieve greater outcome. It is really challenging and interesting to combine different applications with no coding background, and the integration applications like IFTTT are providing some new ways to work around it and achieve what you want.

Show Advanced Options
Show Advanced Options
Drop files here or click to select

You can upload files of up to 20MB using this form.