This tutorial is part of: ESP32-S3 RGB LED ማትሪክስ
አስደሳች እና ተግባራዊ አፕሊኬሽኖችን ለመፍጠር የESP32-S3 RGB ማትሪክስ ሞጁልን በመጠቀም አሪፍ ፕሮጀክት። ወደ ሌሎች ቪዲዮዎች የሚወስዱ አገናኞች ከዚህ ጽሑፍ በታች ይገኛሉ።
የESP32-S3 RGB LED ማትሪክስ የበይነመረብ ሰዓት ፕሮጀክት - 3 የምሽት ቀለም ከቀን ጋር
ESP32-S3 RGB NeoMatrix የበይነመረብ ሰዓት ከራስ-ሰር የቀን/ሌሊት ብሩህነት ጋር
ይህ ፕሮጀክት የESP32-S3 RGB Matrix የበይነመረብ ሰዓት ሲሆን በቀን እና በሌሊት ብሩህነትን በራስ-ሰር ያስተካክላል። ESP32-S3 ከWi-Fi ጋር ይገናኛል፣ የአሁኑን ሰዓት ከNTP አገልጋይ ያመሳስላል፣ እና ሰዓቱን በHH:MM ቅርጸት በ8×8 RGB NeoMatrix ላይ ያሽከረክራል። ሰዓቱ እንዲሁም ለማሳያ ጽሑፍ ቋሚ ወይም የሚዞሩ RGB ቀለሞችን ይደግፋል።

ይህ ሰዓት ምን ያደርጋል
ከኃይል አቅርቦት በኋላ፣ ESP32-S3 ከWi-Fi አውታረ መረብዎ ጋር ይገናኛል እና የአሁኑን የአካባቢ ሰዓት ከበይነመረብ ያመጣል። ሰዓቱ በLED ማትሪክስ ላይ በተቀላጠፈ ሁኔታ ይሽከረከራል። በሌሊት ሰዓታት ውስጥ፣ ማሳያው በራስ-ሰር ወደ ዝቅተኛ ብሩህነት ይደበዝዛል፣ በቀን ደግሞ ወደ ብሩህ ደረጃ ይመለሳል።
ጥቅም ላይ የዋሉ ቤተ-መጻሕፍት
ይህ ስኬች የሚከተሉትን ቤተ-መጻሕፍት ይጠቀማል፦

#include <WiFi.h>
#include "time.h"
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
Adafruit NeoMatrixን ከArduino Library Manager ይጫኑ። እንደ Adafruit GFX Library እና Adafruit NeoPixel ያሉ ሁሉም አስፈላጊ ጥገኞች በራስ-ሰር ይጫናሉ።

አስፈላጊ የተጠቃሚ ውቅር
የWi-Fi SSID እና የይለፍ ቃል (ኬዝ-ሴንሲቲቭ)
የሚከተሉትን እሴቶች በራስዎ የWi-Fi ማረጋገጫ መረጃ ይተኩ፦

