48 lines
1.8 KiB
Markdown
48 lines
1.8 KiB
Markdown
# ESP32 Matrix Clock
|
|
A Wi-Fi-enabled LED matrix clock with weather integration and web-based controls.
|
|
|
|
## Features
|
|
- Time Display: Precise time synchronization via NTP.
|
|
|
|
- Weather Integration: Automatically fetches and scrolls current temperature and weather conditions from OpenWeatherMap every 10 minutes.
|
|
|
|
- Web-Based Control: A responsive dashboard allows you to:
|
|
|
|
- Toggle power.
|
|
|
|
- Adjust brightness via slider.
|
|
|
|
- Cycle weather updates ON/OFF.
|
|
|
|
- Toggle Daylight Saving Time (DST).
|
|
|
|
- Force Night Mode for low-light environments.
|
|
|
|
- Push custom text messages to the display.
|
|
|
|
- Smart Automation: Includes automatic brightness scaling based on a set night-mode schedule.
|
|
|
|
## Hardware Requirements
|
|
- Microcontroller: ESP32 Development Board (e.g., ESP32 DevKit V1).
|
|
|
|
- Display: 4-in-1 MAX7219 LED Matrix Module (or 4 individual 8x8 modules daisy-chained).
|
|
|
|
- Wiring: Jumper wires (Female-to-Female typically used for the matrix connections).
|
|
|
|
- Power: 5V Power Supply (Note: If using 4+ modules, it is highly recommended to power the matrix directly from a 5V source rather than the ESP32's 3.3V pin to prevent instability or brownouts).
|
|
|
|
## Wiring
|
|
- DATA: GPIO 13
|
|
- CS: GPIO 14
|
|
- CLK: GPIO 15
|
|
|
|
## Library Requirements
|
|
To compile this project, the following libraries must be installed in your Arduino IDE (navigate to Sketch > Include Library > Manage Libraries... and search for these names):
|
|
|
|
- MD_MAX72xx (by MajicDesigns): Handles the low-level LED matrix driver.
|
|
|
|
- MD_Parola (Optional but recommended): Often used alongside MD_MAX72xx for easier text effects, though this project uses pure MD_MAX72xx.
|
|
|
|
- NTPClient (by Fabrice Weinberg): Used to sync the time from the internet.
|
|
|
|
- ArduinoJson (by Benoit Blanchon): Required to parse the JSON data returned by the OpenWeatherMap API. |