This tutorial is part of: Matrix LED ESP32-S3 RGB
Iṣẹ́ àkànṣe láti ṣẹ̀dá fún àwọn ohun èlò ìgbádùn àti ìwúlò nípa lílo module ESP32-S3 RGB Matrix. Àwọn ìjápọ̀ sí àwọn fídíò mìíràn wà ní ìsàlẹ̀ àpilẹ̀kọ yìí.
Iṣẹ́ Aago Internet Matrix LED RGB ESP32-S3 - Àfihàn Aago àti Ọjọ́ ní Àwọ̀ púpọ̀ 2
Aago ESP32-S3 RGB NeoMatrix Intanẹ́ẹ̀tì pẹ̀lú Àkókò & Ọjọ́ Ìfihàn
Iṣẹ́ yìí jẹ́ aago Intanẹ́ẹ̀tì ESP32-S3 RGB Matrix tí ó gbéṣẹ́, tí kì í ṣe àkókò lọ́wọ́lọ́wọ́ nìkan ṣùgbọ́n tí ó tún máa ń fi ọjọ́ hàn lọ́pọ̀ ìgbà. ESP32-S3 ń sopọ̀ mọ́ Wi-Fi, ó ń mú àkókò láti NTP server, ó sì ń yí HH:MM tàbí ọjọ́ (fún àpẹẹrẹ SEP 21) káàkiri lórí 8×8 RGB NeoMatrix. Ìfihàn náà ń ṣe àtúnṣe ìmọ́lẹ̀ ọjọ́/òru fúnrarẹ̀ àti àwọn àwọ̀ RGB tí a lè ṣètò.

Ohun tí aago yìí ń ṣe
Lẹ́yìn tí ó bá sopọ̀ mọ́ nẹ́tíwọ̀kì Wi-Fi rẹ, ESP32-S3 ń gba àkókò àdúgbò lọ́wọ́lọ́wọ́ láti orí Íńtánẹ́ẹ̀tì. Aago náà máa ń yí àkókò ká, ṣùgbọ́n ní àkókò tí a yàn, ó máa ń yí padà láti fi ọjọ́ hàn. Àwọ̀ ọ̀rọ̀ lè jẹ́ àwọ̀ kan tí ó dúró ṣinṣin tàbí kí ó yí padà láìdáwọ́ dúró láàárín ọ̀pọ̀ àwọ̀ tí olùṣàmúlò yàn. Ìmọ́lẹ̀ máa ń dín kù ní alẹ́ láti jẹ́ kí ìfihàn náà rọrùn lójú.
Àwọn ilé-ìkàwé tí a lò
Sketch yìí dá lórí àwọn ilé-ìkàwé wọ̀nyí:

#include <WiFi.h>
#include "time.h"
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
Fi Adafruit NeoMatrix sọ̀rọ̀ láti Arduino Library Manager. Gbogbo àwọn ohun tí ó wúlò bíi Adafruit GFX Library àti Adafruit NeoPixel yóò fi sílẹ̀ fúnrarẹ̀.

Ìṣètò olùṣàmúlò pàtàkì
Wi-Fi SSID àti ọ̀rọ̀ìpamọ́ (ó ṣe pàtàkì fún àwọ̀)
Ó gbọ́dọ̀ rọ́pò àwọn ìdánimọ̀ Wi-Fi pẹ̀lú àlàyé nẹ́tíwọ̀kì tirẹ:

