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 Agogon Intanet - Nunin Lokaci & Kwanan Wata masu Launi da yawa na Agogo 2
Agogon Intanet na NeoMatrix RGB ESP32-S3 tare da Nunin Lokaci & Kwanan Wata
Wannan aikin ingantaccen agogon Intanet na Matrix RGB ESP32-S3 ne wanda ba wai kawai yana nuna lokaci na yanzu ba, har ma yana nuna kwanan wata a lokaci-lokaci. ESP32-S3 yana haɗawa da Wi-Fi, yana daidaita lokaci daga uwar garken NTP, kuma yana gudanar da ko dai HH:MM ko kwanan wata (misali SEP 21) a kan 8×8 RGB NeoMatrix. Nunin yana goyan bayan sarrafa haske na rana/dare ta atomatik da launukan RGB da za a iya daidaitawa.

Abin da wannan agogo yake yi
Bayan haɗawa da hanyar sadarwar Wi-Fi naka, ESP32-S3 yana ɗauko lokacin gida na yanzu daga intanet. Agogon yana gudanar da lokaci akai-akai, amma a tazara tsayayyiyar yana canzawa zuwa nuna kwanan wata. Launin rubutu na iya zama ƙayyadadden launi ɗaya ko kuma ya canza ta atomatik tsakanin launuka masu yawa da mai amfani ya ayyana. Hasken yana raguwa ta atomatik da dare don sa nunin ya fi sauƙi ga idanu.
Laburaren da aka yi amfani da su
Wannan sketch ya dogara da waɗannan laburaren:

#include <WiFi.h>
#include "time.h"
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
Shigar da Adafruit NeoMatrix daga Arduino Library Manager. Duk abubuwan dogaro da ake buƙata kamar Adafruit GFX Library da Adafruit NeoPixel za a shigar da su ta atomatik.

Muhimmin daidaitawar mai amfani
Wi-Fi SSID da kalmar sirri (mai kula da manyan/ƙananan haruffa)
Dole ne ka maye gurbin bayanan shiga Wi-Fi da bayanan hanyar sadarwar naka:

const char* WIFI_SSID = "WiFi";
const char* WIFI_PASSWORD = "passW0rd";
Muhimmi: Wi-Fi SSIDs suna kula da manyan/ƙananan haruffa. Misali, SSID mai suna "Book" ba ɗaya ba ne da "book". Idan manyan haruffa ba su yi daidai ba, ESP32 zai kasa haɗawa.
Uwar garken NTP, yankin lokaci, da canjin lokaci na rana
Agogon yana amfani da uwar garken lokaci na intanet:
const char* ntpServer = "pool.ntp.org";
Ana lissafin lokacin gida ta amfani da waɗannan ƙididdiga:
const long gmtOffset_sec = -5 * 3600;
const int daylightOffset_sec = 3600;
gmtOffset_sec: Ƙididdigar UTC naka a cikin daƙiƙa (misali: UTC-5 =-5 * 3600)daylightOffset_sec: Yi amfani da3600don DST ko0idan ba a yi amfani da DST ba
Ana amfani da waɗannan saitunan ta amfani da:
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
Sarrafa haske (rana / dare)
Wannan aikin yana daidaita haske ta atomatik bisa sa'ar rana:
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, hasken yana raguwa don sa nunin ya rage damuwa a wurare masu duhu. Kana iya daidaita waɗannan ƙimar don dacewa da abin da kake so.
Daidaitawar launin RGB
Agogon yana goyan bayan yanayin launi ƙayyadadde da kuma canjin launi ta atomatik. Launukan RGB da mai amfani ya ayyana ana adana su a cikin tsararru:
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
};
Kowane launi yana amfani da ƙimar RGB (Red, Green, Blue) daga 0 zuwa 255. Ta canza waɗannan lambobin, kana iya ƙirƙirar kusan kowane launi don nunin. Idan useFixedColor an saita shi zuwa true, agogon koyaushe yana amfani da launi ɗaya. Idan an saita shi zuwa false, launi yana canzawa ta atomatik bayan kowane cikakken gudana.
Don saurin nemo ƙimar RGB daidai don kowane launi da kake so, yi amfani da kayan aikin RGB Color Picker Color Picker .
Tsarin lokaci da kwanan wata
Ana tsara lokaci azaman HH:MM kuma ana adana shi a cikin ƙaramin buffer na haruffa. Ana tsara kwanan wata azaman kirtani mai manyan haruffa kamar SEP 21. Nunin yana canzawa ta atomatik tsakanin lokaci da kwanan wata a tazara tsayayyiyar.
Dabarar gudana akan nunin 8×8
Saboda matrix 8×8 ya yi ƙanƙanta don nuna cikakken rubutu a lokaci ɗaya, sketch ɗin yana gudanar da rubutu a kwance. Da zarar rubutun ya fita gaba ɗaya daga nunin, ana sabunta launi kuma abun ciki yana canzawa tsakanin lokaci da kwanan wata idan an buƙata.
Nuni
Bayan ɗora sketch ɗin:
- ESP32 yana haɗawa da Wi-Fi
- Ana daidaita lokaci daga intanet
- Lokaci na yanzu yana gudana a kan matrix
- Kwanan wata yana bayyana a lokaci-lokaci
- Hasken yana daidaita ta atomatik don rana da dare
Saukewa da hanyoyin haɗi
Cikakken lambar tushe an bayar da shi a ƙasan wannan labarin. Hanyoyin haɗi zuwa sassa, kayan aiki, da takaddun bayanai suma suna samuwa 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 - Launi 3 na Dare tare da Kwanan Wata
- Aikin ESP32-S3 RGB LED Matrix Internet Clock - Launi 5 na Bakan gizo
- Aikin Agogon Matrix LED RGB ESP32-S3 na Intanet - Launi 4 Bazuwa
- 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();
}
}
Abin da zaka iya bukata
-
Amazon
-
eBay
-
AliExpressPurchase ESP32-S3 RGB Matrix from AliExpresss.click.aliexpress.com
-
AliExpressPurchase ESP32-S3 RGB Matrix from AliExpress (2)s.click.aliexpress.com
Albarkatun da kuma shafukan da za a duba
-
Bidiyo
Fayiloli📁
Fayil Fritzing
-
esp32-S3-supermini-tht fritzing part
esp32-S3-supermini-tht.fzpz0.02 MB