مشروع ساعة الإنترنت لمصفوفة LED RGB ESP32-S3 - 3 ألوان ليلية مع التاريخ

مشروع ساعة الإنترنت لمصفوفة LED RGB ESP32-S3 - 3 ألوان ليلية مع التاريخ

ساعة الإنترنت ESP32-S3 RGB NeoMatrix مع سطوع تلقائي نهاري/ليلي

هذا المشروع هو ساعة إنترنت مصفوفة RGB باستخدام ESP32-S3 تتكيف تلقائيًا مع سطوع الضوء خلال النهار والليل. يتصل ESP32-S3 بشبكة Wi-Fi، ويقوم بمزامنة الوقت الحالي من خادم NTP، ويقوم بتمرير الوقت فيHH:MMتنسيق عبر مصفوفة RGB NeoMatrix بحجم 8×8. تدعم الساعة أيضًا ألوان RGB ثابتة أو متغيرة لنص العرض.

ما تفعله هذه الساعة

بعد تشغيل الجهاز، يقوم ESP32-S3 بالاتصال بشبكة الواي فاي الخاصة بك واسترجاع الوقت المحلي الحالي من الإنترنت. يتدفق الوقت بسلاسة عبر مصفوفة LED. خلال ساعات الليل، تنخفض سطوع الشاشة تلقائيًا إلى مستوى أقل، بينما خلال النهار تعود إلى مستوى أكثر سطوعًا.

ساعة الإنترنت بتنسيق ESP32-s3

المكتبات المستخدمة

تستخدم هذه الرسمة التخطيطية المكتبات التالية:

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

تثبيتأدافروت نيونماتريكسمن مدير مكتبة أردوينو. جميع الاعتمادات المطلوبة مثلAdafruit GFX LibraryوAdafruit NeoPixelسيتم تثبيته تلقائيًا.

تكوين المستخدم المهم

اسم الشبكة وكلمة المرور (حساسة لحالة الأحرف)

استبدل القيم التالية ببيانات اعتماد الواي فاي الخاصة بك:

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

مهم:شبكات الواي فاي هيحساس لحالة الأحرف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},  // Light Blue
  {255, 0, 0},    // Red
  {0, 255, 0},    // Green
  {255, 165, 0},  // Orange
  {255, 0, 255}   // Magenta
};

إذاuseFixedColorمحدد لـtrue، الساعة دائمًا تستخدم لونًا واحدًا. إذا تم تعيينها علىfalseيتغير اللون تلقائيًا بعد كل تمرير كامل للوقت.

للعثور بسرعة على قيم RGB الدقيقة لأي لون، استخدم أداة اختيار لون RGB:اختيار لون RGB.

عرض الوقت والتمرير

تنسيق الوقت الحالي هوHH:MMوتم تخزينه في ذاكرة مؤقتة صغيرة. نظرًا لأن الشاشة عرضها 8 بكسلات فقط، يتحرك النص بسلاسة من اليمين إلى اليسار. بمجرد أن تترك الساعة الشاشة تمامًا، يتم اختيار اللون التالي (إذا كان مفعلًا) للجولة التالية.

تظاهرة

بعد رفع الرسم التخطيطي:

  • يتصل ESP32-S3 بشبكة الواي فاي
  • الوقت متزامن من الإنترنت
  • يمر الوقت الحالي عبر مصفوفة RGB
  • السطوع يتغير تلقائيًا بين النهار والليل
  • يبقى لون النص ثابتًا أو يتغير بناءً على إعداداتك

التحميلات والروابط

يتم توفير الكود المصدر الكامل أدناه هذه المقالة. الروابط إلى الأجزاء والأدوات وأوراق البيانات متاحة أدناه هذه المقالة.

الصور

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
870-ESP32-S3 RGB LED Matrix Internte Clock Project 3 - Night Color with Date
اللغة: C++
تم النسخ!

الأشياء التي قد تحتاجها

الموارد والمراجع

ملفات📁

Fritzing File