OctaLight is a DIY project. It consists of an led strip wired in an octagon shape with a cross in the middle of it. It is powered by a NodeMCU chip with WiFi capabilities. Through implementation of a simple HTTP server, the light reacts to GET requests. It can be controlled via the in-built web control panel and has Google Smarthome support (see the library docs for details).
Required libraries:
Route | Description | Arguments | Response | |
* | page=[true | false] | Whether to respond with the control panel. | success or error message | |
/ | Show the control panel. | control panel | ||
/get | Get the average light color. | color in RRGGBBWW | ||
/on | Set the light color to a warm white. | |||
/off | Set the light color to black (off). | |||
/color | Set the light color. | color=[RRGGBBWW] (required) | The color. | |
transition=[int] | The transition time in ms. | |||
mode=[all | inner | outer] | Where to set color. | |||
/alternate | Alternating circles animation of different colors on the outer pixels. | colors=[RRGGBBWWRRGGBBWWRR...] (required) | The colors. | |
duration=[int] | Duration for one color in ms. | |||
inner=[RRGGBBWW] | The color on the inner pixels. | |||
cycles=[int] | Cycle count. "-1" for infinity. | |||
/ripple | Ripple animation from in to out of different colors. | colors=[RRGGBBWWRRGGBBWWRR...] (required) | The colors. | |
duration=[int] | Duration for one color in ms. | |||
cycles=[int] | Cycle count. "-1" for infinity. | |||
/spectrum | Waving through the RGB spectrum. | duration=[int] | Duration for one cycle in ms. | |
cycles=[int] | Cycle count. "-1" for infinity. | |||
/randomness | Random colors on all pixels. | frequency=[int] | Number of new random pixels per second. | |
/starlight | A sky full of stars. | color=[RRGGBBWW] | Pixel color. | |
frequency=[int] | Number of pixel switches per minute. | |||
max=[int] | Maximum number of pixels on at the same time. | |||
/stroboscope | Fast-flashing stroboscopic light. | colors=[RRGGBBWWRRGGBBWWRR...] (required) | The colors. | |
frequency=[int] | Number of flashes per second. | |||
blacks=[int] | Number of black phases between flashes. | |||
mode=[random | random_spectrum | order] |
The ordering mode of the colors. |
Pixel zero is situated at the controller and the outer pixels (red) range counterclockwise back to it. From there the inner pixels (green) form a bow. Not all the strips can be connected directly: There has to be a cable connection to connect the two inner strands (black-green).
More information can be found on the project website