This tutorial is part of: Matrix-ka LED-ka ee ESP32-S3 RGB
Mashruuc xiiso leh oo loogu talagalay in lagu abuuro barnaamijyo xiiso leh oo wax ku ool ah iyadoo la adeegsanayo moduleka ESP32-S3 RGB Matrix. Xiriirinta fiidiyowyada kale waxay ku yaalliin maqaalkan.
Mashruuca Saacadda Shabakadda ee LED Matrix RGB ee ESP32-S3 - 3 Midab Habeen ah oo leh Taariikh
SaaS-ga S3 RGB NeoMatrix Internet Clock oo leh Iftiinka Maalinta/Habeenka Tooska ah
Mashruucani waa SaaS-ga S3 RGB Matrix Internet Clock kaas oo si toos ah u hagaajiya iftiinka maalinta iyo habeenkii. SaaS-ga S3 wuxuu ku xidhmaa Wi-Fi, wuxuu la midaynayaa waqtiga hadda jira ee NTP server, wuxuuna ku wareejiyaa waqtiga qaabka HH:MM ee 8×8 RGB NeoMatrix. Saacaddu waxay sidoo kale taageertaa midabbo RGB go'an ama wareegaya oo loogu talagalay qoraalka bandhigga.

Waxa saacaddani samayso
Ka dib marka la shido, SaaS-ga S3 wuxuu ku xidhmaa shabakaddaada Wi-Fi wuxuuna ka soo qaadaa waqtiga maxalliga ah ee hadda jira internetka. Waqtigu wuxuu si habsami leh ugu wareegayaa matrix-ka LED. Saacadaha habeenkii, bandhigu wuxuu si toos ah u yareeyaa iftiinka, halka maalintii uu dib ugu noqdo heer iftiin sare ah.
Maktabadaha la isticmaalay
Sketch-kani wuxuu isticmaalaa maktabadahan soo socda:

#include <WiFi.h>
#include "time.h"
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
Ku rakib Adafruit NeoMatrix oo ka yimid Arduino Library Manager. Dhammaan ku-tiirsanaanta loo baahan yahay sida Adafruit GFX Library iyo Adafruit NeoPixel si toos ah ayaa loo rakibi doonaa.

Qaabaynta isticmaalaha ee muhiimka ah
Wi-Fi SSID iyo password (xarfaha waaweyn iyo kuwa yar)
Ku beddel qiimaha soo socda aqoonsigaaga Wi-Fi:

