MeshyMcLighting: NeoPixels lighting solution using Mesh Network

Idea: Wouldn’t be cool for many McLighting (RGB LED lighting using NeoPixels) to talk to each other and synchronize?

Implementation: Here is my naive attempt at this, which requires McLighting to be served as stand-alone web-client.

Link: https://github.com/toblum/McLighting/tree/experimental/Arduino/MeshyMcLighting

Features

  • Uses painlessMesh to create mesh network and broadcasts state to every node
  • Does not need WiFi connection to internet, standalone mode + mesh
  • Web interface is borrowed from “WS2812FX esp8266” example, completely served on ESP8266
  • Can do minimal file upload to SPIFFs
  • Completely Async!
  • Uses Task Scheduler, no more tickers
  • No delays in entire code
  • Has RESTful API (same API as McLighting, use set_mode for setting mode, speed, brighness)
  • Async Websockets (ws://HOSTNAME/ws on port 80, same API as McLighting)
  • Async MQTT/Home Assistant Intergration (Only SERVER connects to outside world)
  • Auto Mode (same as McLighting)
  • Button Mode (same as McLighting)
  • Async WiFiManager for SERVER

Limitations/TODO

  • For stability, compile both SERVER and CLIENTS on IwIP variant 1.4 Higher Bandwidth (very flaky in IwIP v2)
  • Use Arduino ESP8266 GIT version (Issues with v2.4.1: not memory optimized)
  • WS2812FX has delays meant for ESP32. Track issue here NeoAnimationFX has no delays.

Leave a Reply

Your email address will not be published. Required fields are marked *