widapro / wledPixel

Dot matrix panel management
MIT License
73 stars 12 forks source link

wledPixel

ESP32 or ESP8266 and MAX7219 dot matrix display management

img img

The latest firmware version can be found in Releases

Supported key features:

  1. Home Assistant client [display sensor values]
  2. OpenWeatherMap client [display: temperature (C/F), humidity, pressure, wind speed, weather icon]
  3. MQTT client [each display zone support own topic]
  4. Display controll through MQTT
  5. Wall NTP clock [NTP sync clock]
  6. Manual input
  7. Full controll through web UI
  8. Home Assistant MQTT discovery [When MQTT settings specified, device will be automatically send discovery message to HA]
  9. Control display as light in Home Assistant [MQTT setup required]
  10. Initial setup through wifi AP and web UI
  11. Support 3 independent display zones
  12. Support up to 12 display segments at the same time [configured in web UI]
  13. Included 3 different fonts
  14. Plus symbols font
Ingredients:
  1. Dot matrix display MAX7219, something like this: https://aliexpress.com/item/32618155357.html
  2. ESP32 or WeMos D1 Mini (ESP8266), something like this: https://aliexpress.com/item/32651747570.html

Web UI - Settings

img

Firmware compiled with next parameters:

ESP32

// Display pinout
#define DATA_PIN  23         // ESP32 GPIO23
#define CS_PIN    5          // ESP32 GPIO5
#define CLK_PIN   18         // ESP32 GPIO18

// Ds18b20 pinout
const int oneWireBus = 4;    // ESP32 GPIO04

ESP8266

// Display pinout
#define DATA_PIN  D7         // WeMos D1 mini or ESP8266 -> GPIO13
#define CS_PIN    D6         // WeMos D1 mini or ESP8266 -> GPIO12
#define CLK_PIN   D5         // WeMos D1 mini or ESP8266 -> GPIO14

// Ds18b20 pinout
const int oneWireBus = D4;   // WeMos D1 mini or ESP8266 -> GPIO02

Wiring

img

First boot:

  • Device will boot in wifi access point mode and write the wifi name and password on the display.
  • AP wifi name: wledPixel-[short MAC address]
  • AP wifi password: 12345678
  • Connect to this AP and configure your wifi settings (connect to your wifi network)
  • When the device connects to the WIFI network, the device's IP address will be displayed on the zone0
  • Open the browser and go to the device IP address

API

/api/temperature      - get measured temperature from connected ds18b20 sensor

Icons in Wled symbol font:

Icons in Wled symbol font
1 - "X"
2 - "stop"
3 - "rain"
4 - "ip:"
8 - "full light segment"
A - "calendar"
B - "windows"
C - "clouds"
D - "door"
E - "female"
F - "snowflake"
G - "key"
H - "male"
I - "alarm"
J - "clock"
K - "garbage"
L - "info"
M - "moon"
N - "message"
O - "reminder"
P - "wifi"
R - "huge rain"
S - "sun"
T - "thunderstorm"
c - "cloud"
f - "fog"
m - "cloud and moon"
r - "rain"
s - "sun and cloud"
° - "degree symbol"

MQTT topics:

where devicePrefix = wledPixel-A071 zoneN = zone number (e.g. Zone0)

Supported workMode:

workMode supported values:

Wall clock

Wall clock mode support next following display options:

Scroll effect list

Default effects:

Home Assistant automation example:

Send sensor value each time when a value has been changed

---
- alias: Outside temp change - send new temp to wled panel mqtt
  initial_state: 'on'
  trigger:
    platform: state
    entity_id: sensor.outside_thp_sensor_3
  action:
    - service: mqtt.publish
      data:
        topic: wledPixel-A071/zone0/text
        payload_template: "{{ states('sensor.outside_thp_sensor_3') }} C"

Change wledPixel-A071 to device name with your prefix