یہ ٹیوٹوریل کا حصہ ہے: ESP32-S3 RGB LED میٹرکس
ESP32-S3 RGB میٹرکس ماڈیول کا استعمال کرتے ہوئے تفریحی اور عملی ایپلی کیشنز کے لیے تخلیق کرنے کے لیے زبردست پروجیکٹ۔ دیگر ویڈیوز کے لنکس اس مضمون کے نیچے ہیں۔
ESP32-S3 RGB LED میٹرکس انٹرنیٹ کلاک پروجیکٹ - تاریخ کے ساتھ 3 رات کے رنگ
ESP32-S3 RGB NeoMatrix انٹرنیٹ کلاک جس میں خودکار دن/رات کی چمک شامل ہے
یہ پروجیکٹ ایک ESP32-S3 RGB میٹرکس انٹرنیٹ کلاک ہے جو دن اور رات کے دوران خود بخود چمک کو ایڈجسٹ کرتا ہے۔ ESP32-S3 وائی-فائی سے منسلک ہوتا ہے، NTP سرور سے موجودہ وقت کو ہم آہنگ کرتا ہے، اور وقت کو HH:MM فارمیٹ میں 8×8 RGB NeoMatrix پر اسکرول کرتا ہے۔ کلاک ڈسپلے ٹیکسٹ کے لیے فکسڈ یا سائیکلنگ RGB رنگوں کو بھی سپورٹ کرتا ہے۔

یہ کلاک کیا کرتا ہے
پاور آن کرنے کے بعد، ESP32-S3 آپ کے وائی-فائی نیٹ ورک سے منسلک ہوتا ہے اور انٹرنیٹ سے موجودہ مقامی وقت حاصل کرتا ہے۔ وقت LED میٹرکس پر آسانی سے اسکرول ہوتا ہے۔ رات کے اوقات میں، ڈسپلے خود بخود کم چمک پر مدھم ہو جاتا ہے، جبکہ دن کے دوران یہ واپس روشن سطح پر چلا جاتا ہے۔
استعمال شدہ لائبریریاں
یہ اسکیچ درج ذیل لائبریریاں استعمال کرتا ہے:

#include <WiFi.h>
#include "time.h"
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
Arduino Library Manager سے Adafruit NeoMatrix انسٹال کریں۔ تمام ضروری انحصار جیسے Adafruit GFX Library اور Adafruit NeoPixel خود بخود انسٹال ہو جائیں گے۔

اہم صارف ترتیب
وائی-فائی SSID اور پاس ورڈ (کیس حساس)
درج ذیل اقدار کو اپنی وائی-فائی اسناد سے تبدیل کریں:

const char* WIFI_SSID = "WiFi";
const char* WIFI_PASSWORD = "passW0rd";
اہم: وائی-فائی SSIDs کیس حساس ہیں۔ ایک SSID جس کا نام "Book" ہے وہی نہیں ہے جو "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}, // ہلکا نیلا
{255, 0, 0}, // سرخ
{0, 255, 0}, // سبز
{255, 165, 0}, // نارنجی
{255, 0, 255} // میجنٹا
};
اگر useFixedColor کو true پر سیٹ کیا گیا ہے، تو کلاک ہمیشہ ایک رنگ استعمال کرتا ہے۔ اگر false پر سیٹ کیا گیا ہے، تو وقت کے ہر مکمل اسکرول کے بعد رنگ خود بخود تبدیل ہو جاتا ہے۔
کسی بھی رنگ کی صحیح RGB اقدار کو فوری طور پر تلاش کرنے کے لیے، RGB کلر پکر ٹول استعمال کریں: کلر پکر ۔
وقت کی نمائش اور اسکرولنگ
موجودہ وقت HH:MM کے طور پر فارمیٹ کیا جاتا ہے اور ایک چھوٹے کریکٹر بفر میں محفوظ کیا جاتا ہے۔ چونکہ ڈسپلے صرف 8 پکسلز چوڑا ہے، ٹیکسٹ دائیں سے بائیں آسانی سے اسکرول ہوتا ہے۔ ایک بار جب وقت مکمل طور پر ڈسپلے سے نکل جاتا ہے، تو اگلا رنگ (اگر فعال ہو) اگلے پاس کے لیے منتخب کیا جاتا ہے۔
مظاہرہ
اسکیچ اپ لوڈ کرنے کے بعد:
- ESP32-S3 وائی-فائی سے منسلک ہوتا ہے
- وقت انٹرنیٹ سے ہم آہنگ ہوتا ہے
- موجودہ وقت RGB میٹرکس پر اسکرول ہوتا ہے
- چمک دن اور رات کے درمیان خود بخود تبدیل ہوتی ہے
- ٹیکسٹ کا رنگ آپ کی ترتیبات کی بنیاد پر فکسڈ رہتا ہے یا سائیکل ہوتا ہے
ڈاؤن لوڈز اور لنکس
مکمل سورس کوڈ اس مضمون کے نیچے فراہم کیا گیا ہے۔ پرزوں، ٹولز، اور ڈیٹا شیٹس کے لنکس اس مضمون کے نیچے دستیاب ہیں۔
یہ ٹیوٹوریل کا حصہ ہے: ESP32-S3 RGB LED میٹرکس
- ESP32-S3 آر جی بی ایل ای ڈی میٹرکس پروجیکٹ 1- بنیادی ڈاٹ
- ESP32-S3 آر جی بی ایل ای ڈی میٹرکس پروجیکٹ 2 - اسکرولنگ ٹیکسٹ
- ESP32-S3 RGB LED میٹرکس پروجیکٹ 3 - موبائل فون سے ٹیکسٹ
- ESP32-S3 آر جی بی ایل ای ڈی میٹرکس پروجیکٹ 4 - جھکاؤ ڈاٹ
- ESP32-S3 آر جی بی ایل ای ڈی میٹرکس پروجیکٹ 5 - تیر ہمیشہ اوپر
- ESP32-S3 آر جی بی ایل ای ڈی میٹرکس پروجیکٹ 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