این آموزش بخشی است از: ماتریس LED RGB مدل ESP32-S3
پروژه جالبی برای ایجاد کاربردهای سرگرمکننده و کاربردی با استفاده از ماژول ماتریس RGB ESP32-S3.
پروژه ساعت اینترنتی ماتریس LED RGB ESP32-S3 - ۵ رنگ رنگین کمان
ساعت اینترنتی ESP32-S3 با افکت رنگین کمان
این پروژه یک ساعت اینترنتی ماتریس RGB با ESP32-S3 است که به Wi-Fi متصل میشود، زمان محلی را از یک سرور NTP همزمان میکند و زمان را در حال حرکت نشان میدهد.HH:MMدر قالب ماتریس RGB NeoMatrix 8×8 داخلی. بر خلاف نسخههای رنگی ثابت یا تصادفی، این ساعت از یک انتقال نرم استفاده میکند.اثر رنگین کمانکه هر حرف به طور مداوم در طیف RGB جابجا میشود در حین اینکه به سمت پایین میچرخد. ساعت همچنین به طور دورهای تاریخ را نمایش میدهد و به طور خودکار روشنایی را بین روز و شب تنظیم میکند.

چگونه این ساعت کار میکند
پس از اتصال به USB-C، ESP32-S3 به شبکه Wi-Fi شما متصل میشود و زمان محلی فعلی را از اینترنت دریافت میکند. نمایشگر معمولاً زمان را نشان میدهد، اما در فواصل مشخص به نمایش تاریخ تغییر حالت میدهد. هم زمان و هم تاریخ با استفاده از یک افکت رنگین کمانی دینامیک نمایش داده میشوند که یک نمایش زنده و متحرک را بر روی ماتریس کوچک ۸×۸ ایجاد میکند.
کتابخانههای مورد استفاده
اسکچ به کتابخانههای زیر تکیه دارد:

#include <WiFi.h>
#include "time.h"
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>نصب کنیدآدافرایت نئو ماتریساستفاده از مدیریت کتابخانه آردوینو. وابستگیهای آن، از جملهAdafruit GFX LibraryوAdafruit NeoPixelبه طور خودکار نصب خواهد شد.

پیکربندی مهم کاربر
پایه داده ماتریس (ماتریس RGB داخلی)
هرچند ماتریس RGB به برد ESP32-S3 متصل است، اما پایه داده هنوز باید در شِفر (کود) تعریف شود:

