The Mind Jar allows you to purge these worries and anxiety we take to our bed. The platform has paper and pen on which you can write your worries. You then fold the paper, drop it in the Mind jar and listen to the satisfying infinity dropping sound and let go of your worries and stress.



In a recent study done by AARP, out of a sample of 2464 respondents, 37% said that worries and concerns woke them up or kept them awake while they tried to fall asleep. As we try to do more with our lives, adding a second job to our existing over-demanding job, or taking up leadership positions in University, our stress levels have increased dramatically. Before going to bed, we often ruminate about the stresses of the day and worry about the tasks that lay ahead. These worries keep us awake in bed longer than we would like to.   


Concept Description

Off-Your-Mind jar  creates an opportunity for users to reflect on the thoughts and ideas that are on their mind. Users add piece of post-it note into a jar to represent off-loading their thoughts. Users can gently set their “thoughts” in the receptacle, or can throw them with force. As the user adds more thoughts to the jar, a 'infinite falling' sound is played through a speaker which represents . The "thoughts added to the jar" are measured through an IR sensor.

Initial Sketching

Bill of Materials

1. Breadboard * 1

2. Particle Photon * 1

3. Speaker * 1

4. DFPlayer * 1

5. IR breakbeam sensor(pair) * 1

5. Wires

6. Laser-Cut wooden plywood boards (12” by 12”) * 3

7. Plastic jar * 1

8. 3 x 3 post-it

9. Pen

10. Black paint





The design of the Off-Your-Mind jar is aimed at creating a clean and simple look. The black color of the jar and the “infinity bottom” sound is aimed at creating an experience where the users feel like they have tossed their worries into a dark never ending hole. The clean design and smooth surface of wood makes the user feel calm and comforted. The size of the product is made to fit on a side table besides the bed. 

We started with cutting the bottom two woods into a right shape. And as well the top cover carved out so that the jar, post-it, and pen can sit in a stable position. the reason why we carved the top shell is first, we wanted to hide our photon inside the jar and not stand out from the platform, second, to make the platform more stable for stationary to sit on. We also cut the bottom part of the jar to make a space for photon to sit on. We colored it black so that it looks more like a black hole that soaks up all matters. Our intention here were to soak up all worries and stresses. 


Fritzing Diagram

// *
//  * Project breakbeam
//  * Description:
//  * Author:
//  * Date:
//  */
   IR Breakbeam sensor demo form adafruit
#define SENSORPIN 3
int sensorState = 0, lastState=0;// variable for reading the pushbutton status
int breakCount = 0;//variable for counting the number of times the LED is Broken
int publishAfter = 10000; // This is the time delay before we should publish a new event.
long lastPublishedAt = 0 - publishAfter; // This value will store the last time we published an event.
bool reSet = false;
long lastBroken = 0;
int breakAfter = 1000;
 // Our button wired to D0
int buttonPin = D0;
// Setup Speaker Variables
# define Start_Byte 0x7E
# define Version_Byte 0xFF
# define Command_Length 0x06
# define End_Byte 0xEF
# define Acknowledge 0x00 //Returns info with command 0x41 [0x01: info, 0x00: no info]
int volume;
void setup() {
  //SPEAKER Code
  execute_CMD(0x3F, 0, 0); // Send request for initialization parameters
  while (Serial1.available()<10){ // Wait until initialization parameters are received
    delay(30); // Pretty long delays between successive commands needed
    // Initialize sound to very low volume. Adapt according used speaker and wanted volume
    execute_CMD(0x06, 0, 30); // Set the volume (0x00~0x30)
   //initialize the sensor pin as an input:
   digitalWrite(SENSORPIN, HIGH); // turn on the pullup
   pinMode( buttonPin , INPUT_PULLUP); // sets pin as input
   Particle.subscribe("DIOT-2018-DARA-TEAM-HOME-WRECKERS-RESET", subscribeReset);
   Particle.function("Jar", publishJar);
void loop()
   int buttonState = digitalRead( buttonPin );
    sensorState = digitalRead(SENSORPIN);
    if (sensorState && !lastState) {
    if (!sensorState && lastState){
      breakCount ++;
      if (abs(millis() - lastPublishedAt) > publishAfter){
        Particle.publish("DIOT-2018-DARA-TEAM-HOME-WRECKERS-MIND", String(breakCount));
        lastPublishedAt = millis();
    lastState = sensorState;

 void subscribeReset(const char *event, const char *data)
  breakCount = 0;
 // Wrote by Ype Brada
void execute_CMD(byte CMD, byte Par1, byte Par2) // Excecute the command and parameters
 // Calculate the checksum (2 bytes)
 int16_t checksum = -(Version_Byte + Command_Length + CMD + Acknowledge + Par1 + Par2);
 // Build the command line
 byte Command_line[10] = { Start_Byte, Version_Byte, Command_Length, CMD, Acknowledge, Par1, Par2, checksum >> 8, checksum & 0xFF, End_Byte};
 //Send the command line to the module
 for (byte k=0; k<10; k++)
 Serial1.write( Command_line[k]);

int publishJar(String command)
  if (abs(millis() - lastPublishedAt) > publishAfter)
    lastPublishedAt = millis();
  return 1;
Click to Expand


Overall, our group worked consistently and diligently even though it was a big group. And as a subgroup, we coordinated with other subgroups and made our thoughts and parts into a common goal. We delegated tasks well and each person in the group worked on design of the product, coding, coordinating and miscellaneous.

The most difficult aspect of this project was implementing IR break beam sensor aligned. First, we tried to align them manually. Unfortunately, it wasn’t accurate enough. So, we figured out a way to accurately align them. By using a 3-D printed housing to secure the sensor, we were able to align them perfectly.

After integrating the Off-Your-Mind Jar with other subgroups’ final works, we felt that interconnectedness added value to our product. Compared to a stand alone product, the interconnected ecosystem enriched the experience of the user by alleviating the user’s mood as they prepare to fall asleep. Thus, this IoT device can be used as a medium to embellish your current happy mood, or let go of your current sad or anxious mood to reach a goal state that is fruitful and happy.

With further iterations we strongly believe that the physical design of the device could be more dynamic or fun to interact with. We love "infinite falling" sound, but would consider a more interesting housing or a better sound effect for future iterations. 

Share this Project


49713 Designing for the Internet of Things

· 25 members

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


The Mind Jar allows you to purge these worries and anxiety we take to our bed. The platform has paper and pen on which you can write your worries. You then fold the paper, drop it in the Mind jar and listen to the satisfying infinity dropping sound and let go of your worries and stress.


March 7th, 2018