MQTT dot matrix display to show information from MQTT topics

wLed panel it’s dot matrix display to show information from MQTT topics. It’s well integrated with Home-assistant and others through MQTT broker.

wled_panel

Ingredients:
  1. Dot matrix display MAX7219
  2. WeMos D1 Mini (esp8266)

Algoritm of work

The display has booting and connecting to wifi, then the display subscribe to MQTT topics and publishing message “up” in MQTT topic wled/status

MQTT topics:
  • wled/zone0_text - main text for zone0
  • wled/zone1_text - sight zone (left segment sun in demo picture ^)
  • wled/intensity - display brightnes [0-15], default 5
  • wled/scrolleffect - scroll effect for zone0, both effect for entry and exit text [send scroll name from list below]
  • wled/scrolleffect_without_exit - scroll effect for zone 0, only entry effect, the text will not go out and still stay on display until new text coming [send scroll name from list below]
Scroll effect list

Default effects:

  • PA_RANDOM
  • PA_PRINT
  • PA_SCAN_HORIZ
  • PA_SCROLL_LEFT
  • PA_WIPE
  • PA_SCAN_VERTX
  • PA_SCROLL_UP_LEFT
  • PA_SCROLL_UP
  • PA_FADE
  • PA_OPENING_CURSOR
  • PA_GROW_UP
  • PA_SCROLL_UP_RIGHT
  • PA_BLINDS
  • PA_CLOSING
  • PA_GROW_DOWN
  • PA_SCAN_VERT
  • PA_SCROLL_DOWN_LEFT
  • PA_WIPE_CURSOR
  • PA_SCAN_HORIZX
  • PA_DISSOLVE
  • PA_MESH
  • PA_OPENING
  • PA_CLOSING_CURSOR
  • PA_SCROLL_DOWN_RIGHT
  • PA_SCROLL_RIGHT
  • PA_SLICE
  • PA_SCROLL_DOWN

Custom effects:

  • PACMAN
  • WAVE
  • ROLL
  • LINES
  • ARROW
  • SAILBOAT
  • STEAMBOAT
  • HEART
  • INVADER
  • ROCKET
  • FBALL
  • CHEVRON
  • WALKER

Custom effects demo video

Icons

For icons, I created a font with several icons to override the regular alphabet. This font applied just only for zone1. You can find a mapping card in wLedFont.h.
You can paint icons whatever you want using this online tool: https://pjrp.github.io/MDParolaFontEditor

Feel free to add new icons and update the existing wLedFont.h in the repository.

Project on GitHub: https://github.com/widapro/pixel_led_mqtt_panel/tree/master
Demo video: https://youtu.be/hIWn9VRI1j4
Video with new animations Text

9 Likes

Awesome ! I was looking for something like this BUT i have to admit that your reaadme on your repo is a bit short. We would need the links for the libraries as well as a short write up how ti compile that. I don’t mean the general way but the libraries needed for this project.

Thank you for your comment, I added dependencies libraries in Readme.
To compile this project you need to install the next libraries in Arduino IDE:

  • PubSubClient
  • MD_MAX72XX
  • MD_Parola (with dependencies)

And also do not forget to choose your type of ESP board in Board Manager. I had compiled with Wemos D1 mini.

Let me know if I can help you more.

Thanks man…that works awesome great …just 9ne question…the icon …do we have a Wiki which icons are possible? I already payed a bit and found some nice …fitting also to messages shown on the matrix

Myour project is one of the smartest projects ever …I now can write with my XMPP Messenger messages to the led matrix as well as showing all kind of information based on events . Thanks so much dude !

Good question! For icons, I created a font with several icons to override the regular alphabet. This font applied just only for zone1. You can find a mapping card in wLedFont.h.
You can paint icons whatever you want using this online tool: https://pjrp.github.io/MDParolaFontEditor

Feel free to add new icons and update the existing wLedFont.h in the repository.

I also updated github with this information.

I saw this info in the GitHub repo and will create some nice icons .I’ll watch into it tonight and make some pull requests. Is it possible to add all icon on the right ? Just ideas but as I am fascinated by your project I wanna push it :wink:

I also saw some nice animations like pqcman somewhere …do you think it’s possible in include those or even planned …don’t abondon this project please I think there’s much more we can do with it

I’ll appreciate any pull requests. Feel free to contribute to this project.

To move icons to the right you need to change zone config like this (for 8 segments display as an example):

void setup() {
  setup_serial();

  P.begin(2);
  // Icons zone in the right
  P.setZone(0, 1, 7);                     // P.setZone(zone_number,start_segmet,end_segment)
  P.setZone(1, 0, 0);                     // P.setZone(zone_number,start_segmet,end_segment)

^^^ I tested this changes:

IMG_9968

I meant more like having icons on both sides

I added 13 new custom animations included pacman. Video with new animations

  • PACMAN
  • WAVE
  • ROLL
  • LINES
  • ARROW
  • SAILBOAT
  • STEAMBOAT
  • HEART
  • INVADER
  • ROCKET
  • FBALL
  • CHEVRON
  • WALKER

Also I a little bit updated logic of work, now you need to send name of scroll effect rather number of effect.

Absolutely great ! Thanks a lot !

I would like to try this project but I have this LED matrix (32x16 outdoor RGB p10 indoor led module):

Module Resolution: 32 X 16 (dots)

How should I configure the segments and display?

Thanks!

Based on the limitation of supporting hardware types I’m not sure if it’s possible to use this display library with an RGB matrix. Your matrix has many more features than this one.
Unfortunately, I didn’t find your display in the supporting hardware list of display library: https://majicdesigns.github.io/MD_MAX72XX/page_hardware.html

But you can add a new display in the library by this manual: https://arduinoplusplus.wordpress.com/2017/04/14/parola-a-to-z-adapting-for-different-hardware/

Ok,
I found this library,

Maybe that can be used instead?

To use this library needs to re-write half of the current project to change logic of communication with the display. I think it should be a new project. Unfortunately, I don’t have this display and I can’t help you with it. You can do it by your self and take from this repo all the logic of working with MQTT for example.

Thank you for sharing a link to aliexpress with this interesting matrix.

1 Like

Super project :slight_smile:

How do I on display the time from the home assistant on my Matrix display so I can go there for seconds? Is it possible to give an example of automation?
Thanks

I have a problem, client MQTT is still connect and immidietly disconnect again again, reset esp again. Please help me

Show one message and diconnect and reset ESP

MQTT hasn’t guaranteed delivery time. It means we can’t use this protocol for sending time each second. In this case, seconds will be changed with different delay each time.
But for display time with hours and minutes why not. In this case delay for 2 seconds doesn’t change anything.

I wrote and tested automation with 2 different time format: EU and US (with AM/PM)

---
- alias: wLed MQTT clock
  initial_state: 'on'
  trigger:
    platform: time_pattern
    minutes: "/1"               # run each 1 minute
  action:
    - service: mqtt.publish
      data:
        topic: wled/scrolleffect_without_exit
        payload_template: "PA_MESH"                     # change time effect
    - service: mqtt.publish
      data:
        topic: wled/zone0_text
        payload_template: "{{ as_timestamp(now()) | timestamp_custom('%H:%M') }}"            # EU time format 23:45
#        payload_template: "{{ as_timestamp(now()) | timestamp_custom('%-I:%M %p') }}"       # US time format 11:45 PM

Also, it would be nice to once send a clock icon to zone1: publish mqtt to topic wled/zone1_text message c

as a result, you will have this kind of wLed clock:

Image