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

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

#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 بر روی برد یکپارچه شده است، اما پایه داده هنوز باید در شِفر (کود) تعریف شود:

#define MATRIX_PIN 14GPIO 14 معمولاً در تختههای ماتریس RGB ESP32-S3 استفاده میشود. اگر نوع تخته شما از پایه دیگری استفاده میکند، این مقدار را بهروزرسانی کنید.
SSID و رمز عبور Wi-Fi (حساس به حروف بزرگ و کوچک)
جزئیات شبکه خود را جایگزین اطلاعات ورود به سیستم Wi-Fi کنید:
const char* WIFI_SSID = "your WiFi SSID";
const char* WIFI_PASSWORD = "passW0rd";مهم:شناسههای SSID وایفای عبارتند ازحساس به بزرگی و کوچکی حروف. یک SSID به نام"Book"فرق دارد با"book"اگر حروف بزرگ و کوچک دقیقا مطابقت نداشته باشند، ESP32-S3 از اتصال بازخواهد ماند.
سرور NTP، منطقه زمانی و تابستانی
همزمانسازی زمان با استفاده از یک سرور NTP اینترنتی انجام میشود:
const char* ntpServer = "pool.ntp.org";زمان محلی با استفاده از UTC و تفکیک صرفهجویی در وقت محاسبه میشود:
// Toronto-ish: UTC-5, plus 1 hour DST
const long gmtOffset_sec = -5 * 3600;
const int daylightOffset_sec = 3600;gmtOffset_secاختلاف زمان UTC به ثانیه (بر اساس موقعیت شما تنظیم شود)daylightOffset_secاستفاده کنید3600زمانی که ساعت تابستانی فعال است، یا0در غیر این صورت
این تنظیمات با استفاده از:
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);روشنایی خودکار روز / شب
ساعت به طور خودکار روشنایی را بر اساس ساعت فعلی تنظیم میکند:
const int DAY_BRIGHTNESS = 40;
const int NIGHT_BRIGHTNESS = 5;
const int NIGHT_START_HOUR = 22;
const int NIGHT_END_HOUR = 6;در بازه زمانی بین ساعت ۱۰ شب تا ۶ صبح، نمایش کم نور میشود تا در محیطهای تاریک از تابش خیرهکننده کاسته شود. در ساعات روز، ماتریس به روشنایی عادی بازمیگردد.
رفتار رنگ RGB تصادفی
یک لیست از پیش تعریف شده از رنگهای RGB در یک آرایه ذخیره شده است که هر رنگ با استفاده از مقادیر قرمز، سبز و آبی تعریف شده و این مقادیر از ۰ تا ۲۵۵ متغیر هستند:
uint8_t userColors[][3] = {
{255, 0, 0}, // Red
{0, 255, 0}, // Green
{0, 0, 255}, // Blue
{255, 165, 0}, // Orange
{255, 0, 255}, // Magenta
{0, 255, 255}, // Cyan
{255, 255, 0} // Yellow
};در هر دوره کامل اسکرول:
- چنــدعدد ساعترنگی تصادفی به آنها اختصاص داده میشود
- متن:دو نقطهرنگ تصادفی متفاوتی دریافت میکند
- متن:دقایق اعدادیک رنگ تصادفی دیگر دریافت کنید
این ترکیب رنگی که به طور مداوم در حال تغییر است، ساعت را از نظر بصری جالب نگه میدارد. برای ایجاد رنگهای سفارشی خود، میتوانید از ابزار انتخاب رنگ RGB استفاده کنید:انتخابگر رنگ RGB.
منطق رندرینگ زمان
زمان به سه بخش تقسیم میشود:
- ساعات:
HH - کولون:
: - دقایق:
MM
هر بخش به طور جداگانه طراحی شده است تا بتواند رنگ خود را داشته باشد، در حالی که همه بخشها به صورت یکجا حرکت میکنند تا یک انیمیشن اسکرول نرم را در نمایشگر ۸×۸ تشکیل دهند.
تولید رنگ تصادفی
برای اطمینان از تصادفی بودن رنگ، طرح در هنگام راهاندازی مولد عدد تصادفی را با استفاده از یک پایه آنالوگ غیرمتصل بذر میزند:
randomSeed(analogRead(0));این اطمینان میدهد که ترکیبهای رنگی در هر تقویت قدرت و هر چرخه نوار مختلف هستند.
تظاهرات
پس از بارگذاری طرح و تأمین برق برد از طریق USB-C:
- ESP32-S3 به شبکه Wi-Fi شما متصل میشود.
- زمان از اینترنت همزمانسازی شده است
- زمان به جلو میرود
HH:MMقالب - ساعتها، دو نقطه و دقیقهها در هر چرخه به رنگهای تصادفی تغییر میکنند.
- صفحه نمایش به طور خودکار در شب کم نور میشود.
دانلودها و پیوندها
شِفر (کود) منبع کامل در زیر این مقاله ارائه شده است. ابزارها و مراجع مفید در زیر این مقاله واصل شدهاند.
این آموزش بخشی از: ماتریس 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