Skip to content

IoT LED Matrix Clock, Weather, Spotify Now Playing, and Newsfeed

Notifications You must be signed in to change notification settings

dylanlanigansmith/matrix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LED Matrix Display IOT Clock

Details:

  • 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
    • 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.
  • 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 :-(

    Gallery:

    Image

    Image

    Image

    Let me assure you it looks better in person

  • The panels altogether are roughly a foot and a half long.
    • Quite well suited for viewing from across the room..

Code

  • 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
  • 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!)

About

IoT LED Matrix Clock, Weather, Spotify Now Playing, and Newsfeed

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published