This tutorial is part of: Matrix na LED na ESP32-S3 RGB
Kyakkyawan aiki don ƙirƙirar aikace-aikace masu daɗi da amfani ta amfani da module na ESP32-S3 RGB Matrix. Hanyoyin haɗi zuwa wasu bidiyo suna ƙasa da wannan labarin.
Aikin ESP32-S3 RGB LED Matrix Internet Clock - Launi 5 na Bakan gizo
Agogon Intanet na ESP32-S3 tare da Tasirin Launi na Bakan Gizo
Wannan aikin agogon Intanet ne na RGB Matrix na ESP32-S3 wanda ke haɗawa da Wi-Fi, yana daidaita lokacin gida daga uwar garken NTP, kuma yana gudanar da lokaci a tsarin HH:MM a kan NeoMatrix na RGB 8×8 da aka gina a ciki. Ba kamar nau'ikan masu launi masu ƙarfi ko bazuwar ba, wannan agogon yana amfani da tasirin launi na bakan gizo mai santsi, inda kowane hali ke ci gaba da canzawa ta cikin bakan RGB yayin da yake gudana. Agogon kuma yana nuna kwanan wata lokaci-lokaci kuma yana daidaita haske ta atomatik tsakanin rana da dare.

Yadda wannan agogon ke aiki
Da zarar an kunna shi ta USB-C, ESP32-S3 yana haɗawa da cibiyar sadarwar Wi-Fi ɗin ku kuma yana dawo da lokacin gida na yanzu daga intanet. Nunin yawanci yana gudanar da lokaci, amma a wani tazara da aka ƙayyade yana canzawa zuwa nuna kwanan wata. Dukansu lokaci da kwanan wata ana nuna su ta amfani da tasirin bakan gizo mai ƙarfi, wanda ke haifar da nuni mai haske da rai a kan ƙaramin matrix 8×8.
Littattafan da aka yi amfani da su
Sketch ɗin ya dogara da littattafai masu zuwa:

#include <WiFi.h>
#include "time.h"
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
Shigar da Adafruit NeoMatrix ta amfani da Arduino Library Manager. Abubuwan da ya dogara da su, gami da Adafruit GFX Library da Adafruit NeoPixel, za a shigar da su ta atomatik.

Muhimman saitunan mai amfani
Filin data na Matrix (RGB matrix da aka gina a ciki)
Ko da yake RGB matrix ɗin yana haɗe da allon ESP32-S3, dole ne a bayyana filin data a cikin lambar:

