You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Matteo Benedetto 420ac53b1e Fix image file extension in README for correct display 11 months ago
.vscode Add initial project structure and functionality for LED matrix display 11 months ago
images Refactor code structure for improved readability and maintainability 11 months ago
include Add initial project structure and functionality for LED matrix display 11 months ago
lib Add initial project structure and functionality for LED matrix display 11 months ago
src Update project structure: add README and example credentials, remove sensitive credentials file 11 months ago
test Add initial project structure and functionality for LED matrix display 11 months ago
.gitignore Update project structure: add README and example credentials, remove sensitive credentials file 11 months ago
README.md Fix image file extension in README for correct display 11 months ago
platformio.ini Add initial project structure and functionality for LED matrix display 11 months ago

README.md

LED Matrix Monitor 2

A customizable LED matrix display project using ESP32 and MAX7219 LED matrix modules. This project creates a "Matrix"-style rain effect combined with a functional digital clock that synchronizes time via WiFi/NTP.

LED Matrix Monitor 2

Features

  • Matrix-style falling characters rain effect
  • WiFi connectivity for automatic time synchronization with NTP servers
  • Digital clock display with seconds progress bar
  • Customizable text display (scrolling and centered)
  • Configurable LED brightness
  • Modular code architecture for easy expansion

Hardware Requirements

  • ESP-WROOM-32 development board
  • MAX7219 LED matrix modules (4 units in cascade, 8x8 each)
  • Power supply for the ESP32 and LED matrices
  • Connecting wires

Wiring

ESP32 Pin MAX7219 Pin
5 CS
23 DIN
18 CLK
GND GND
5V VCC

Software Dependencies

  • Arduino framework for ESP32
  • MD_MAX72XX library for controlling MAX7219 LED matrices
  • WiFi library for connectivity
  • Time library for handling time functions

Installation

  1. Clone this repository or download the source code
  2. Open the project in PlatformIO IDE
  3. Create a credentials.h file in the /src directory with your WiFi credentials:
#ifndef CREDENTIALS_H
#define CREDENTIALS_H

#define WIFI_SSID "your_wifi_ssid"
#define WIFI_PASSWORD "your_wifi_password"
#define NTP_SERVER "pool.ntp.org"
#define GMT_OFFSET_SEC 3600  // Change based on your timezone (3600 = +1 GMT)
#define DAYLIGHT_OFFSET_SEC 3600  // Change if daylight saving time is in effect

#endif
  1. Build and upload the project to your ESP32

Usage

Once powered up, the device will:

  1. Connect to WiFi and sync time with NTP servers
  2. Display a "MATRIX" welcome message
  3. Show the matrix rain effect
  4. Periodically display the current time with a seconds progress bar on the bottom row

Configuration Options

Customize the project by adjusting these parameters in main.cpp:

  • MAX_DEVICES: Number of connected 8x8 LED matrices (default: 4)
  • MAX_BRIGHTNESS: Maximum LED brightness level (0-15)
  • Pins for connecting MAX7219 modules to the ESP32:
    • CS_PIN: 5
    • DIN_PIN: 23
    • CLK_PIN: 18

Code Organization

The code is organized into modules to improve maintainability:

  • /src/main.cpp: Main program entry point
  • /src/effects/matrix_rain.*: Matrix rain effect implementation
  • /src/display/text_display.*: Text display functions
  • /src/utils/wifi_manager.*: WiFi and NTP connectivity
  • /src/utils/time_utils.*: Time formatting and utilities
  • /src/fonts/font5x7.h: Font definition for the display

License

This project is provided as an open-source example for educational purposes.

Acknowledgments

  • Inspired by the digital rain effect from "The Matrix" movie
  • Built with PlatformIO IDE for seamless development