Window Talk
Made by K P, Gabriela Rubio and Jake Maxfield
Made by K P, Gabriela Rubio and Jake Maxfield
The goal of the project is to create a connected and enriching experience for users to share their time of day with their loved ones.
Created: February 10th, 2016
Intention
A common problem with distant relationships is the feeling of disconnectedness and desynchronized schedules. The intention of Window Talk is to increase closeness to loved ones through the creation of a glanceable connected device. There are two identical devices that are paired with each other to coordinate communication and interactions. The Window Talk has been created to communicate time of day to people in different locations by providing a visual cue.
The Device
There are two devices: a home device at the home device and a distant device at a relative's home. The home device consists of a 100 mA warm LED and photoreceptor that is connected to the relative device. Each device is powered by a battery pack to provide mobility. The change of day in each location triggers the other location to adjust as a glanceable notification.
Bill of Materials per device
1 Breadboard with USB cable
1 Photon
1 – 3V DC power supply/battery pack
1 – Window
1 - 1 Warm LED 100 mA
1 – Jumper wires
1 - 47 Ω Resistor
1 - 100k Ω Resistor
1 - 10k Ω Resistor
1 - Photoresistors
The Design Process
The design process included ideating on the type of relationships and emotions people feel when distanced from their family, friends or significant others. From experiences of coordinating multi-time zone relationships, it became apparent there was an opportunity to link people together by providing a connected object that lights up the distance device when the home device is experiencing daylight and vice versa.
/* CONSTANTS & VARIABLES
------------------------------------------------------*/
const String myID = Particle.deviceID();
int ledPin = D0; //Setup LED
int testledPin = D1; //test values
int photoCellPin = A0; //Setup Photocell
int photoCellReading = 0; //Store the sensor reading
int ledState = 0;
int remoteState = 0;
/* SETUP
------------------------------------------------------*/
void setup(){
//Function that will allow direct communication between usb port, analogue reading
Serial.begin(9600);
//Connect the photo cell reading to the cloud to read the value on "cloud variables"
Particle.variable("light", &photoCellReading, INT);
Particle.variable("brightness", &ledState, INT );
pinMode (ledPin, OUTPUT);
pinMode(testledPin, OUTPUT);
pinMode (photoCellPin, INPUT);
Particle.subscribe("SweetTalkProject", eventHandler);
Particle.function("setState", setStateFromCloud); //Just to chech LED locally
}
/* LOOP
------------------------------------------------------*/
void loop(){
monitorPhotocell();
}
/* FUNCTIONS
------------------------------------------------------*/
void eventHandler (const char *event, const char *data){
Serial.println( "event detected" );
Serial.println( data );
Serial.println( event );
String dataStr = data;
if (!data) return;
//String myID = System.deviceID(); (redudnant to line 3)
if( dataStr.indexOf( myID ) > -1 ) return;
//Serial.println( "Not from another ... "); // i dont know what not from another refers to
int index = dataStr.indexOf(",");
String value = dataStr.substring( 0, index );
int state = value.toInt();
setState( state );
}
int monitorPhotocell(){
photoCellReading = analogRead(photoCellPin); //Read from photoCellPin
int convertedToState = map ( photoCellReading, 800, 4000, 0, 255 ); // Set range for states
analogWrite( testledPin, photoCellReading );
//Serial.println( photoCellReading ); //Display it on serial
if (remoteState != convertedToState){
announceState (convertedToState);
remoteState = convertedToState;
delay (1000);
}
}
int setStateFromCloud (String command){
int newState = command.toInt();
setState ( newState );
return 1;
}
void setState(int state){
if ( state == ledState ) return;
if ( state != ledState ){
ledState = state;
analogWrite(ledPin, state);
}
}
void announceState (int state){
//String myID = System.deviceID(); (Redundant with like 3)
String data = String(state) + "," + myID;
Particle.publish("SweetTalkProject", data);
delay (2500);
}
Click to Expand
Outcomes and Reflections
We successfully were able to connect paired devices and witness how devices can connect geographically separated people in relationships. The Window Talk provides a way to comprehend and empathize with loved ones and their daily schedules and experiences. Future iterations would include creating a prototype that retrieves true-time information from the cloud about exact sunrise and sunset times, removing the devices dependence on photoresistors.
This course charts the emergence of the now "connected world" to explore the possibilities for future products and connected spaces.
The goal of the project is to create a connected and enriching experience for users to share their time of day with their loved ones.