#define MATRIX_PIN 14
GPIO 14 ana yawan amfani da shi a kan allunan RGB matrix na ESP32-S3. Idan nau'in allon ku yana amfani da wani fili daban, sabunta wannan ƙimar.
SSID da kalmar sirri na Wi-Fi (ana kula da manyan da ƙananan haruffa)
Maye gurbin bayanan shiga Wi-Fi da bayanan cibiyar sadarwar ku:
const char* WIFI_SSID = "your WIFI";
const char* WIFI_PASSWORD = "passW0rd";
Muhimmi: SSIDs na Wi-Fi suna kula da manyan da ƙananan haruffa. SSID mai suna "Book" ba ɗaya ba ne da "book". Idan manyan haruffa ba su yi daidai ba, ESP32-S3 zai kasa haɗawa.
Uwar garken NTP, yankin lokaci, da canjin lokaci na rana
Agogon yana daidaita lokaci ta amfani da uwar garken NTP na intanet:
const char* ntpServer = "pool.ntp.org";
Ana lissafin lokacin gida ta amfani da waɗannan ƙididdiga:
// Toronto-ish: UTC-5, plus 1 hour DST
const long gmtOffset_sec = -5 * 3600;
const int daylightOffset_sec = 3600;
gmtOffset_sec: Ƙididdigar UTC a cikin daƙiƙa (misali: UTC-5 =-5 * 3600)daylightOffset_sec: Yi amfani da3600idan canjin lokaci na rana yana aiki, ko0idan ba a yi amfani da shi ba
Ana amfani da waɗannan ƙididdigar ta amfani da:
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
Hasken rana / dare ta atomatik
Hasken yana canzawa ta atomatik bisa ga sa'ar yanzu:
const int DAY_BRIGHTNESS = 40;
const int NIGHT_BRIGHTNESS = 5;
const int NIGHT_START_HOUR = 22;
const int NIGHT_END_HOUR = 6;
Tsakanin 10 na dare da 6 na safe, matrix ɗin yana yin duhu don rage haske mai cutarwa. A lokutan rana, ana mayar da haske na yau da kullun.
Tasirin launi na bakan gizo
Wannan aikin yana amfani da dabaran launi na RGB na gargajiya don samar da launukan bakan gizo masu santsi. Kowane hali ana zana shi da ɗan bambancin launi daban, kuma launukan suna canzawa da lokaci, suna samar da raye-rayen bakan gizo mai gudana.
// Helper to create Rainbow Colors
uint32_t Wheel(byte WheelPos) {
WheelPos = 255 - WheelPos;
if (WheelPos < 85) {
return matrix.Color(255 - WheelPos * 3, 0, WheelPos * 3);
}
if (WheelPos < 170) {
WheelPos -= 85;
return matrix.Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
WheelPos -= 170;
return matrix.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}
Yayin da rubutun ke gudana, kowane hali yana ci gaba ta cikin bakan RGB, yana samar da tasirin bakan gizo mai ci gaba wanda ke da ban sha'awa musamman a kan ƙaramin nuni 8×8.
Halayen nuna lokaci da kwanan wata
Agogon yana kiyaye ma'ajiyai daban-daban don lokaci da kwanan wata:
- Lokaci:
HH:MM - Kwanan wata:
MMM DD(misaliJAN 08)
Ana nuna kwanan wata a wani tazara da aka ƙayyade:
const uint32_t dateIntervalMs = 60000; // Show date every 1 minute
A ƙarshen kowane zagaye na gudana, lambar tana yanke shawara ko ta ci gaba da nuna lokaci ko ta canza zuwa kwanan wata.
Dabarar gudana a kan matrix 8×8
Saboda nuni ɗin faɗinsa pixels 8 ne kawai, rubutun yana gudana da santsi daga dama zuwa hagu. Da zarar rubutun ya fita gaba ɗaya daga allo, cursor ɗin yana sake farawa kuma ana loda abun ciki na gaba (lokaci ko kwanan wata) don zagaye na gaba.
Nuni
Bayan loda sketch ɗin da kunna allon ta USB-C:
- ESP32-S3 yana haɗawa da cibiyar sadarwar Wi-Fi ɗin ku
- Ana daidaita lokaci daga intanet
- Lokaci yana gudana a tsarin
HH:MM - Kwanan wata yana bayyana lokaci-lokaci
- Duk rubutu ana nuna shi da tasirin bakan gizo mai rai da santsi
- Nuni ɗin yana yin duhu ta atomatik da dare kuma yana haskakawa da rana
Saukewa da hanyoyin haɗi
Cikakken lambar tushe an bayar da shi a ƙasan wannan labarin. Kayan aiki masu amfani da nassoshi, gami da RGB Color Picker, suma an haɗa su a ƙasan wannan labarin.
This tutorial is part of: Matrix na LED na ESP32-S3 RGB
- Aikin Matrix LED RGB na ESP32-S3 1- Digo na asali
- Aikin Matrix LED RGB na ESP32-S3 2 - Rubutu Mai Gudana
- Aikin Matrix LED RGB ESP32-S3 Project 3 - Rubutu daga wayar hannu
- Aikin ESP32-S3 RGB LED Matrix 4 - Digon karkata
- Aikin Matrix LED RGB na ESP32-S3 Na 5 - Kibiya koyaushe tana sama
- Aikin Matrix LED RGB na ESP32-S3 6 - Wasan Cible
- Aikin ESP32-S3 RGB LED Matrix Wi-Fi + NTP Time Clock -1 Basic Clock
- Aikin ESP32-S3 RGB LED Matrix Agogon Intanet - Nunin Lokaci & Kwanan Wata masu Launi da yawa na Agogo 2
- Aikin ESP32-S3 RGB LED Matrix Agogon Intanet - Launi 3 na Dare tare da Kwanan Wata
- Aikin Agogon Matrix LED RGB ESP32-S3 na Intanet - Launi 4 Bazuwa
- ESP32-S3 RGB LED Matrix test for RGB, GRB setting
/*
* =====================================================================================
* ESP32-S3 CLOCK - RAINBOW DATE & SOLID TIME - Project 5- RAINBOW MODE
* =====================================================================================
watch video https://youtube.com/shorts/4iWjLiD7fS8
📚⬇️ Download and resource page https://robojax.com/RJT842
* Author: Gemini (AI Thought Partner) & Ahmad Shamshiri (Robojax.com)
* Date: 07 Jan 2026
* =====================================================================================
* ESP32-S3 INTERNET RGB CLOCK - RAINBOW MODE
* * FEATURES:
* - Full Rainbow: Time and Date use flowing rainbow colors.
* - Auto-Brightness: Dims at night (22:00 to 06:00).
* - Custom WiFi: Robust connection logic with retries.
* =====================================================================================
*/
#include <WiFi.h>
#include "time.h"
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
#define MATRIX_PIN 14
// 👇 REPLACE these with your real home WiFi name & password
const char* WIFI_SSID = "your WIFI";
const char* WIFI_PASSWORD = "passW0rd";
// NTP (time) server
const char* ntpServer = "pool.ntp.org";
// Toronto-ish: UTC-5, plus 1 hour DST.
const long gmtOffset_sec = -5 * 3600; // -5 hours
const int daylightOffset_sec = 3600; // +1 hour for DST
// --- BRIGHTNESS CONFIGURATION ---
const int DAY_BRIGHTNESS = 40;
const int NIGHT_BRIGHTNESS = 5;
const int NIGHT_START_HOUR = 22;
const int NIGHT_END_HOUR = 6;
// --- INTERVALS & TRACKING ---
unsigned long lastDateShowMs = 0;
const uint32_t dateIntervalMs = 60000; // Show date every 1 minute
bool isShowingDate = false;
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;
unsigned long lastScrollMs = 0;
const uint16_t scrollIntervalMs = 100;
unsigned long lastTimeUpdateMs = 0;
// Helper to create Rainbow Colors
uint32_t Wheel(byte WheelPos) {
WheelPos = 255 - WheelPos;
if(WheelPos < 85) {
return matrix.Color(255 - WheelPos * 3, 0, WheelPos * 3);
}
if(WheelPos < 170) {
WheelPos -= 85;
return matrix.Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
WheelPos -= 170;
return matrix.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}
void updateClockData() {
struct tm timeinfo;
if (!getLocalTime(&timeinfo)) return;
// Update Time and Date strings
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]);
// Handle Night Dimming
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);
int len = strlen(currentDisplayText);
int16_t x = scrollX;
// Draw each character with a shifting rainbow color
for (int i = 0; i < len; i++) {
uint8_t colorPos = (uint8_t)((i * 30) + (millis() / 5));
matrix.setTextColor(Wheel(colorPos));
matrix.setCursor(x + (i * 6), 0);
matrix.print(currentDisplayText[i]);
}
matrix.show();
scrollX--;
int16_t textWidth = len * 6;
if (scrollX < -textWidth) {
scrollX = matrix.width();
// Switch between Date and Time at end of cycle
if (millis() - lastDateShowMs > dateIntervalMs) {
strcpy(currentDisplayText, dateText);
lastDateShowMs = millis();
isShowingDate = true;
} else {
strcpy(currentDisplayText, timeText);
isShowingDate = false;
}
}
}
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("\nESP32-S3 Rainbow Clock Initializing...");
// Connect to WiFi
Serial.print("Connecting to WiFi: ");
Serial.println(WIFI_SSID);
WiFi.mode(WIFI_STA);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
int retries = 0;
while (WiFi.status() != WL_CONNECTED && retries < 30) { // ~15s timeout
delay(500);
Serial.print(".");
retries++;
}
Serial.println();
if (WiFi.status() != WL_CONNECTED) {
Serial.println("WiFi connection FAILED");
} else {
Serial.print("WiFi connected. IP: ");
Serial.println(WiFi.localIP());
}
// Configure time via NTP
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
Serial.println("Waiting for time...");
delay(2000); // small wait for initial sync
matrix.begin();
matrix.setTextWrap(false);
matrix.setBrightness(DAY_BRIGHTNESS);
updateClockData();
strcpy(currentDisplayText, timeText); // Load initial time
}
void loop() {
unsigned long now = millis();
// Update time digits and check brightness every second
if (now - lastTimeUpdateMs >= 1000) {
lastTimeUpdateMs = now;
updateClockData();
}
// Handle the scrolling animation
if (now - lastScrollMs >= scrollIntervalMs) {
lastScrollMs = now;
scrollDisplay();
}
}
Albarkatun da kuma shafukan da za a duba
-
Bidiyo
-
Ciki🎨 Color picker Toolrobojax.com
Fayiloli📁
Fayil Fritzing
-
esp32-S3-supermini-tht fritzing part
esp32-S3-supermini-tht.fzpz0.02 MB