Full RGB LED matrix, based on an ESP32 and WS2812B LEDs.
- PIXELIX
- Motivation
- Overview
- Very First Startup
- User Interface
- Documentation
- Used Libraries
- FAQ
- Issues, Ideas And Bugs
- License
- Contribution
I want to have a remote display to show multiple kind of information, running 24/7 reliable. Connected over wifi to the local network, it can be controlled via REST API or websocket.
Some impressions | |
---|---|
... |
- ESP32 DevKitV1
- WS2812B 5050 8x32 RGB Flexible LED Matrix Panel
- Power supply 5 V / 4 A
- Rough overview
If the device starts the very first time, the wifi station SSID and passphrase are empty. To be able to configure them, start the device and keep the button pressed. The device will start up as wifi access point with the default SSID "pixelix" and the default password "Luke, I am your father.". The display itself will show the SSID of the webserver.
Connect to the captive portal and configure via webinterface the wifi station SSID and passphrase. Restart and voila!
- The user button activates always the next slot.
- If the display is at a place, which is hard to reach, the virtual user button can be used. It is controllable via REST API and perfect for remote buttons like the Shelly Button 1.
- If a LDR is connected, the display brightness is automatically adapted.
- The web interface provides the possibilty to install plugins, control their duration in the slots and etc.
- Some plugin's spawn a dedicated REST API, see the web page of the plugin or have a look to the REST API documentation.
Note, the websocket interface is currently only used as a service in the web interface.
For more information, see the documentation.
- Arduino - ESP32 Arduino framework - Apache-2.0 License
- NeoPixelBus - Controlling the LED matrix with hardware support (RMT) - LGPL-3.0 License
- ESPAsyncWebServer - Webserver - LGPL-2.1 License
- AsyncTCP - TCP library - LGPL-3.0 License
- ArduinoJson - JSON handling - MIT License
- StreamUtils - Stream utilities - MIT License
- Bootstrap - CSS Framework - MIT License
- POPPER JS - POPPER JS - MIT License
- jQuery - Javascript librariy for DOM handling - MIT License
First adapt in ./src/HAL/Board.h
the width and height according your LED matrix.
In the ./src/Gfx/LedMatrix.h
file you have to change the member variable m_topo according to your physical panel topology. Take a look how your pixels are wired on the pcb and use the following page to choose the right one: https://github.com/Makuna/NeoPixelBus/wiki/Layout-objects
If you have further ideas or you found some bugs, great! Create a issue or if you are able and willing to fix it by yourself, clone the repository and create a pull request.
The whole source code is published under the MIT license. Consider the different licenses of the used third party libraries too!
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, shall be licensed as above, without any additional terms or conditions.