49713 Designing for the Internet of Things
· 25 members
A hands-on introductory course exploring the Internet of Things and connected product experiences.
Found in DIoT 2018 2: Ambient Affect
This ambient device notifies the person who is being loud in the room to keep quiet and not disturb others by creating a recurring motion along with a light indicator.
If you have ever worked in an open office or common study room, there is a very good chance you've dealt with a noisy neighbor. Loud and talkative coworkers can be one of the most annoying distractions on earth and, unfortunately, they're pretty common in today's workplace. Dealing with situations like this could be very awkward. Most people want to avoid conflict, as it's natural to want to be liked by all your colleagues and to not be seen as high maintenance or a whiner, so the tendency is to grit your teeth and put up with it. Thus our ambient device deals with this situation by producing a recurring movement which notifies the person being loud to keep their voices down.
This ambient device could be used in any set-up where there is a possibility of someone being very loud. We have considered our studio space which is generally used for studying or working on assignments. Sometimes there are instances when one person is engrossed in a loud phone conversation or listening to blaring music. This device is mainly focused on serving the purpose of making the person shut up in a subtle manner.
In the beginning, we got an idea that would make the classes and common work-spaces quieter. To realize it, we needed to detect the sounds in class. After a few experiments, we selected the MIC AMP Adjustable sensor and made it to work with a simple LED. Then we thought about how to use an ambient way to send the information that would remind people to be quiet. We thought motor is a good way. As shown in the video, we used a motor that makes a stern figurine shudder its finger to remind people to be quiet in a harmonious way. There is also a LED in the forehead to showcase the anger. We added a speaker output at the beginning but removed it as it would create an excessive amount of disturbance.
By this device, we can remind the people in classroom or studio space to be quiet when their volume is too loud, as it distracts everyone else as well. This product can collect the sound from class and make a judgement. If the volume is excessive, the program will send a command to the photon. The motor and LED will respond then. At the same time, the program will also send a message to the particle cloud console and the smartphone. The smartphone will receive a ‘shut up!’ message.
// the pin we're reading from
int mic_pin = A0;
// store the noise level / reading from the electret
int noise_level = 0;
const int sampleWindow = 50;
int servoPin = A5;
int ledPin = D0;
int lastLedValue = 0;
int speakerPin = D1;
// setup() runs once, when the device is first turned on.
void setup() {
// Put initialization like pinMode and begin functions here.
// We want to tell the Photon that we'll use
// D0 as an output pin.
Serial.println( 9600 );
pinMode(ledPin, OUTPUT);
pinMode(servoPin, OUTPUT);
}
// loop() runs over and over again, as quickly as it can execute.
void loop() {
noise_level = sampleNoise( );
Serial.println( noise_level );
if( noise_level > 800 ){
int brightness = map( noise_level, 0, 1000, 0 , 255 );
Serial.println( noise_level );
Serial.println( brightness );
Serial.println( "\n" );
// SpeakerT();
lastLedValue = brightness;
Particle.publish("tooloud");
backnforth();
// analogWrite(A5, 170);
// delay(300);
}else{
if(lastLedValue > 0){
lastLedValue = lastLedValue - 100;
tone(D1,1000,1000);
delay(1000);
}
if(lastLedValue <= 0){
lastLedValue = 0;
}
}
analogWrite(ledPin, lastLedValue); // Turn ON the LED pins
delay(250); // Wait for 1000mS = 1 second
}
void backnforth() //function to move the servo back and forth
{
int i;
for (int i= 0; i <3; i++){
analogWrite(A5, 120);
delay(2000);
analogWrite(A5, 90);
delay(1000);
}
}
int sampleNoise( )
{
unsigned long startMillis = millis(); // Start of sample window
int highest_sample = 0;
int lowest_sample = 1000;
// collect data for 50 mS
while (millis() - startMillis < sampleWindow)
{
int sample = analogRead( mic_pin );
// invert the range, and convert it to a percent
sample = map( sample, 0, 4095, 1000, 0 );
// now see if the sample is the lowest;
if ( sample > highest_sample ){
highest_sample = sample ;
}
if ( sample < lowest_sample ){
lowest_sample = sample;
}
}
Serial.print( "Highest = " );
Serial.println( highest_sample );
Serial.print( "Lowest = " );
Serial.println( lowest_sample );
int peakToPeak = highest_sample - lowest_sample;
return peakToPeak;
}
Click to Expand
We would like to incorporate this device in our studio space and classroom and record the response we get. Making the devise utter "Please be silent", would be our next action plan and that could be done using an audio output devise. We provided an evidence of the seamless integration of awareness systems into our daily life, the expectations that develop through the integration, anxiety stemming from the failure to meet those expectations and the amount of importance that is given to the devices as they provide a sense of loyalty and attachment with the users.
A hands-on introductory course exploring the Internet of Things and connected product experiences.
This ambient device notifies the person who is being loud in the room to keep quiet and not disturb others by creating a recurring motion along with a light indicator.
February 7th, 2018