const char* WIFI_SSID = "WiFi";
const char* WIFI_PASSWORD = "passW0rd";
አስፈላጊ፡ የWi-Fi SSIDዎች ኬዝ-ሴንሲቲቭ ናቸው። "Book" የሚባል SSID ከ"book" ጋር አንድ አይደለም። አቢይ ሆሄዎች በትክክል ካልተዛመዱ፣ ESP32 መገናኘት አይችልም።
የNTP አገልጋይ፣ የሰዓት ሰቅ እና የቀን ብርሃን ቁጠባ
ሰዓቱ ሰዓትን የሚያመሳስለው በሚከተለው NTP አገልጋይ ነው፦
const char* ntpServer = "pool.ntp.org";
የአካባቢ ሰዓት የሚሰላው በእነዚህ ማካካሻዎች ነው፦
const long gmtOffset_sec = -5 * 3600;
const int daylightOffset_sec = 3600;
gmtOffset_secየእርስዎን UTC ማካካሻ በሰከንዶች ይገልጻልdaylightOffset_secየቀን ብርሃን ቁጠባ ሰዓት ሲሰራ አንድ ሰዓት ይጨምራል (ካልፈለገ0ይጠቀሙ)
እነዚህ እሴቶች የሚተገበሩት በ፦
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
ራስ-ሰር የቀን/ሌሊት ብሩህነት
የማሳያው ብሩህነት በአሁኑ ሰዓት ላይ በመመስረት በራስ-ሰር ይቀየራል፦
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
ከምሽቱ 10 ሰዓት እስከ ጧቱ 6 ሰዓት ድረስ፣ የማትሪክስ ብሩህነት በጨለማ አካባቢዎች ምቹ ለማድረግ ይቀንሳል። ከእነዚያ ሰዓታት ውጭ፣ ሙሉ የቀን ብሩህነት ይመለሳል። እነዚህን እሴቶች ከክፍልዎ መብራት ጋር ለማስማማት ማስተካከል ይችላሉ።
የRGB ቀለም ውቅር
የሰዓቱ ጽሑፍ ቀለም የሚገለጸው በRGB (ቀይ፣ አረንጓዴ፣ ሰማያዊ) እሴቶች ሲሆን፣ እያንዳንዱ ቻናል ከ0 እስከ 255 ይደርሳል። ብዙ ቀለሞች በድርድር ውስጥ ተከማችተው በራስ-ሰር ሊዞሩ ይችላሉ፦
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
};
useFixedColor ወደ true ከተዋቀረ፣ ሰዓቱ ሁልጊዜ አንድ ቀለም ይጠቀማል። ወደ false ከተዋቀረ፣ ቀለሙ በራስ-ሰር ከእያንዳንዱ ሙሉ የሰዓት ሽክርክሪት በኋላ ይቀየራል።
ለማንኛውም ቀለም ትክክለኛዎቹን RGB እሴቶች በፍጥነት ለማግኘት፣ የRGB Color Picker መሣሪያን ይጠቀሙ፦ Color Picker ።
የሰዓት ማሳያ እና ሽክርክሪት
የአሁኑ ሰዓት እንደ HH:MM ተቀርጾ በትንሽ የቁምፊ ቋት ውስጥ ይቀመጣል። ማሳያው 8 ፒክስሎች ብቻ ስለሆነ፣ ጽሑፉ ከቀኝ ወደ ግራ በተቀላጠፈ ሁኔታ ይሽከረከራል። ሰዓቱ ሙሉ በሙሉ ከማሳያው ከወጣ በኋላ፣ የሚቀጥለው ቀለም (ከነቃ) ለሚቀጥለው ዙር ይመረጣል።
ማሳያ
ስኬቹን ከጫኑ በኋላ፦
- ESP32-S3 ከWi-Fi ጋር ይገናኛል
- ሰዓት ከበይነመረብ ይመሳሰላል
- የአሁኑ ሰዓት በRGB ማትሪክስ ላይ ይሽከረከራል
- ብሩህነት በቀን እና በሌሊት መካከል በራስ-ሰር ይቀየራል
- የጽሑፍ ቀለም ቋሚ ሆኖ ይቆያል ወይም በቅንብሮችዎ መሠረት ይዞራል
ውርዶች እና አገናኞች
ሙሉው የምንጭ ኮድ ከዚህ ጽሑፍ በታች ቀርቧል። የክፍሎች፣ መሣሪያዎች እና የዳታሼቶች አገናኞች ከዚህ ጽሑፍ በታች ይገኛሉ።
This tutorial is part of: ESP32-S3 RGB LED ማትሪክስ
- ESP32-S3 RGB LED ማትሪክስ ፕሮጀክት 1- መሰረታዊ ነጥብ
- የESP32-S3 RGB LED ማትሪክስ ፕሮጀክት 2 - የሚንቀሳቀስ ጽሑፍ
- የESP32-S3 RGB LED ማትሪክስ ፕሮጀክት 3 - ከሞባይል ስልክ የሚመጣ ጽሑፍ
- ESP32-S3 RGB LED ማትሪክስ ፕሮጀክት 4 - ዘንበል ነጥብ
- ESP32-S3 RGB LED ማትሪክስ ፕሮጀክት 5 - ቀስት ሁልጊዜ ወደ ላይ
- የESP32-S3 RGB LED ማትሪክስ ፕሮጀክት 6 - ሲብል ጨዋታ
- ESP32-S3 RGB LED ማትሪክስ ዋይ-ፋይ + NTP የሰዓት ፕሮጀክት -1 መሰረታዊ ሰዓት
- የESP32-S3 RGB LED ማትሪክስ የበይነመረብ ሰዓት ፕሮጀክት - 2 ሰዓት ባለብዙ ቀለም ጊዜ እና ቀን ማሳያ
- የESP32-S3 RGB LED ማትሪክስ የበይነመረብ ሰዓት ፕሮጀክት - 5 የቀስተ ደመና ቀለም
- የESP32-S3 RGB LED ማትሪክስ የበይነመረብ ሰዓት ፕሮጀክት - 4 የዘፈቀደ ቀለም
- 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();
}
}
እንደሚያስፈልግዎት ይችላል
-
አማዞን
-
ኢቤይ
-
አሊኤክስፕሬስPurchase ESP32-S3 RGB Matrix from AliExpresss.click.aliexpress.com
-
አሊኤክስፕሬስPurchase ESP32-S3 RGB Matrix from AliExpress (2)s.click.aliexpress.com
ምንጮች እና ምንጮች
-
ቪዲዮ
-
ውስጥ🎨 Color picker Toolrobojax.com
ፋይሎች📁
ፍሪትዚንግ ፋይል
-
esp32-S3-supermini-tht fritzing part
esp32-S3-supermini-tht.fzpz0.02 MB