Mood-Out

Made by smegbel

Found in DioT 2019: Augmented Objects

Mood-Out is a clock-out system that enables employees to clock-out by registering the intensity of their emotions by the end of their shift, which will then be communicated to the management through an Excel Sheet

0

Problem Statement

Mood-Out, is an IoT device designed for managers of small firms whom need to simultaneously track employees’ clock-in and clock-out times for systematic and professional purposes while gaining insights on the company culture and employees’ satisfaction by requiring them to register their affective state and its intensity by the end of their shift. By doing so, the management would be able to develop a better connection with their employees. That being said, I interviewed my neighbor, Marc, whom is a PhD student who owns a small store. My choice of this person was based on convenience and accessibility since I would easily be able to refer back to him and get feedback throughout the project.

In regards to the object selection, I chose this object because as we are developing user-centered systems, it is essential to capture the user’s input to discover areas of improvement. I also chose to augment this object because I believe that employees’ psychology and attitude towards their workplace influences the overall productivity. I also found it relevant to Marc as it eases the job of enforcing the number of hours required by his employees while ensuring that he is providing a positive environment.

Goal

My device is intended to communicate to the management the time in which each employee ends their shift, debrief of their attitude and emotion by the end of the day, and the intensity of their emotion. The device ultimately provides an insight for the management, ensures effective communication methods between the employees and the management, and promotes a better environment for its employees while ensuring that each employee is fulfilling their duties. 

The Process


0

I found that there were two components that this problem statement unfolded: Time management and attitude/emotion.

0

Once I decided to develop a technology that records times and emotions, I developed a process flow. I started by designing the basic layout of my circuit to include 6 push buttons that associate with the different emotions. When pressed, each button will log an entry into Excel that shows the time of the response and the person's response.

 Initially, I had difficulties with ensuring that all the wires were connected and that my circuits were set properly. The pictures below demonstrate the confusion that I encountered when designing "Mood-Out". 

0


0

After the confusion of dealing with many wires, I rearranged the wires successfully. However, I realized that there was an issue with the logic flow as it assumes that emotions are discrete. To account for this, I decided to also add a pressure sensor to capture the intensity of the emotion. My final design enforces the employees to indicate how they feel and how strong that emotion is so that they could indicate the end of their working hours. From the backend, the management will see on the console a row that has values of 0 and 1 along with the time, which they would decode to understand how the employee felt and ensure that they completed their hours.

0

After completing the circuit, I went to programming my device to ensure its functionality. The first thing I did was define the 6 push buttons. Although it was an easy step, it was difficult to keep track of the wires because of their overwhelming quantity. The code below shows my first iteration.

0
// This #include statement was automatically added by the Particle IDE.
#include "lib1.h"

// This #include statement was automatically added by the Particle IDE.
#include <DataPacket.h>

// This #include statement was automatically added by the Particle IDE.
#include <neopixel.h>

#define PIXEL_COUNT 1
#define PIXEL_PIN D7
#define PIXEL_TYPE WS2812B


int buttonPin1=D8;
int buttonPin2=D7;
int buttonPin3=D6;
int buttonPin4=D5;
int buttonPin5=D4;
int buttonPin6=D1;

String ans;





void setup() 
{
    pinMode (buttonPin1, INPUT);//_PULLUP);
    pinMode (buttonPin2, INPUT);//_PULLUP);
    pinMode (buttonPin3, INPUT);//_PULLUP);
    pinMode (buttonPin4, INPUT);//_PULLUP);
    pinMode (buttonPin5, INPUT);//_PULLUP);
    pinMode (buttonPin6, INPUT);//_PULLUP);
    Serial.begin(9600);
    //Serial.println('beginning CSV-serial');

  
}

void loop() 
{

    
  int button1 = digitalRead(buttonPin1);
  int button2 = digitalRead(buttonPin2);
  int button3 = digitalRead(buttonPin3);
  int button4 = digitalRead(buttonPin4);
  int button5 = digitalRead(buttonPin5);
  int button6 = digitalRead(buttonPin6);
  
  int output[]={button1,button2,button3,button4,button5,button6};


 }

    Particle.publish ("sensor-reading", outprint);
    fsrReading = analogRead(fsrPin);
    Particle.variable("force", &fsrReading, INT);
    Particle.publish("Finger scan pressure", String (fsrReading));
    delay(1000);
Click to Expand
0

The previous code did not work as I wanted since:  

-My device generated many entries, even when the user didn't press any buttons.

-My device was sometimes working. as it was not detecting some signals

The inconsistency of the device was a strong indicator that I needed another iteration that changes the flow and interpretation of the information. 

After realizing that I needed to amend the code, I modified it by inserting the values into a string and adding a conditional "if" statement so that it would only generate an entry once a button is pushed. 

Also, I realized that as this is an analytical device, it was more important to visualize the data. To do that, I took advantage of IFTTT, as I registered my device and started 2 applets that would log the responses into individual Excel sheets. To do that, I added the applet and customized it so that it would read the variables I am interested in and indicated the items I wanted in each row.  

0

The Final Outcome

My completed circuit has:

1. A breadboard

2. An Argon particle

3. 1 Wifi chord

4. 6 push buttons

5. 1 pressure sensor

6. 7 resistors

7. 17 wires

The final code that registers both the emotion and the intensity of the emotion through the pressure sensor is shown below.  

0
// This #include statement was automatically added by the Particle IDE.
#include "lib1.h"

// This #include statement was automatically added by the Particle IDE.
#include <DataPacket.h>

// This #include statement was automatically added by the Particle IDE.
#include <neopixel.h>

