Skip to content

eighthree/Simple-LED-Strip-Controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple LED Strip Controller 2.0

  • Control an LED light strip via a web browser
  • Allow configuration of device wifi settings via AP
  • Serves a light browser-based controller with simple CSS for functionality
  • Supports Homekit via Homebridge
  • WS2812FX Library for led animations & control

Controller Dashboard

Status | Hardware | Software Setup | HomeKit | Examples | License

Status

2.0

1.x

  • No longer supported, 2.0 is backwards compatible just make sure to update the configuration.

Hardware

Requirements

  • 1x ESP8266 *
  • 1x WS2812b/SK6812 LED Strip or "Neopixel" LED Strip

Tested On

  • NodeMCU 1.0
  • Wemos D1 R2

Hardware Setup

Adafruit has written a detailed guide on NeoPixels along with best practices and code examples: https://learn.adafruit.com/adafruit-neopixel-uberguide/overview

Software Setup

  1. Download and install Arduino 1.8.5 IDE and the libraries listed below using the library manager (Sketch -> Include Library -> Manage Libraries)
  2. Perform 'ESP8266 Sketch Data Upload' to upload minified jscolor js library
  3. Edit config.h
  4. Compile and upload sketch (80/160MHz, LwIP Variant v1.4 Prebuilt)
  5. Hit the reset button twice to enable wifi manager, connect to the new access point (default: ledstrip) and setup wifi for the device.
  6. Open browser to http://ledstrip.local , the page will reload once the first time you visit it on any device. Modes buttons should appear on refresh.
  7. Eat cake.

Libraries

This project is a light weight LED Strip controller. Want multi-client, MQTT & OTA support? Check out/support this excellent project:

HomeKit

Install https://github.com/nfarina/homebridge on a Raspberry Pi or similar and install this accessory https://github.com/metbosch/homebridge-http-rgb-bulb

The address for the LED strip is ledstrip.local, you should probably change this in config.h to something else if you are planning to have more than one installation.

Sample Homebridge Accessory Config

{
 "set_url": "http://ledstrip.local/rgb?color=0x%s",
 "get_url": "http://ledstrip.local/rgb?format=hex",
 "http_method": "GET",
 "manufacturer": "github.com/eighthree",
 "model": "Simple LED Strip",
 "serial": "VULPEio-001"
}

Usage Examples

Expand functionality by using the LED strip as a visual notification tool.

Colour Sensor to LED Strip (Micropython)

examples/rgb_sensor_example.py

  • Capture object RGB value and update LED strip via HTTP GET
  • Tested on Micropython 1.9.2 running on a NodeMCU 1.0

MAX4466 "Washer/Dryer" Notification (Arduino)

examples/mic_sensor_example/mic_sensor_example.ino

  • Sample ambient sound and update LED strip via HTTP GET when washer/dryer is done
  • Tested on Arduino 1.8.3 running on a NodeMCU 1.0

License

This code is public domain. You can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation. http://www.gnu.org/licenses/. Certain libraries used may be under a different license.