Things used in this project

Hardware components:
Core
Particle Spark Core
×1
Adafruit Neo Pixel - 4 pack - Breadboard friendly
×1
Adafruit 8 channel - Bi-directional Logic Level Converter
×1
LED Glow Orb
Buy this on amazon and gut the electronics. The translucent shell works really great!
×1
Software apps and online services:
Heroku
Firebase
Hand tools and fabrication machines:
09507 01
Soldering iron (generic)

Schematics

Picture of circuit
Img 3584

Code

Particle codeC/C++
Paste this code into the Particle IDE for your project
#include "neopixel/neopixel.h"

// IMPORTANT: Set pixel COUNT, PIN and TYPE
#define PIXEL_PIN D2
#define PIXEL_COUNT 4
#define PIXEL_TYPE WS2812B

Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE);

int r = 0;
int g = 0;
int b = 0;

void setup() 
{
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
}
void loop() 
{
   Spark.function("color", ledControl);
   if (r == 0 && b == 0 && g == 0) {
     rainbow(20);
   }
}

int ledControl(String command){
  int i;
  String rs = String(command.substring(0,3));
  String gs = String(command.substring(3,6));
  String bs = String(command.substring(6));
  r = (int)rs.toInt();
  g = (int)gs.toInt();
  b = (int)bs.toInt();
  for(i=0; i<strip.numPixels(); i++) {
    strip.setPixelColor(i, strip.Color(r,g,b));
  }
  strip.show();
  return 1;
}

void rainbow(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256; j++) {
    for(i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel((i+j) & 255));
    }
    strip.show();
    delay(wait);
  }
}

// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  if(WheelPos < 85) {
   return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  } else if(WheelPos < 170) {
   WheelPos -= 85;
   return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  } else {
   WheelPos -= 170;
   return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
}
Orby Hue App
This is the code you'll need to run on heroku (or other service) if you want a webUI to change the color of your orb

Credits

43358b1dc76c91f999cd7258873dbcb8
Brian Chamberlain

Software Engineer and Hardware Hacker

Contact

Replications

Did you replicate this project? Share it!

I made one

Love this project? Think it could be improved? Tell us what you think!

Give feedback

Comments

Similar projects you might like

ArduRadio AlarmClock
Intermediate
  • 1,320
  • 2

Full instructions

Build an FM radio with alarm clock.

ConnectTheDots with Particle Azure IoT Hub Integration
Intermediate
  • 491
  • 6

Protip

This project will allow you to connect your Particle device into an Azure IoT Hub for viewing data in real-time through an ASP.NET web app!

Other Clocks
Intermediate
  • 174
  • 3

Work in progress

A combination of 3 different clocks in one frame.

Cat Door with Pet Recognition
Intermediate
  • 4,382
  • 21

Full instructions

Use object detection to let your cat in and out of the house with a motion-activated pet door.

Web-Based Voice-Controlled Robot!
Intermediate
  • 51
  • 1

Full instructions

Add voice control to your Arduino robot!

Simple Digital Voltmeter Circuit with PCB using ICL7107
Intermediate
  • 36
  • 1

Here I built a simple digital voltmeter circuit with a PCB using ICL7107.

ProjectsCommunitiesTopicsContestsLiveAppsBetaFree StoreBlogAdd projectSign up / Login