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 - Launi 3 na Dare tare da Kwanan Wata
Agogon Intanet na NeoMatrix RGB ESP32-S3 tare da Hasken Rana/Dare ta atomatik
Wannan aikin agogon Matrix RGB na ESP32-S3 ne wanda ke daidaita haske ta atomatik da rana da dare. ESP32-S3 yana haɗawa da Wi-Fi, yana daidaita lokacin yanzu daga uwar garken NTP, kuma yana mirgina lokaci a tsarin HH:MM a kan NeoMatrix RGB 8×8. Agogon kuma yana goyan bayan launuka na RGB tsayayyu ko masu juyawa don rubutun nuni.

Abin da wannan agogo yake yi
Bayan kunnawa, ESP32-S3 yana haɗawa da hanyar sadarwar Wi-Fi ɗin ku kuma yana dawo da lokacin gida na yanzu daga intanet. Lokacin yana mirgina cikin sauƙi a kan matrix na LED. A lokutan dare, nuni yana rage haske ta atomatik zuwa ƙaramin haske, yayin da da rana yake komawa zuwa matakin haske mafi girma.
Laburaren da aka yi amfani da su
Wannan sketch ɗin yana amfani 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 saitin mai amfani
Wi-Fi SSID da kalmar sirri (mai kula da manyan/ƙananan haruffa)
Maye gurbin waɗannan ƙimar da bayanan Wi-Fi ɗin ku:

const char* WIFI_SSID = "WiFi";
const char* WIFI_PASSWORD = "passW0rd";
Muhimmi: Wi-Fi SSIDs suna kula da manyan/ƙananan haruffa. SSID mai suna "Book" ba ɗaya ba ne da "book". Idan manyan haruffa ba su dace daidai ba, ESP32 zai kasa haɗawa.
Uwar garken NTP, yankin lokaci, da canjin lokacin rana
Agogon yana daidaita lokaci ta amfani da wannan uwar garken NTP:
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_secyana bayyana ƙididdigar UTC ɗin ku a cikin daƙiƙadaylightOffset_secyana ƙara awa ɗaya lokacin da canjin lokacin rana ke aiki (yi amfani da0idan ba a buƙata ba)
Ana amfani da waɗannan ƙimar tare da:
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
Hasken rana/dare ta atomatik
Hasken nuni yana canzawa ta atomatik bisa sa'ar yanzu:
const int DAY_BRIGHTNESS = 40;
const int NIGHT_BRIGHTNESS = 5;
const int NIGHT_START_HOUR = 22; // 10 na dare
const int NIGHT_END_HOUR = 6; // 6 na safe
Tsakanin 10 na dare zuwa 6 na safe, ana rage hasken matrix don ya zama mai daɗi a wurare masu duhu. A wajen waɗannan sa'o'in, ana mayar da cikakken hasken rana. Kuna iya daidaita waɗannan ƙimar don dacewa da hasken ɗakin ku.
Saitin launi na RGB
Launin rubutun agogon an bayyana shi ta amfani da ƙimar RGB (Ja, Kore, Shudi), inda kowane tashar ke daga 0 zuwa 255. Ana iya adana launuka da yawa a cikin tsararru kuma a juyar da su ta atomatik:
uint8_t userColors[][3] = {
{17, 43, 171}, // Shudi Mai Haske
{255, 0, 0}, // Ja
{0, 255, 0}, // Kore
{255, 165, 0}, // Orange
{255, 0, 255} // Magenta
};
Idan an saita useFixedColor zuwa true, agogon koyaushe yana amfani da launi ɗaya. Idan an saita zuwa false, launi yana canzawa ta atomatik bayan kowane cikakken mirginawar lokacin.
Don samun ƙimar RGB daidai ga kowane launi cikin sauri, yi amfani da kayan aikin RGB Color Picker: Color Picker .
Nuni da mirginawar lokaci
Ana tsara lokacin yanzu a matsayin HH:MM kuma ana adana shi a cikin ƙaramin buffer na haruffa. Saboda nuni yana da faɗin pixels 8 kawai, rubutu yana mirgina cikin sauƙi daga dama zuwa hagu. Da zarar lokacin ya fita gaba ɗaya daga nuni, za a zaɓi launi na gaba (idan an kunna shi) don zagaye na gaba.
Nuni
Bayan ɗora sketch ɗin:
- ESP32-S3 yana haɗawa da Wi-Fi
- Ana daidaita lokaci daga intanet
- Lokacin yanzu yana mirgina a kan matrix na RGB
- Hasken yana canzawa ta atomatik tsakanin rana da dare
- Launin rubutu ya kasance tsayayye ko yana juyawa bisa saitunan ku
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 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 - Nunin Lokaci & Kwanan Wata masu Launi da yawa na Agogo 2
- 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 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();
}
}
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
-
Ciki🎨 Color picker Toolrobojax.com
Fayiloli📁
Fayil Fritzing
-
esp32-S3-supermini-tht fritzing part
esp32-S3-supermini-tht.fzpz0.02 MB