Breathing Heart | Connect Long Distance Couples

Made by Zhiye Jin

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.



  1. Switch on the light→ light shines blue

  2. Bend the handle to a degree that represent sadness→ The light will brighten/dim accordingly

  3. Switch off the light→ light off


Next Steps

  1. I will create a color system that represent different emotions

  2. I will design the look of the machine in a more expressive way



I got stuck in code errors all the time but thanks to our 2 TAs, Dylan and Taylor, we figured them out together.

// 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 );
    //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
    //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
Share this Project


49713 Designing for the Internet of Things

· 18 members

A hands-on introductory course exploring the Internet of Things and connected product experiences.


Connecting long distance couples


January 31st, 2019