const char* WIFI_SSID = "WiFi";
const char* WIFI_PASSWORD = "passW0rd";
Pàtàkì: Wi-Fi SSID jẹ́ pàtàkì fún àwọ̀. Fún àpẹẹrẹ, SSID tí a ń pè ní "Book" kì í ṣe kannáà pẹ̀lú "book". Bí àwọ̀ kò bá bá a mu dé ọ̀nà, ESP32 yóò kùnà láti sopọ̀.
NTP server, agbègbè àkókò, àti ìgbà ọ̀sán
Aago náà ń lo olùpèsè àkókò orí Íńtánẹ́ẹ̀tì:
const char* ntpServer = "pool.ntp.org";
A ṣe ìṣirò àkókò àdúgbò pẹ̀lú àwọn ìyàtọ̀ wọ̀nyí:
const long gmtOffset_sec = -5 * 3600;
const int daylightOffset_sec = 3600;
gmtOffset_sec: Ìyàtọ̀ UTC rẹ ní ìṣẹ́jú àáyá (àpẹẹrẹ: UTC-5 =-5 * 3600)daylightOffset_sec: Lo3600fún DST tàbí0bí a kò bá lo DST
A ń lo àwọn ètò wọ̀nyí pẹ̀lú:
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
Ìṣàkóso ìmọ́lẹ̀ (ọjọ́ / òru)
Iṣẹ́ yìí ń ṣe àtúnṣe ìmọ́lẹ̀ fúnrarẹ̀ nípa lílo wákàtí ọjọ́:
const int DAY_BRIGHTNESS = 40;
const int NIGHT_BRIGHTNESS = 5;
const int NIGHT_START_HOUR = 22;
const int NIGHT_END_HOUR = 6;
Láàárín 10 PM àti 6 AM, a máa ń dín ìmọ́lẹ̀ kù láti jẹ́ kí ìfihàn náà má ṣe àfọ̀rọ̀dàwọ̀n ní àwọn ibi tí ó ṣókùnkùn. O lè ṣe àtúnṣe àwọn iye wọ̀nyí láti bá ìfẹ́ rẹ mu.
Ìṣètò àwọ̀ RGB
Aago náà ń ṣe àtìlẹ́yìn fún àwọn àwọ̀ tí ó dúró ṣinṣin àti yíyí àwọ̀ padà fúnrarẹ̀. A máa ń fi àwọn àwọ̀ RGB tí olùṣàmúlò yàn sínú ọ̀nà àkójọpọ̀:
uint8_t userColors[][3] = {
{17, 43, 171}, // Light Blue
{255, 0, 0}, // Red
{0, 255, 0}, // Green
{255, 165, 0}, // Orange
{255, 0, 255} // Magenta
};
Àwọ̀ kọ̀ọ̀kan ń lo àwọn iye RGB (Red, Green, Blue) tí ó wà láàárín 0 sí 255. Nípa yíyí àwọn nọ́ńbà wọ̀nyí padà, o lè dá àwọ̀ èyíkéyìí fún ìfihàn náà. Bí useFixedColor bá jẹ́ true, aago náà máa ń lo àwọ̀ kan nígbà gbogbo. Bí ó bá jẹ́ false, àwọ̀ náà máa ń yí padà fúnrarẹ̀ lẹ́yìn gbogbo yíyí káàkiri tí ó parí.
Láti rí àwọn iye RGB tí ó pé dé ọ̀nà fún àwọ̀ èyíkéyìí tí o fẹ́, lo ẹ̀rọ̀ RGB Color Picker Color Picker .
Ìṣètò àkókò àti ọjọ́
A ṣe àkókò náà ní HH:MM àti a fi pamọ́ sínú àkójọpọ̀ ohun kikọ kékeré. A ṣe ọjọ́ náà ní ọ̀rọ̀ tí ó wà ní àwọ̀ ńlá bíi SEP 21. Ìfihàn náà máa ń yí padà láàárín àkókò àti ọjọ́ ní àkókò tí a yàn.
Ìṣiṣẹ́ yíyí káàkiri lórí ìfihàn 8×8
Nítorí pé matrix 8×8 kéré jù láti fi gbogbo ọ̀rọ̀ hàn ní ẹ̀ẹ̀kan, sketch náà ń yí ọ̀rọ̀ náà ká ní ọ̀nà pẹ̀tẹ́lẹ̀. Ní kété tí ọ̀rọ̀ náà bá kúrò pátápátá lórí ìfihàn, a máa ń mú àwọ̀ náà padà, àti àkókò náà máa ń yí padà láàárín àkókò àti ọjọ́ nígbà tí ó bá pọn dandan.
Ìfihàn
Lẹ́yìn gbígbé sketch náà sílẹ̀:
- ESP32 ń sopọ̀ mọ́ Wi-Fi
- A ń mú àkókò láti orí Íńtánẹ́ẹ̀tì
- Àkókò lọ́wọ́lọ́wọ́ ń yí káàkiri lórí matrix
- Ọjọ́ máa ń hàn lọ́pọ̀ ìgbà
- Ìmọ́lẹ̀ máa ń ṣe àtúnṣe fún ọjọ́ àti òru fúnrarẹ̀
Àwọn àkójọpọ̀ àti àwọn ọ̀nà àṣopọ̀
Kóòdù orísun pátápátá wà ní ìsàlẹ̀ àpilẹ̀kọ yìí. Àwọn ọ̀nà àṣopọ̀ sí àwọn ẹ̀yà, irinṣẹ́, àti àwọn iwe àkọsílẹ̀ wà ní ìsàlẹ̀ àpilẹ̀kọ yìí pẹ̀lú.
This tutorial is part of: Matrix LED ESP32-S3 RGB
- Iṣẹ́ ESP32-S3 RGB LED Matrix 1- Àmì-ojú ìpilẹ̀ṣẹ̀
- Iṣẹ́ ESP32-S3 RGB LED Matrix Project 2 - Ọ̀rọ̀ Tí Ń Rìn
- Iṣẹ́ ESP32-S3 RGB LED Matrix Project 3 - Ọ̀rọ̀ láti fóónù alágbèéká
- Iṣẹ́ ESP32-S3 RGB LED Matrix Project 4 - Tilt dot
- Iṣẹ́ ESP32-S3 RGB LED Matrix Project 5 - Ọfà tí ó máa ń tọ́ka sí òkè nígbà gbogbo
- Iṣẹ́ ESP32-S3 RGB LED Matrix Project 6 - Ere Cible
- Iṣẹ́ Aago ESP32-S3 RGB LED Matrix Wi-Fi + NTP - 1 Aago Ìpìlẹ̀
- Iṣẹ́ Aago Internet Matrix LED RGB ESP32-S3 - Àwọ̀ Alẹ́ 3 pẹ̀lú Ọjọ́
- Iṣẹ́ Aago Internet Matrix LED RGB ESP32-S3 - Àwọ̀ Òṣùwọ̀n 5
- Iṣẹ́ Aago Nẹ́tíwọọkì ESP32-S3 RGB LED Matrix - Àwọ̀ àìròtẹ́lẹ̀ mẹ́rin
- ESP32-S3 RGB LED Matrix test for RGB, GRB setting
/*
* =====================================================================================
* ESP32-S3 INTERNET RGB CLOCK (8x8 Matrix) - Project 2
Multi color
* =====================================================================================
watch video https://youtube.com/shorts/4iWjLiD7fS8
📚⬇️ Download and resource page https://robojax.com/RJT839
* Author: Ahmad Shamshiri (Robojax.com)
* Date: 07 Jan 2026
* * FEATURES:
* 1. WiFi/NTP Time: Syncs automatically with internet time servers.
* 2. Cycle-Based Color: Color changes ONLY when text finishes a full scroll.
* 3. Auto-Brightness: Dims the LEDs during night hours (User-configurable).
* 4. Periodic Date: Scrolls the date (e.g., "JAN 07") every 2 minutes.
* * USER CONFIGURATION GUIDE:
* -------------------------
* - WiFi: Change 'WIFI_SSID' and 'WIFI_PASSWORD' to your local network.
* - Colors: Add or remove {R, G, B} sets in the 'userColors' array.
* - Night Mode: Adjust 'NIGHT_START_HOUR' and 'NIGHT_BRIGHTNESS'.
* =====================================================================================
*/
#include <WiFi.h>
#include "time.h"
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
#define MATRIX_PIN 14
// --- BRIGHTNESS CONFIGURATION ---
const int DAY_BRIGHTNESS = 40;
const int NIGHT_BRIGHTNESS = 5;
const int NIGHT_START_HOUR = 22;
const int NIGHT_END_HOUR = 6;
// --- COLOR CONFIGURATION ---
bool useFixedColor = false;
int fixedColorIndex = 0;
uint8_t userColors[][3] = {
{17, 43, 171}, // Light Blue
{255, 0, 0}, // Red
{0, 255, 0}, // Green
{255, 165, 0}, // Orange
{255, 0, 255} // Magenta
};
// 👇 REPLACE these with your real home WiFi name & password
const char* WIFI_SSID = "WiFi";
const char* WIFI_PASSWORD = "passW0rd";
int currentColorIndex = 0;
int totalColors = sizeof(userColors) / sizeof(userColors[0]);
// --- DATE/TIME INTERVALS ---
unsigned long lastDateShowMs = 0;
const uint32_t dateIntervalMs = 30000; // 2 minutes
unsigned long lastTimeUpdateMs = 0;
const uint16_t timeUpdateIntervalMs = 1000;
unsigned long lastScrollMs = 0;
const uint16_t scrollIntervalMs = 100;
// --- GLOBAL VARIABLES ---
Adafruit_NeoMatrix matrix(8, 8, MATRIX_PIN,
NEO_MATRIX_TOP + NEO_MATRIX_LEFT +
NEO_MATRIX_ROWS + NEO_MATRIX_PROGRESSIVE,
NEO_RGB + NEO_KHZ800);
char timeText[6] = "00:00";
char dateText[10] = "";
char currentDisplayText[12] = "";
int16_t scrollX = 8;
const char* ntpServer = "pool.ntp.org";
const long gmtOffset_sec = -5 * 3600;
const int daylightOffset_sec = 3600;
void updateTimeAndDate() {
struct tm timeinfo;
if (!getLocalTime(&timeinfo)) return;
snprintf(timeText, sizeof(timeText), "%02d:%02d", timeinfo.tm_hour, timeinfo.tm_min);
strftime(dateText, sizeof(dateText), "%b %d", &timeinfo);
for (int i = 0; dateText[i]; i++) dateText[i] = toupper(dateText[i]);
if (timeinfo.tm_hour >= NIGHT_START_HOUR || timeinfo.tm_hour < NIGHT_END_HOUR) {
matrix.setBrightness(NIGHT_BRIGHTNESS);
} else {
matrix.setBrightness(DAY_BRIGHTNESS);
}
}
void scrollDisplay() {
matrix.fillScreen(0);
// FIXED LOGIC: Uses currentColorIndex which only changes at the end of a scroll
int idx = useFixedColor ? fixedColorIndex : currentColorIndex;
matrix.setTextColor(matrix.Color(userColors[idx][0], userColors[idx][1], userColors[idx][2]));
matrix.setCursor(scrollX, 0);
matrix.print(currentDisplayText);
matrix.show();
scrollX--;
int16_t textWidth = strlen(currentDisplayText) * 6;
// THE TRIGGER POINT: This happens only when text is fully off-screen
if (scrollX < -textWidth) {
scrollX = matrix.width();
// 1. Cycle the color now and only now
if (!useFixedColor) {
currentColorIndex = (currentColorIndex + 1) % totalColors;
}
// 2. Decide whether to switch between Time and Date
if (millis() - lastDateShowMs > dateIntervalMs) {
strcpy(currentDisplayText, dateText);
lastDateShowMs = millis();
} else {
strcpy(currentDisplayText, timeText);
}
}
}
void setup() {
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
matrix.begin();
matrix.setTextWrap(false);
matrix.setBrightness(DAY_BRIGHTNESS);
updateTimeAndDate();
strcpy(currentDisplayText, timeText);
}
void loop() {
unsigned long now = millis();
if (now - lastTimeUpdateMs >= timeUpdateIntervalMs) {
lastTimeUpdateMs = now;
updateTimeAndDate();
}
if (now - lastScrollMs >= scrollIntervalMs) {
lastScrollMs = now;
scrollDisplay();
}
}
Ohun ti o le nilo
-
Amazon
-
eBay
-
AliExpressPurchase ESP32-S3 RGB Matrix from AliExpresss.click.aliexpress.com
-
AliExpressPurchase ESP32-S3 RGB Matrix from AliExpress (2)s.click.aliexpress.com
Orisun & itọkasi
-
Fídíò
Fáìlìs📁
Fayile Fritzing
-
esp32-S3-supermini-tht fritzing part
esp32-S3-supermini-tht.fzpz0.02 MB