const char* WIFI_SSID = "WiFi";
const char* WIFI_PASSWORD = "passW0rd";
Muhiim: Wi-Fi SSIDs waa xarfaha waaweyn iyo kuwa yar. SSID lagu magacaabo "Book" ma aha mid la mid ah "book". Haddii xarfaha waaweyn aan si sax ah u qoran, SaaS-ga wuxuu ku guuldareysan doonaa inuu ku xidhmaa.
NTP server, time zone, iyo daylight saving
Saacaddu waxay waqtiga ku midaynaysaa iyadoo la isticmaalayo NTP server-ka soo socda:
const char* ntpServer = "pool.ntp.org";
Waqtiga maxalliga ah waxaa lagu xisaabiyaa iyadoo la isticmaalayo offsets-yadan:
const long gmtOffset_sec = -5 * 3600;
const int daylightOffset_sec = 3600;
gmtOffset_secwuxuu qeexayaa UTC offset-kaaga ilbiriqsidaylightOffset_secwuxuu ku darayaa saacad marka daylight saving time uu shaqeeyo (isticmaal0haddii aan loo baahnayn)
Qiimahaan waxaa lagu dabaqayaa:
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
Iftiinka maalinta/habeenka tooska ah
Iftiinka bandhiggu wuxuu si toos ah isu beddelaa iyadoo ku xidhan saacadda hadda jirta:
const int DAY_BRIGHTNESS = 40;
const int NIGHT_BRIGHTNESS = 5;
const int NIGHT_START_HOUR = 22; // 10 PM
const int NIGHT_END_HOUR = 6; // 6 AM
Inta u dhaxaysa 10 PM iyo 6 AM, iftiinka matrix-ka waa la yareeyaa si looga dhigo mid ku habboon jawiga mugdiga ah. Marka ka baxsan saacadahaan, iftiinka buuxa ee maalintii waa la soo celiyaa. Waxaad hagaajin kartaa qiimahaan si ay ugu habboonaadaan iftiinka qolkaaga.
Qaabaynta midabka RGB
Midabka qoraalka saacaddu waxaa lagu qeexayaa iyadoo la isticmaalayo qiimayaasha RGB (Red, Green, Blue), halkaas oo kanaal kastaa uu u dhexeeyo 0 ilaa 255. Midabbo badan ayaa lagu kaydin karaa array-ga waxaana si toos ah loo wareejin karaa:
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
};
Haddii useFixedColor lagu dejiyo true, saacaddu had iyo jeer waxay isticmaashaa hal midab. Haddii lagu dejiyo false, midabku si toos ah ayuu isu beddelaa ka dib markii waqtigu si buuxda u wareego.
Si dhakhso ah ugu helid qiimayaasha RGB ee saxda ah ee midab kasta, isticmaal qalabka RGB Color Picker: Color Picker .
Bandhigga waqtiga iyo wareejinta
Waqtiga hadda jira waxaa loo qaabeeyaa HH:MM waxaana lagu kaydiyaa buffer-ka xarfaha yar. Sababtoo ah bandhigu wuxuu uun yahay 8 pixels oo ballaadhan, qoraalku wuxuu si habsami leh uga wareegayaa midig ilaa bidix. Marka waqtigu si buuxda uga baxo bandhigga, midabka xiga (haddii la awoodo) ayaa loo xushaa wareegga xiga.
Muuujin
Ka dib marka la soo geliyo sketch-ka:
- SaaS-ga S3 wuxuu ku xidhmaa Wi-Fi
- Waqtiga waxaa laga midaynayaa internetka
- Waqtiga hadda jira wuxuu ku wareegayaa matrix-ka RGB
- Iftiinku si toos ah ayuu isu beddelaa maalinta iyo habeenkii
- Midabka qoraalku wuxuu ahaanayaa mid go'an ama wuu wareegayaa iyadoo ku xidhan dejintaada
Soo dejinta iyo linkiyada
Koodhka buuxa ee asalka ah ayaa hoos lagu bixiyay maqaalkan. Linkiyada qaybaha, qalabka, iyo xogta farsamada ayaa hoos ka heli kara maqaalkan.
This tutorial is part of: Matrix-ka LED-ka ee ESP32-S3 RGB
- Mashruuca LED Matrix-ka RGB ee ESP32-S3 1- Dhibic Aasaasi ah
- Mashruuca LED Matrix RGB ee ESP32-S3 2 - Qoraal Guurguura
- Mashruuca ESP32-S3 RGB LED Matrix Project 3 - Qoraal ka yimid taleefanka gacanta
- Mashruuca LED Matrix RGB ee ESP32-S3 4 - Dhibicda leexinta
- Mashruuca Matrix-ka LED-ka RGB ee ESP32-S3 5 - Fallaar had iyo jeer kor u taagan
- Mashruuca LED Matrix RGB ee ESP32-S3 6 - Ciyaarta Cible
- Mashruucda Saacadda NTP + Wi-Fi Matrix LED RGB ee ESP32-S3 -1 Saacad Aasaasi ah
- Mashruuca Saacadda Shabakadda ee ESP32-S3 RGB LED Matrix - 2 Saacadood oo midabbo kala duwan leh oo Muujinaya Waqtiga & Taariikhda
- Mashruuca Saacadda Shabakadda LED Matrix RGB ee ESP32-S3 - 5 Midabka Qaanso Roobaadka
- Mashruuca Saacadda Shabakadda ee ESP32-S3 RGB LED Matrix - 4 Midab oo Random ah
- ESP32-S3 RGB LED Matrix test for RGB, GRB setting
/*
* =====================================================================================
* ESP32-S3 INTERNET RGB CLOCK (8x8 Matrix) - Project 3- Night color with Date
* =====================================================================================
watch video https://youtube.com/shorts/4iWjLiD7fS8
📚⬇️ Download and resource page https://robojax.com/RJT840
* Author: Gemini (AI Thought Partner) & 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 after the time finishes a full scroll.
* 3. Auto-Brightness: Dims the LEDs during night hours (User-configurable).
* =====================================================================================
*/
#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; // 10 PM
const int NIGHT_END_HOUR = 6; // 6 AM
// --- 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]);
// --- INTERVALS ---
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";
int16_t scrollX = 8;
const char* ntpServer = "pool.ntp.org";
const long gmtOffset_sec = -5 * 3600;
const int daylightOffset_sec = 3600;
void updateTimeText() {
struct tm timeinfo;
if (!getLocalTime(&timeinfo)) return;
// Format HH:MM
snprintf(timeText, sizeof(timeText), "%02d:%02d", timeinfo.tm_hour, timeinfo.tm_min);
// Apply Auto-Brightness
if (timeinfo.tm_hour >= NIGHT_START_HOUR || timeinfo.tm_hour < NIGHT_END_HOUR) {
matrix.setBrightness(NIGHT_BRIGHTNESS);
} else {
matrix.setBrightness(DAY_BRIGHTNESS);
}
}
void scrollTime() {
matrix.fillScreen(0);
// Pick the color (Fixed or Cycle)
int idx = useFixedColor ? fixedColorIndex : currentColorIndex;
matrix.setTextColor(matrix.Color(userColors[idx][0], userColors[idx][1], userColors[idx][2]));
matrix.setCursor(scrollX, 0);
matrix.print(timeText);
matrix.show();
scrollX--;
// Width for "HH:MM" is roughly 30 pixels
int16_t textWidth = 30;
// TRIGGER: When time is fully off-screen
if (scrollX < -textWidth) {
scrollX = matrix.width(); // Reset position to right side
// Cycle to the next color in the array for the next pass
if (!useFixedColor) {
currentColorIndex = (currentColorIndex + 1) % totalColors;
Serial.print("Next cycle color index: ");
Serial.println(currentColorIndex);
}
}
}
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);
updateTimeText();
}
void loop() {
unsigned long now = millis();
// Update time digits and brightness once per second
if (now - lastTimeUpdateMs >= timeUpdateIntervalMs) {
lastTimeUpdateMs = now;
updateTimeText();
}
// Handle the scrolling animation
if (now - lastScrollMs >= scrollIntervalMs) {
lastScrollMs = now;
scrollTime();
}
}
Waad u baahan tahay
-
Amaazon
-
eBay
-
AliExpressPurchase ESP32-S3 RGB Matrix from AliExpresss.click.aliexpress.com
-
AliExpressPurchase ESP32-S3 RGB Matrix from AliExpress (2)s.click.aliexpress.com
Kheyraadka & Tixraacyada
-
Fiidiyow
-
Gudaha🎨 Color picker Toolrobojax.com
Faylasha📁
Faylka Fritzing
-
esp32-S3-supermini-tht fritzing part
esp32-S3-supermini-tht.fzpz0.02 MB