پروژه ساعت اینترنتی ماتریس LED RGB ESP32-S3 - نمایش زمان و تاریخ چند رنگ 2 ساعته

پروژه ساعت اینترنتی ماتریس LED RGB ESP32-S3 - نمایش زمان و تاریخ چند رنگ 2 ساعته

ساعت اینترنتی ESP32-S3 RGB NeoMatrix با نمایش زمان و تاریخ

این پروژه یک ساعت اینترنتی با ماتریس RGB ESP32-S3 پیشرفته است که نه تنها زمان فعلی را نشان می‌دهد بلکه به‌طور دوره‌ای تاریخ را نیز نمایش می‌دهد. ESP32-S3 به Wi-Fi متصل می‌شود، زمان را از یک سرور NTP همگام‌سازی می‌کند و به صورت متوالی اسکرول می‌کند.HH:MMیا تاریخ (برای مثالSEP 21) در یک ماتریس RGB NeoMatrix 8×8. این نمایشگر از کنترل روشنایی خودکار روز/شب و رنگ‌های RGB قابل تنظیم پشتیبانی می‌کند.

ESP32-s3 ساعت اینترنتی انیمیشن

این ساعت چه کار می‌کند

پس از اتصال به شبکه Wi-Fi خود، ESP32-S3 زمان محلی فعلی را از اینترنت دریافت می‌کند. ساعت معمولاً زمان را پیمایش می‌کند، اما در فواصل زمانی مشخص به نمایش تاریخ سویچ می‌شود. رنگ متن می‌تواند به یک رنگ ثابت باشد یا به صورت خودکار میان چند رنگ تعریف‌شده توسط کاربر چرخش کند. در شب، روشنایی به‌طور خودکار کاهش می‌یابد تا نمایشگر برای چشم‌ها آسان‌تر شود.

کتابخانه‌های مورد استفاده

این اسکیس به کتابخانه‌های زیر وابسته است:

#include <WiFi.h>
#include "time.h"
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>

نصب کنیدآداfruit نئو ماتریساز مدیر کتابخانه آردوینو. تمام وابستگی‌های لازم مانندAdafruit GFX LibraryوAdafruit NeoPixelبه‌طور خودکار نصب خواهد شد.

پیکربندی کاربر مهم

SSID وای‌فای و رمز عبور (حساس به بزرگی و کوچکی حروف)

شما باید اطلاعات ورود به Wi-Fi را با اطلاعات شبکه خود جایگزین کنید:

const char* WIFI_SSID     = "WiFi";
const char* WIFI_PASSWORD = "passW0rd";

مهم:SSID های Wi-Fi عبارتند ازحساس به حروف بزرگ و کوچکبرای مثال، یک SSID به نام"Book"استنشدنهمانند"book"اگر حروف بزرگ و کوچک دقیقاً مطابقت نداشته باشند، ESP32 به اتصال موفق نخواهد بود.

سرور NTP، منطقه زمانی و صرفه‌جویی در وقت تابستانی

ساعت از یک سرور زمان اینترنتی استفاده می‌کند:

const char* ntpServer = "pool.ntp.org";

زمان محلی با استفاده از این جابجایی‌ها محاسبه می‌شود:

const long  gmtOffset_sec     = -5 * 3600; 
const int   daylightOffset_sec = 3600;
  • gmtOffset_secافتتاحیه UTC شما به ثانیه (مثال: UTC-5 =-5 * 3600)
  • 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] = {
  {17, 43, 171},  // Light Blue
  {255, 0, 0},    // Red
  {0, 255, 0},    // Green
  {255, 165, 0},  // Orange
  {255, 0, 255}   // Magenta
};

هر رنگ از مقادیر RGB (قرمز، سبز، آبی) استفاده می‌کند که دامنه‌ای از 0 تا 255 دارند. با تغییر این اعداد، می‌توانید به طور تقریبی هر رنگی را برای نمایش ایجاد کنید. اگرuseFixedColorتنظیم شده است برایtrue، ساعت همیشه از یک رنگ استفاده می‌کند. اگر تنظیم شود بهfalseرنگ به طور خودکار پس از هر بار اسکرول کامل تغییر می‌کند.

برای پیداکردن سریع و دقیق مقادیر RGB برای هر رنگی که می‌خواهید، از ابزار انتخاب‌گر رنگ RGB استفاده کنید:انتخابگر رنگ RGB.

فرمت تاریخ و زمان

زمان به صورت فرمت شده استHH:MMو در یک بافر کاراکتری کوچک ذخیره می‌شود. تاریخ به صورت یک رشته بزرگنمایی شده مانندSEP 21صفحه نمایش به طور خودکار در فواصل ثابت بین زمان و تاریخ تعویض می‌شود.

منطق اسکرول در یک نمایشگر ۸×۸

زیرا یک ماتریس ۸×۸ خیلی کوچک است تا متن کامل را به طور همزمان نمایش دهد، طراحی متن را به صورت افقی اسکرول می‌کند. زمانی که متن به طور کامل از نمایش خارج می‌شود، رنگ به‌روزرسانی می‌شود و محتوا در صورت نیاز بین زمان و تاریخ تغییر می‌کند.

تظاهرات

پس از بارگذاری طرح:

  • ESP32 به Wi-Fi متصل می‌شود
  • زمان از اینترنت همگام‌سازی شده است
  • زمان حال در حال حرکت در ماتریس است
  • تاریخ به طور دوره‌ای ظاهر می‌شود
  • درخشندگی به طور خودکار برای روز و شب تنظیم می‌شود

دانلودها و پیوندها

شِفر (کود) منبع کامل در زیر این مقاله ارائه شده است. واصل‌ها به بخش‌ها، ابزارها و ورق‌های داده نیز در زیر این مقاله در دسترس است.

تصاویر

ESP32 S3 Matrix
ESP32 S3 Matrix
ESP32 S3 Matrix  pin out
ESP32 S3 Matrix pin out
ESP32-S3_RGB_8x8_matrix-3
ESP32-S3_RGB_8x8_matrix-3
ESP32-S3_RGB_8x8_matrix1
ESP32-S3_RGB_8x8_matrix1
ESP32-S3_RGB_8x8_matrix-2
ESP32-S3_RGB_8x8_matrix-2
ESP32-s3_internet_clock_animation
ESP32-s3_internet_clock_animation
869-ESP32-S3 RGB LED Matrix Internte Clock Project 2 - Multi Color with Date
زبان: C++
کپی شد!

مواردی که ممکن است به آن‌ها نیاز داشته باشید

منابع و مراجع

فایل‌ها📁

فایل فریزینگ