49713 Designing for the Internet of Things
· 18 members
A hands-on introductory course exploring the Internet of Things and connected product experiences.
Found in DioT 2019: Augmented Objects
Connecting long distance couples
Many of my friends an I are in long distance relationship. And one of the pain points I found is how to express emotional feelings to each other in a non-disturbing way. Usually for long distance couples to communicate their feelings, they either text or call, but when you are texting or calling, it will more or less interrupt others from their work or social activities, because if the other person does not reply timely, it seems that she/he does not care. In that situation, I'm trying to build something that express our feelings in a more silent way to give both parties some room.
My solution is a light bulb that represents people’s emotional pressure. The couples will each hold a bulb in their home, along with the bulb there is a handle which you can bend to express your mental statement. When you switch on the light, it shines in a calm blue color in default. But if I feel sad, I will bend my light’s handle and the light at my boyfriend's place will dim to a light blue, which means I feel down. When my boyfriend gets home, he can see that I don’t feel good today and call in an appropriate time. In this case, I can express my feeling anytime I want without worrying if calling my boyfriend will interrupt him or not.
• 1st idea: a light bulb with a on/off switch button ← problem with this idea: not able to show the degree of emotion
• Refine: then I added a flex sensor that can represent the degree of emotion
• Then I found the more I bend, the brighter the light shines, which does not align with people’s mental model of sadness - which is lower energy, or dimmer light. So I switch the value in code and made it shine in the right way.
// Define a pin that we'll place the FSR on
// Remember to add a 10K Ohm pull-down resistor too.
int flexPin = A0;
// Create a variable to hold the FSR reading
int flexReading = 0;
// Define a pin we'll place an LED on
int ledPin = A2;
// Create a variable to store the LED brightness.
int ledBrightness = 0;
// Our button wired to D3
int buttonPin = D3;
//turning the circuit off
volatile int state = 0;
void setup()
{
// Set up the LED for output
pinMode(ledPin, OUTPUT);
// Set up the flex for output
pinMode(flexPin, INPUT);
// Set up the buttom for output
// Create a cloud variable of type integer
// called 'light' mapped to photoCellReading
Particle.variable("force", flexReading);
pinMode( buttonPin , INPUT_PULLUP);
}
void loop()
{
// Use analogRead to read from the sensor
// This gives us a value from 0 to 4095
int buttonState = digitalRead( buttonPin );
delay(100);
//if button is pressed TURN ON OR OFF THE CURCUIT
if (buttonState == LOW)
{
//turning the circuit on OR OFF
// state = 1; circuit on
// state = 0; circuit off
state = 1-state;
// state = !0 = 1
// state = !1 = 0
}
//when the circuit is on, dim/brighten the led
//if the circuit is on, dim the light
if (state == 1)
{
flexReading = analogRead(flexPin);
// Map this value into the PWM range (0-255)
// and store as the led brightness
ledBrightness = map(flexReading, 110, 0, 0, 255);
// fade the LED to the desired brightness
analogWrite(ledPin, ledBrightness);
// wait 1/10th of a second and then loop
delay(100);
}
//when the circuit is off, turn off the led
if (state == 0)
{
// fade the LED to dark
// ledBrightness = 0;
// analogWrite(ledPin, ledBrightness);
digitalWrite(ledPin, LOW);
}
}
Click to Expand
A hands-on introductory course exploring the Internet of Things and connected product experiences.
Connecting long distance couples
January 31st, 2019