The social lamp is a bedside lamp, that aims at creating better social engagements between the inmates of a house. The lamp enables the user to see when the inmates of the house are playing 8 ball pool at the basement.
I live in a house with five other people. This device was designed for a friend who lives on the third floor of the house. The common social engagement that happens is playing of 8 ball pool by the pool table situated in the basement. Often, the person in the third floor isn’t aware of what happens in the basement and this secludes him when others decide to play spontaneously. The intent is to display information that the person needs to know in his room and reduce the need to climb down the stairs often.
The prototype was built using a particle argon
1) First the sensors to be used was determined. The basement always being dark, except for when the someone is playing by the pool table. This made Ldr (photo - resistor) the choice. The cue stick is lifted once from the holder when a person starts to play and placed back when the person is done playing. Piezo discs were used to sense this information
2) The prototype of the display was decided to be made using neopixel
3) The sensors were first connected to the particle independently and coded.
4) The circuit was then integrated with the neopixel and the code was integrated
5) The pattern to display information was then decided
6) The indication for the light being turned at the basement was shown by programming the neopixel to change colors rapidly (signifying the scattering of balls on the pool table during the first shot). When the cue stick was taken from the placeholder, the neopixel was programmed to turn red. This was to reaffirm that there were people intending to play and that the basement light wasn’t turned on for any other purpose.
7) Once the neopixel was coded, the prototype was checked for working, it was found that the ldr triggered the neopixel for smaller values too. The range of value from the ldr above which the neopixel was triggered was increased to eliminate a false alarm.
// This #include statement was automatically added by the Particle IDE.
#include <neopixel.h>
// This #include statement was automatically added by the Particle IDE.
#include <neopixel.h>
// This #include statement was automatically added by the Particle IDE.
#include <neopixel.h>
// IMPORTANT: Set pixel COUNT, PIN and TYPE
#define PIXEL_COUNT 1
#define PIXEL_PIN D7
#define PIXEL_TYPE WS2812B
Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE);
int redValue = 255; // Full brightness for an ANODE RGB LED is 0, and off 255
int greenValue = 255; // Full brightness for an ANODE RGB LED is 0, and off 255
int blueValue = 255; // Full brightness for an ANODE RGB LED is 0, and off 255</td>
int photoCellPin = A0;
int photoCellReading = 0;
//int button = D4;
int piezo = A5;
int b = 0;
void setup()
{
// pinMode(button, INPUT_PULLUP);
// Set up our NEOPIXEL RGB Pin pins for output
strip.begin();
}
void loop()
{
setRGBColor( 255,255,255); // set it to white
// b = digitalRead(button);
b = analogRead(piezo); //read value from piezo sensor
if ( b >800)// checkvalue from piezo sensor
{
setRGBColor( 255,0,0); // set it to red
delay( 3000);
}
if(analogRead(photoCellPin) > 600)
{
setRGBColor( 255,0,0); // set it to red
delay( 100); // wait 2 seconds
setRGBColor( 255,255,0); // set it to yellow
delay( 100); // wait 2 seconds
setRGBColor( 255,127,0); // set it to orange
delay( 100); // wait 2 seconds
setRGBColor( 255,0,255); // set it to magenta
delay( 100); // wait 2 seconds
setRGBColor( 0,255,0); // set it to green
delay( 100); // wait 2 seconds
setRGBColor( 0,255,0); // set it to green
delay( 100); // wait 2 seconds
setRGBColor( 255,105,50); // set it to red
delay( 100); // wait 2 seconds
setRGBColor( 255,55,110); // set it to yellow
delay( 100); // wait 2 seconds
setRGBColor( 55,127,30); // set it to orange
delay( 100); // wait 2 seconds
}
}
// Note that
// Full brightness for an ANODE RGB LED is 0, and off 255
// So we set our RGB values to be 255 - value (invert them)
void setRGBColor( int r, int g, int b ){
redValue = r;
greenValue = g;
blueValue = b;
strip.setPixelColor(0, redValue, greenValue, blueValue);
strip.show();
}
Click to Expand
To make this prototype a product, the system must be built to transfer the information over a longer distance, that is from the basement to the third floor. The product can be further improved by enabling the inmates of the house to signal an intent to play from their rooms to the person with the lamp or using a mobile device. The display should be integrated with a light lamp that the user desires to use by his bed. The purpose of the device can be further added to indicate other information such as the availability of the laundry machine, which the user wants to know.
The device was welcomed by the user it was designed for. He wanted an added functionality that let the others convey to each other the intent to play from their room. He was excited by the possibility that the functionality of the device can be extended to display the availability of laundry machine also.
A hands-on introductory course exploring the Internet of Things and connected product experiences.
The social lamp is a bedside lamp, that aims at creating better social engagements between the inmates of a house. The lamp enables the user to see when the inmates of the house are playing 8 ball pool at the basement.
January 31st, 2019