No description
Find a file
2018-12-12 10:43:28 +01:00
Arduino/McLighting Update version_info.ino 2018-12-11 22:28:03 -05:00
clients Added new config value "service" 2018-11-20 21:28:31 +01:00
documentation Thicker tracks for 5V and GND lines 2018-05-14 15:59:33 -04:00
.gitignore Update .gitignore 2018-12-03 16:37:58 -05:00
.gitmodules add a symbolic link to index.htm and index2.html with the respective submodule 2018-11-06 11:12:34 -05:00
LICENSE Changed licence to MIT 2018-11-20 22:40:26 +01:00
NEWS.md README cleanup 2018-12-12 10:43:28 +01:00
platformio.ini HA 0.84 autodiscovery update 2018-12-11 10:30:31 -05:00
README.md README cleanup 2018-12-12 10:43:28 +01:00

McLighting v2 - The ESP8266 based multi-client lighting gadget

Gitter

Mc Lighting (the multi-client lighting gadget) is a very cheap internet-controllable lighting solution based on the famous ESP8266 microcontroller and WS2811/2812 led strips. It features a self-hosted responsive web-interface, a REST-API and a websocket connector.

Because of it's open architecture and APIs it's easy to build new clients for different platforms (iOS, Android, Windows Universal Apps, Siri/Cortana integration, ...).

Demo video WebClient

Demo video Apple Homekit integration


The Hardware

The project ist based on the famous ESP8266 microcontroller and WD2811/WS2812 LED strips. There are many variations of the ESP chip out there, but I chose the NodeMCU dev board, because it's powered by micro USB and has a voltage converter included to power the ESP which uses 3.3V. A standalone ESP8266 or a Adafruit Huzzah should work too.

The RGB LED strips are also available in many different flavours as strip or as standalone LEDs and can easily be chained.

See wiki Hardware

Software installation

See wiki Software installation

Used Libraries

This project uses libraries and code by different authors:

  • WiFiManager by tzapu (tested with version 0.12.0)

  • WS2812FX by kitesurfer1404 (tested with version downloaded 2017-02-05)

  • WebSockets by Links2004 (tested with version 2.0.6)

  • Adafruit NeoPixel by adafruit (tested with 1.1.2)

  • Optional: PubSubClient by knolleary (tested with 2.6.0) Only when you have activated MQTT in definitions.h.

The sketch also uses the following built-in library:

Parts of the code were taken or inspired by the following sources:

Thank you to all the authors for distributing their software that way. I hope I didn't miss any sources and mentioned every author. In case I forgot someone please let me know and I will fix it.

Todos

  • MQTT support
  • Support multiple strips and control them separately or together #118
  • Save favourite effects? Issue
  • Make number of pixels, MQTT and PIN configurable via front end Issue and Issue
  • OTA update Issue
  • Bundle webpages instead of SPIFFS Issue
  • Remove old / wrong EEPROM settings completely (https://github.com/toblum/McLighting/issues/92)
  • Fix issue with websockets connection problems
  • Switch to the NeoPixelBus library
  • Use the led strip for status information in connection phase
  • Enhance the documentation
  • Stability improvements
  • RGBW mode Issue
  • Add called command to response Issue
  • Customer profile to define segments of (in)active areas on the strip Issue
  • Button control Issue
  • Retain last state Issue
  • Additional clients
  • If no wifi, at least enable button mode.
  • Also enable McLighting in Wifi AP mode.
  • Make a set of NodeRed nodes.
  • IR remote support issue
  • Multiple buttons/GPIO Inputs. Issue
  • Music visualizer / Bring back ArtNet Issue
  • Display version and parameters (Number of LEDs, definition settings, ..) in the web UI Issue

Licence

MIT

Disclaimer

You use this project at your own risk. This is not a solution that should be used in productive environments, but this code and guide could give you a quick start for your own experiments. Please keep also in mind that there are currently some security features missing.

More information will be added as soon as I clean up the code and complete documentation.