#define PIXEL_COUNT 1
#define PIXEL_PIN D7
#define PIXEL_TYPE WS2812B


int buttonPin1=D8;
int buttonPin2=D7;
int buttonPin3=D6;
int buttonPin4=D5;
int buttonPin5=D4;
int buttonPin6=D1;
int fsrPin = A0;
int fsrReading = 0;

String ans;





void setup() 
{
    pinMode (buttonPin1, INPUT);//_PULLUP);
    pinMode (buttonPin2, INPUT);//_PULLUP);
    pinMode (buttonPin3, INPUT);//_PULLUP);
    pinMode (buttonPin4, INPUT);//_PULLUP);
    pinMode (buttonPin5, INPUT);//_PULLUP);
    pinMode (buttonPin6, INPUT);//_PULLUP);
    Serial.begin(9600);
    //Serial.println('beginning CSV-serial');

  
}




void loop() 
{

    
  int button1 = digitalRead(buttonPin1);
  int button2 = digitalRead(buttonPin2);
  int button3 = digitalRead(buttonPin3);
  int button4 = digitalRead(buttonPin4);
  int button5 = digitalRead(buttonPin5);
  int button6 = digitalRead(buttonPin6);
  
  int output[]={button1,button2,button3,button4,button5,button6};
 
 
 String outprint="";
 int sum = button1+button2+button3+button4+button5+button6;
 
 for (int i=0;i<6;i++)
    
    {
    
     outprint= outprint+String(output[i]);
    

    }
 
 if (sum!=0) {
    ans.concat(","+outprint);
    Particle.publish ("sensor-reading", outprint);
    fsrReading = analogRead(fsrPin);
    Particle.variable("force", &fsrReading, INT);
    Particle.publish("Finger scan pressure", String (fsrReading));
    delay(1000);
  }
    
    
  
  

    

}
Click to Expand
0

I generated a circuit diagram using Fritzing to show the established connections required for the project 

0

I developed a 3D model to convey the idea to my user. The model is not representative of the final product, but intends to develop a general idea of the functionality of the product

0

The buttons correspond to the 6 basic emotions, which are, Happiness, Surprise, Sadness, Fear, Anger, and Disgust. The order of the buttons are in sync with the Excel sheet generated from the management's end. Once a button is pressed, the user is required to press the pressure knob to indicate the intensity. The button that is pressed will generate a row with a "1" in the column associated with the reported emotion. Another Excel sheet will be used to indicate the pressure of each press. Both sheets will show the time and communicate the inputs to the management for analytical purposes. The first Excel sheet is related to the emotion report generated, where the placement of the "1" in the value is associated with its placement on the device. 

0

User Feedback: 

I presented the concept to the user and got positive feedback from him as he stated that "Such a thing can make me put a system in place and see things that I wouldn't have the time or capability to understand". He was very excited when he saw that it actually gave feedback on both reported emotions and intensity through the pressure of the press. It was beneficial hearing my user's feedback because it revealed some gaps in the user experience. His main points were that it is not intuitive and could entail bias. Even then, he agreed that the concept is beneficial and effective, but the idea needs to be further improvised. 


0

Next Steps: 

Although my neighbor got the functionality that he was interested in, he raised a few points that would be beneficial for my next steps. The first concern he addressed was the aesthetic of the device; as he said that "even if swiping an ID doesn't convey a lot of information, it is fast and efficient, so the user doesn't realize the aesthetic." As a result, one of my next guiding steps would be improving its design so that it's more appealing and intuitive. Also, one of the things I would like to implement is a face detection feature that would eliminate the need to have an individual device for every employee. By doing so, I would improve the scalability of the device so that it could be adopted by small and big workplaces. 

In addition, I would like to capture the user's temperature and pressure as they are both more objective, indirect indicators of emotions. By doing so, the generated reports would be more accurate and less biased.  

0

Reflection:

Overall, this project was a success as it got me out of my fear of experimenting with codes and allowed me to see the potential that IoT has in today's world. Behind all the success, I struggled as I was developing a logic flow that was functional and implementable. 

To achieve a successful outcome in this project, I found it important and valuable to be able to listen to the user attentively to make sure that the outcome is reliable and valid. As I was working on this project, I found that when designing an IoT device, it was important to be adapting as things could change depending on the circumstance and the user feedback. I found this assignment to be beneficial because of its challenging nature that required us to try things we didn't know of before and to look for needed information in available resources that we didn't initially have. After doing so, I learned that there are always tools and resources made for us to use to do anything we want; more importantly, having to look through the internet and asking constant questions taught me to not be intimidated when asking questions and to rather use it as an opportunity to gain knowledge of a new subject matter. 

0

References:

I would like to thank Professor Daragh Bryne, Taylor Mau, Dylan Vanmali, and Robert Halvorsen for all their help and support in building the circuit and achieving the outcomes I wanted. 

In addition, I would like to acknowledge the following resources for the information that guided my logic flow and implementation: 

1-https://diotlabs.daraghbyrne.me/

2- https://managementmania.com/en/six-basic-emotions

3- https://bizfluent.com/info-10000291-factors-affect-productivity.html

4- https://www.youtube.com/watch?v=kEuvtH1zlCo

5-https://learn.adafruit.com/force-sensitive-resistor-fsr/using-an-fsr



x
Share this Project

Courses

49713 Designing for the Internet of Things

· 18 members

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


Focused on
About

Mood-Out is a clock-out system that enables employees to clock-out by registering the intensity of their emotions by the end of their shift, which will then be communicated to the management through an Excel Sheet

Created

January 31st, 2019