#define MATRIX_PIN 14پایه GPIO 14 معمولاً در بردهای ماتریس RGB ESP32-S3 استفاده میشود. اگر نوع برد شما از پایه متفاوتی استفاده میکند، این مقدار را بهروز کنید.
SSID و رمز عبور Wi-Fi (حساس به بزرگی و کوچکی حروف)
جزییات شبکه خود را با اطلاعات اعتبار Wi-Fi خود جایگزین کنید:
const char* WIFI_SSID = "your WIFI";
const char* WIFI_PASSWORD = "passW0rd";مهم:SSIDهای Wi-Fi عبارتند ازحساس به حروف بزرگ و کوچک. یک SSID به نام"Book"یکسان نیست با"book"اگر حروف بزرگ و کوچک دقیقاً مطابقت نداشته باشند، ESP32-S3 قادر به اتصال نخواهد بود.
سرور NTP، منطقه زمانی و ساعت تابستانی
ساعت زمان را با استفاده از سرور NTP اینترنت هماهنگ میکند:
const char* ntpServer = "pool.ntp.org";زمان محلی با استفاده از این اختلافها محاسبه میشود:
// Toronto-ish: UTC-5, plus 1 hour DST
const long gmtOffset_sec = -5 * 3600;
const int daylightOffset_sec = 3600;gmtOffset_sec: اختلاف زمانی در ثانیه (مثال: UTC-5 =-5 * 3600)daylightOffset_secاستفاده کنید3600اگر DST فعال است، یا0اگر استفاده نشود
این مقادیر با استفاده از:
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);تنظیم خودکارBrightness روز / شب
روشنایی به طور خودکار بر اساس ساعت فعلی تغییر میکند:
const int DAY_BRIGHTNESS = 40;
const int NIGHT_BRIGHTNESS = 5;
const int NIGHT_START_HOUR = 22;
const int NIGHT_END_HOUR = 6;بین ساعت ۱۰ شب تا ۶ صبح، ماتریس کم نور میشود تا تابش خیره کننده کاهش یابد. در ساعات روز، روشنایی عادی بازگردانده میشود.
اثر رنگین کمان
این پروژه از یک چرخ رنگ RGB کلاسیک استفاده میکند تا رنگهای رنگینکمانی روانی تولید کند. هر شخصیت با یک تغییر رنگ کمی متفاوت طراحی شده است و رنگها در طول زمان تغییر میکنند و یک انیمیشن رنگینکمانی جاری ایجاد میکنند.
// 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);
}با حرکت متن، هر خصیصه در طیف RGB پیش میرود و اثر رنگینکمان مداومی ایجاد میکند که بهویژه بر روی صفحه نمایش کوچک ۸×۸ به طرز چشمگیری به نظر میرسد.
رفتار نمایش زمان و تاریخ
ساعت حافظههای جداگانهای برای زمان و تاریخ نگه میدارد:
- زمان:
HH:MM - تاریخ:
MMM DD(برای مثالJAN 08)
تاریخ در یک بازه ثابت نمایش داده میشود:
const uint32_t dateIntervalMs = 60000; // Show date every 1 minuteدر پایان هر چرخه کامل اسکرول، شِفر (کود) تصمیم میگیرد که آیا به نمایش زمان ادامه دهد یا به تاریخ منتقل شود.
منطق اسکرول در یک ماتریس ۸×۸
به دلیل اینکه نمایشگر تنها 8 پیکسل عرض دارد، متن به آرامی از راست به چپ حرکت میکند. زمانی که متن کاملاً از صفحه خارج شد، نشانگر بازنشانی میشود و محتوای بعدی (زمان یا تاریخ) برای دور بعدی بارگذاری میشود.
مظاهرات
پس از بارگذاری طرح و تأمین برق برد از طریق USB-C:
- ESP32-S3 به شبکه Wi-Fi شما متصل میشود.
- زمان از اینترنت همزمانسازی شده است
- زمان به جلو میغلتد
HH:MMفرمت - تاریخ بهطور دورهای نمایش داده میشود.
- تمام متن با یک اثر رنگین کمان متحرک و نرم نمایش داده میشود.
- نمایش به طور خودکار در شب کم نور میشود و در طول روز روشنتر میشود.
دانلودها و واصلها
شِفر (کود) منبع کامل در زیر این مقاله ارائه شده است. ابزارها و منابع مفید، از جمله انتخابگر رنگ RGB، نیز در زیر این مقاله واصل شدهاند.
این آموزش بخشی از: ماتریس LED RGB مدل ESP32-S3
- پروژههای ماتریس LED رنگی ESP32-S3 (بازی کجشدن، متن، پیکان، دموی وایفای)
- پروژه ماتریس LED RGB ESP32-S3 2 - متن متحرک
- پروژه ماتریس LED RGB ESP32-S3 3 - متن از تلفن همراه
- پروژه ماتریس LED RGB ESP32-S3 4 - نقطه کج
- پروژه ماتریس LED RGB ESP32-S3 ۵ - پیکان همیشه به سمت بالا
- پروژه ماتریس LED RGB ESP32-S3 6 - بازی Cible
- پروژه ساعت پایه ESP32-S3 ماتریس LED RGB Wi-Fi + ساعت زمان NTP -1
- پروژه ساعت اینترنتی ماتریس LED RGB ESP32-S3 - نمایش زمان و تاریخ چند رنگ 2 ساعته
- پروژه ساعت اینترنتی ماتریس LED RGB ESP32-S3 - ۳ رنگ شب با تاریخ
- پروژه ساعت اینترنتی ماتریس LED RGB ESP32-S3 - ۴ رنگ تصادفی
- آزمایش ماتریس LED RGB ESP32-S3 برای تنظیم RGB و GRB
منابع و مراجع
-
ویدیو
-
داخلی🎨 Color picker Toolrobojax.com
فایلها📁
فایل فریزینگ
-
esp32-S3-supermini-tht fritzing part
esp32-S3-supermini-tht.fzpz0.02 MB