Back to Parent

Outcome


Screen shot 2019 11 07 at 02.49.26
Show Advanced Options

Solution

Taking Care of Your Mini Cactus - Lesson 101

Like most plants, Cacti use photosynthesis for generating its energy and store their own supply of water. A mini-cacti requires about 4 hours of direct sunlight daily. Without adequate sunlight, cacti become thin and sickly. 

Wait, but... how do I know it's getting enough sunlight or not?

Don't worry. The Cactus Buddy is here to help you take care of your mini cactus in several ways:

1. Provide real-time feedback on the intensity of the sunlight (direct sunlight / low sunlight / no sunlight)

     --> so you'll know where might be the best location to place it

2. Provide daily notification on how much direct sunlight it has been exposed to

    --> so you'll know whether it has gotten enough direct sunlight for the day

Approach

I decided to apply the idea (from the reading "Breakaway: an ambient display designed to change human behavior") of changing user's behavior by providing abstract information.

To do this, my device should be able to:

1. Sense the intensity of sunlight and display the information in an abstract way

    - The intensity of sunlight can be grouped into 3 levels [direct sunlight/low sunlight/no sunlight]

    - The 3 levels should be visually communicated in real-time [I was inspired by Lua]

2. Track the total time of the direct sunlight and inform the user in a non-intrusive way

    - The device should calculate the total time of direct sunlight for the day

    - The notification of the daily statistics and tips sent to the user should be limited to once per day

Process

My idea was to display the icon of various sunlight levels on a rotating panel and to show the in situ status through a cut-out "window." I developed this idea in incremental steps:

In the beginning, I played with the servo to test out the possibility of rotating it to my desired angles. I looked up the servo tutorial from the IoT course site and Particle documentation. And it worked well.

Show Advanced Options

Then I moved on to attach a paper with icon that I sketched to in a way I hoped to convey the sunlight information with and refined my codes to adjust the rotating angles.

Show Advanced Options

Initially I only tested the device with two rotating angles: 0 degree and 180 degrees. When I proceed to add a third angle, 90 degrees, I encountered some challenges to get it to work. It took some time for me to identify the issue (I only considered the clockwise rotation and forgot to consider the counter-clockwise rotation) and re-structured my codes (adding a pos < 90 condition) to resolve it.

Screen shot 2019 11 07 at 03.51.35
Show Advanced Options

Finally, I completed the working prototype and further refined the codes to share more data shared with Particle cloud, publish the data to IFTTT, and added button control (turn on/off the device).

Implementation

My final design and working prototype:

Show Advanced Options
Screen shot 2019 11 07 at 02.32.31
Show Advanced Options
Img 5309
Show Advanced Options

List of Components

  • A Breadboard
  • An Argon Microcontroller
  • A Photo-Resistor
  • A 10kΩ Resistor
  • A Servo
  • A Pushbutton
  • Jumper Wires
Screen shot 2019 11 07 at 21.50.33
Show Advanced Options
Show Advanced Options

Next Steps

In this project, I used visual representations to communicate the information on the intensity of sunlight to the user. This can be further enhanced to display more enriched data like temperature and air/soil humidity.

As of now, the device send 1 push notification to the user to inform the daily statistics about the directly sunlight exposure of the cactus. This might be a distraction to the user if they are in the middle of some tasks. Going forward, I may want to find an alternative way to do this. I haven't think of a good way to raise the user's attention enough without being intrusive. I'll keep thinking and update my thoughts here.

Reflection

I explored and applied the idea of embodied information in this project.

I learned how to work with a servo (yay!) It made my device much more interesting, responsive and dynamic.

I practiced the logical design of my codes and circuit to segregate, track and calculate the data it collected from the sensor.

I enjoyed the pure joy of making a device like this with my hands :)

Drop files here or click to select

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