meshLights are social, wifi-connected lights with flexible LED effects. They were designed for loosely connected, small groups of people (or vehicles) to visually identify each other. Supports up to 6 nodes, with automatic mesh organization and synchronization of LED animation. Leverages FastLED and PainlessMesh projects, and adds leader election, display/effect logic, additional messaging functionality and error checking.
This software has been tested on the Hiletgo ESP-WROOM-32 ESP32 dev boards. There are only a few hardware requirements, but because my implementation was designed to be mobile and robust, I've included optional build materials below too.
- ESP32 2.4GHz Dual-Mode WiFi + Bluetooth Dual Cores Microcontroller - tested with the Hiletgo ESP-WROOM-32 ESP32 dev board. Hiletgo details
- Addressable LED strip (eg. WS2811, WS2812) - tested with WS8212B strands with 30, 60 & 120 LEDs.
Optional hardware components:
- ESP32 DevKitC Wi-Fi and BLE LED Controller - daughterboard which mounts cleanly with the ESP32. Makes it much easier to attach LED strand(s), and to use a barrel power connector.
- To build / upload the code to your ESP32, use Microsoft's VS Code with the PlatformIO extension or Arduino IDE. Both have been tested, and work.
- FastLED - a library for easily & efficiently controlling a wide variety of LED chipsets.
- painlessMesh - a library that takes care of the particulars of creating a simple mesh network using esp8266 and esp32 hardware.
- ArduinoJSON - a C++ JSON library for Arduino and IoT (Internet Of Things).
This project is licensed under the MIT License - see the LICENSE file for details
- thanks to FastLED for the pre-built animations!
- Lots of inspiration and a bit of code from LED Bar Mesh by Carl F Sutter (2017)