Sproutly

Meet Sproutly!

I’ve failed to properly take care of many plants I’ve had throughout the years. Forgetting to water them, leaving them too close to open windows during the winter, and forgetting what type of light settings they thrive in. I created Sproutly as a tool to improve my relationship with my plants and I hope that it’s something that is useful for you, too!

Sproutly consists of two main functions: it has a moisture and light sensor that will track the plant’s physical healthiness and a sound detection microphone that is installed to encourage you to speak with your plants. Speaking to your plants will help them thrive because we should all show them a little more love and care, AND the carbon dioxide emitted from your breath is crucial to their growth and survival.

The idea is that a light is connected to both sound and moisture sensors and the light will act as a visual notification system. Sproutly will remind you to speak with your plants twice a day and will also remind you when your plants need water. Additionally, it is an IoT object, so you will also get text notifications.

Materials Used:

Adafruit Feather HUZZAH with ESP8266

Electret Microphone Amplifier – MAX9814 with Auto Gain Control

Chirp! The Plant Watering Alarm

NeoPixel Stick – 8 x 5050 RGB LED with Integrated Drivers

Lithium Ion Polymer Battery – 3.7v 500mAh

Lots of wires

1/4″ Thick Translucent White Acrylic Sheet

This is a work in progress, and here are my next steps: 

  1. connect moisture sensor to feather huzzah and write code
  2. incorporate text reminders through IFTTT

Flowed Light

Hello Everyone! This is my project Flowed Light.

The Flowed Light is an hourglass light which can go off gradually.

When you turn it upside down, it will light up in rainbow color. And when you turn it back, it will all change to white and go off gradually from the top to the bottom.

It can be used as a Pomodoro light and a night light suited for people who don’t like to sleep in a dark environment.

https://www.instructables.com/id/Flowed-Light/

form

Materials:

  • Glass bottle
  • Hourglass (3D printing)
  • Addressable LED strip (RGBW)
  • Tilt switch
  • HUZZAH & Circuits

circuit

Steps:

  • Purchase materials
  • 3D model the hourglass according to the glass bottle’s size
  • 3D print the hourglass (print-bath-clean)
  • Learn and finish the coding
  • put the circuit into the hourglass
  • stick the LED strip onto the surface of the hourglass
  • HUZZAH & Circuits

part

Challenges:

  • Small space!!!!!!
  • 3D printing (size & structure)
  • How to make it portable
  • How to hide the circuit
  • How to stick the LED strip onto the surface of the hourglass
  • How to put the hourglass with LED strip into the bottle

I learned a lot from both the formation and coding from this project. I met a lot of difficulties on the challenges above, especially the small spacing of the product makes everything harder. And thank Becky, Oya and Helen for help! 🙂

Piggy Bank: Half Marathon Training Progress Lamp

As a reluctantly avid runner, I like to create incentives for me to stay on top of my running progress. For this project, I’ve created IFTTT applets and a lamp that does the following:

Screen Shot 2018-12-12 at 7.52.49 AM.png

Here are parts of the process below.  You can view the full instructions on my Instructables page

To start, I created an applet that logs every run in a Google spreadsheet.  In it, I edited the first 13 lines with formulas and benchmark numbersStrava Run Log.png

Once that was set up, I setup an Adafruit feed that collects data from IFTTT applets that are triggered every time I hit a certain benchmark.  Each time I hit a weekly benchmark, data unique to the week gets sent to my Feather Huzzah board and lights up the number of LEDs that corresponds to where I am in the training schedule

Strava to Google Sheets.png

 

Screen Shot 2018-12-12 at 8.12.49 AM.pngThen, I moved on to laser cutting and assembling the lamp.  I had the most fun while doing this!  IMG_5776.jpgIMG_5768-2.jpg

IMG_5767-2.jpg

Then, came the soldering.  IMG_5772.jpg

IMG_5773.jpg

IMG_5775.jpg

I actually had to re-solder the entire circuit using different LEDs because the sequins I got from Tinkersphere actually were not compatible with my code.  Luckily I had other RGB LEDs readily available and the second time around was much faster than the first! I ended up with a much cleaner circuit as pictured above.  (special shoutout to Oya of the VFL for staying with me until 1AM to help me troubleshoot.  You are an angel)

I’m so thrilled with the final product and will definitely be using this when training for my next race.

IMG_5782.jpg

 

Bloomie

 

Bloomie is a product for people to share their emotions through lights. When you trigger certain interaction, the message will be sent to the other person’s Bloomie. By using Bloomie, you can share your frustration, excitement and console with people who you love. Bloomie has three interaction functions.

  1. When you are frustrated or disappointed, you can shake Bloomie, which will make the flowers blinking in red frantically.
  2. You can make your frustrated friend calm by sending light signal by using the first button. Or you can just use when you are feeling calm.
  3. When you press the second button, the flowers will blink in various colors. Share your excitement and joy by using this button!

To further develop this project, I would love to make the buttons easy to find and press. Also, I would like to design a DIY Bloomie Kit for people to make their own by using different interactions.

Bloomie-Interactions from Shin Young Park on Vimeo.

Bloomie from Shin Young Park on Vimeo.

https://www.instructables.com/id/Bloomie/

Outlet Master

IMG_6296

Felix and I built the brain of an aquaponics system. It is an outlet box with four outlets each of which is controlled by google calendar. It turns out that this Google calendar controlled outlet box has plenty of other applications beyond aquaponics.

Check out our video:

Check out our Instructable:

https://www.instructables.com/id/Arduino-Outlet-Box-Control-Center-With-Google-Cale

Below is the foregone aquaponics system:aquaponic shelf.jpg

Final: Automatic Night Light

 

IMG_1314https://www.instructables.com/editInstructable/edit/E0X38G2JPINZ6L1/step/1

I made the Automatic Night Light named as SWIMCLOUD. It would detect the darkness and lights up by itself when people turn off the lights, so I do not need to turn on the night light by myself and do not need to afraid the darkness anymore.

IMG_3635

However, I used the transparent acrylic to build my model because of inspiration by below these photos. I think if I let people know what is the mechanism inside, and how it works, and it might raise the curious of this products and make it different from the common night light.

Then I laser cut the components which I want to build my model and used acrylic adhesive to stick it together.

For the circuit, I used the PIR sensor to detect the darkness on the Arduino board. And put cotton in the transparent cylinder to diffuse the lights, and make some change to let the lights suitable for the environment when people sleep.

Here is the circuit I built.

IMG_2787

And here are the process of model building.

IMG_3634IMG_3645IMG_3647IMG_3646

 

 

Here is the coding I used

#include <Adafruit_NeoPixel.h>
const int ldrPin = 5;
const int ledPin = 9;
const int brightness = 100;
#define PIN 9
Adafruit_NeoPixel strip = Adafruit_NeoPixel(8, PIN, NEO_GRBW + NEO_KHZ800);

int ldrState = 0;

void setup() {
Serial.begin( 9600 );
pinMode(ledPin, OUTPUT);
pinMode(ldrPin, INPUT);
strip.setBrightness(50);
strip.begin();
strip.show(); // Initialize all pixels to ‘off’
}

void loop() {
ldrState = analogRead(ldrPin);

if (ldrState <= brightness) {
colorWipe(strip.Color(0, 0, 0, 255), 50);
} else {
colorWipe(strip.Color(0, 0, 0, 0), 50);

}
Serial.print(“LDR Value = “);
Serial.println( ldrState );
delay(500);
}

// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, c);
strip.show();
delay(wait);
}
}