-
Using an old ESP32 and 3 very old HT1632 8x32 LED matrix panels
- Originally created ~2011 for a Make Magazine project, and has been [updated over the years to its current form
-
Features:
- Spotify Integration:
- Start playing a song and the sign automatically switches to act as a "now playing" display
- Displays song information and live duration
- Used to scrape lyrics as well but haven't ported that feature to this version yet
- Headlines:
- Using NewsAPI to find and scrape headlines
- Configurable sources and topics for these headlines
- Day to day, I have it pull a bunch of headlines every hour, and display a few every 10-15 minutes
- Free for under 1000/requests a day
- Using NewsAPI to find and scrape headlines
- Weather
- Determines city and rough geographical coordinates from IP via ipwhois.io API at startup
- Uses OpenMeteo for Weather information
- Automatic updates every 15 minutes
- WIP: custom icons for different forecasts (cloudy, snow, etc)
- Clock
- NTP based timekeeping
- In the end, it's an overengineered digital clock, what else can I say?
- WIP: fun clockfaces like Conway's Game of Life, animations, etc.
- Spotify Integration:
-
Currently for the last 10-12 years has been enclosed in an old set of blinds,
- One of these days I'll finish the enclosure... right?
- Would love to add one more panel but you can't get these matrix displays w/ the same driver IC anymore :-(
- One of these days I'll finish the enclosure... right?
- The panels altogether are roughly a foot and a half long.
- Quite well suited for viewing from across the room..
-
Should really be rewritten from scratch
- Tech debt from using the same modded HT1632 lib for 10+ years
- Originally for an older Arduino, could really be faster/more efficient
- Ideally should use RTOS / task based approach and better queuing for different tasks / states accessing the display
- Tech debt from using the same modded HT1632 lib for 10+ years
-
WebUI needs a finished settings page
-
WiFI credentials are saved to flash, see <matrix/data/config.json> or the NetworkManager class.
- on the event of WiFi failure, the matrix hosts a wifi, you can join and set the SSID/pwd there...
- no UI for this yet, TODO
- TODO: cleanup and move NetworkManager into its own library for use in other personal projects
-
Boy do I love ESP OTA updates, makes development fun not fiddling with USB->FTDI cables and reset buttons.
- Noticing a bug, quickly fixing it, and having Platform.IO uploading a patch automatically post-compilation makes for fantastic workflow
-
One must configure api_config.hpp with their own API credentials
- will instead save these to SPIFFS or something in near future, before I accidentally somehow commit API tokens again.. (VSCode overwrote my .gitignore a few weeks ago and I got to learn how to edit the history of git repositories as a result!)