Back to Parent

Outcome


Solution

Keeping a plant’s water level satisfactory may be difficult to judge from just the appearance of the soil. With this IOT device, the soil-moisture level is easily visible by a red ( unsatisfactory ), green (satisfactory) or blue (very hydrated) LED and the exact measurement is logged in a spreadsheet where the plant owner can make sure the doing well. If the plant’s moisture level is below the set satisfactory level (may depend on the type of plant) and shines the red LED, an SMS notification will be sent to the plant owner’s mobile device reminding them to water the plant every ten minutes.

When the user is home, the plant owner can interact with the plant. By pressing a button, if the plant has an adequate water level, the plant will light up, play a tune, and swivel around to demonstrate it is a happy plant. If the water level is below satisfactory, a bad tone will be played and the plant will not dance around.

Dsc 8313
Show Advanced Options

Approach

For this project, I wanted to go beyond checking the plant’s moisture level. Although it is important to keep your plant healthy and watered, I feel that adding something fun makes the experience more interactive and gives the user a sense of reward for taking care of their plant. The “dancing plant” idea was influenced by positive reinforcement from video games – for example, if you take care of a pet, their health or love for you will increase and they’ll smile or show you appreciation in some way. I wanted to create a subtle emotional attachment to the plant to potentially lengthen the lifespan of the plant.

The LED indicators were influenced by ambient design where a plant owner can just glance over at their plant and see if the plant needs water or not. This was similar to the umbrella that has a handle that indicates the weather outside and helps the user decide if the umbrella is needed at a quick glance at the glowing color [1].

Process

After I determined an overall idea of what I wanted my IOT device to do, as explained in my Approach above, I created tasks and subtasks to complete for each component, integrating them together as I went along. This is the order of how I assembled my final product:

          1. Pseudo-code and outline the hierarchy of the code (seen in workflow diagram)
          2. Learn how to use and wire a servo motor [3]
          3. Use prior knowledge and skills from in class Skills Dev to apply my DIY soil-moisture detector to this circuit
          4. Wire in LED’s (red = bad, green = good, blue = very saturated, yellow for decoration) and combine with the moisture detector and motor.
          5. Wire the piezoelectric speaker and determine melody and corresponding durations for notes to play when moisture level is satisfactory
          6. Determine tone to play for unsatisfactory moisture level
          7. Integrate into existing circuit
          8. Add pushbutton to activate happy plant dancing and short LED light show
          9. Create IFTTT recipe for publishing events to a Google spreadsheet
          10. Create IFTTT recipe for sending SMS reminders to the plant owner
          11. Brainstorm and sketch the form and apparatus that would house the plant and components
          12. Prototype the form with foam-core and integrate all the components

One of the ambitious ideas I rejected was because it was outside the scope of my project was a water pump to automatically water the plant if the moisture level was unsatisfactory. It apparently involved additional power sources and more advance techniques and took away from the user interaction. The other idea I did not pursue was constantly monitoring for a change in moisture level to detect when the user watered the plant and the moisture level went from unsatisfactory to satisfactory. The plant’s happy dance and lights would automatically start when that change was detected, but I chose a more simplistic path by adding a pushbutton to activate it.

The main challenge that I encountered was realizing that the code had to run sequentially and tasks could not be completed simultaneously. I wanted the LED’s, music and servo motor to work simultaneously, but instead, I solved this alternating LED illuminations, servo motor actions, and music. 

Workflow
Show Advanced Options

Implementation

Parts list:

  • Argon Particle Board with WIFI connector
  • DIY soil-moisture detector (2 uncoated nails, non-conductive spacer, wires)
  • Servo motor (SG51R)
  • Piezoelectric speaker
  • Pushbutton (4 prong)
  • LEDs (Red, Green, Blue, Yellow)
  • Five 1k resistors 
Demonstration video and code directly below, followed by pictures of the physical circuit and prototyped form.

Show Advanced Options
Vogt langley breadboard build0
Show Advanced Options
Show Advanced Options
Dsc 8307
Show Advanced Options
Dsc 8300
Show Advanced Options
Dsc 8299
Show Advanced Options

IFTTT Applets below.

Dsc 8302
Show Advanced Options
Applets
Show Advanced Options
Ifttt app
Show Advanced Options
Spreadsheet data 02
Show Advanced Options
Sms
Show Advanced Options

Next Steps

Next steps could include implementing code that detects when the user has watered the plant adequately to trigger the happy plant dance. An upgraded servo motor, or even a torque motor, would make the swiveling quieter, less jerky and support heavier plants.

The form was prototyped, but I would like the final form of the apparatus to be made of wood, hide all of the wires so only the LED’s are visible on the wood’s surface for a minimalist, ambient aesthetic.

Lastly, a live dashboard accessible through a plant monitoring application that can be viewed on one’s mobile phone would enable the plant owner to monitor the plant’s moisture level easily throughout the day. It could also have fun functions that play different music melodies and activate various dances for the plant. 


Reflection

This was a very enjoyable project and I had a lot of fun making a more interactive plant that would lift the plant owner’s mood. I have not worked a servo motor before so I was able to quickly learn those skills, learn the limitations, adjust, and apply them to this project.

I learned simplistically “enchanting” an analog object can elevate the overall experience and interaction with it. As a student, this project was definitely a good stepping stone towards a larger, more involved IOT project where form is required. This project emphasized conceptual ideas and basics to prepare me to execute more complex projects.

References

  1. Ambient Umbrella: https://www.geeky-gadgets.com/the-ambient-umbrella-30-12-2009/
  2. Inspiration for owner interaction with music (discovery): https://particle.hackster.io/make-photons-great-again/motion-activated-music-player-ad8878
  3. Servo Motor: https://docs.particle.io/tutorials/hardware-projects/maker-kit/
  4. Tutorials: https://diotlabs.daraghbyrne.me/
  5. Circuit Diagram Software: https://fritzing.org/home/

Drop files here or click to select

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