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

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

#include <WiFi.h>
#include "time.h"
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>تثبيتأدافرويت نيو ماتريكساستخدام مدير مكتبة الأردوينو. dependencies الخاصة به، بما في ذلكAdafruit GFX LibraryوAdafruit NeoPixelسيتم تثبيته تلقائيًا.

تكوين المستخدم المهم
دبوس بيانات المصفوفة (مصفوفة RGB مدمجة)
على الرغم من أن مصفوفة RGB مرتبطة بلوحة ESP32-S3، إلا أنه يجب تعريف دبوس البيانات في الكود.

#define MATRIX_PIN 14يتم استخدام GPIO 14 عادةً في لوحات مصفوفة RGB للـ ESP32-S3. إذا كانت نسخة لوحتك تستخدم دبوسًا مختلفًا، يرجى تحديث هذه القيمة.
اسم شبكة Wi-Fi وكلمة المرور (حساسة لحالة الأحرف)
استبدل بيانات Wi-Fi الخاصة بك بتفاصيل الشبكة الخاصة بك:
const char* WIFI_SSID = "your WIFI";
const char* WIFI_PASSWORD = "passW0rd";مهم:شبكات الواي فاي هيحساس لحالة الأحرف. اسم 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إذا كان التوقيت الصيفي مفعلًا، أو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;بين الساعة 10 مساءً والساعة 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، مما يخلق تأثير قوس قزح مستمر يبدو مثيرًا للإعجاب بشكل خاص على الشاشة الصغيرة 8×8.
سلوك عرض الوقت والتاريخ
يحافظ الساعة على مخازن منفصلة للوقت والتاريخ:
- الوقت:
HH:MM - تاريخ:
MMM DD(على سبيل المثالJAN 08)
تظهر التاريخ في فترة ثابتة:
const uint32_t dateIntervalMs = 60000; // Show date every 1 minuteفي نهاية كل دورة تمرير كاملة، يقرر الكود ما إذا كان سيستمر في عرض الوقت أو التحول إلى التاريخ.
منطق التمرير على مصفوفة 8×8
لأن العرض ضيق فقط 8 بكسل، يتم تمرير النص بسلاسة من اليمين إلى اليسار. بمجرد أن يخرج النص بالكامل من الشاشة، يعيد المؤشر ضبطه ويتم تحميل المحتوى التالي (الوقت أو التاريخ) للمرور التالي.
عرض
بعد تحميل الرسم التخطيطي وتشغيل اللوحة عبر USB-C:
- ESP32-S3 يتصل بشبكة الواي فاي الخاصة بك
- يتم مزامنة الوقت من الإنترنت
- تتقدم الوقت
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 5 - السهم دائما لأعلى
- مشروع مصفوفة LEDs RGB ESP32-S3 6 - لعبة Cible
- مشروع مصفوفة LED RGB ESP32-S3 مع Wi-Fi + ساعة زمن NTP - الساعة الأساسية 1
- مشروع ساعة الإنترنت لشاشة مصفوفة LED RGB ESP32-S3 - عرض الوقت والتاريخ متعدد الألوان 2 ساعة
- مشروع ساعة الإنترنت لمصفوفة LED RGB ESP32-S3 - 3 ألوان ليلية مع التاريخ
- مشروع ساعة الإنترنت لشبكة مصفوفة LEDs RGB ESP32-S3 - 4 ألوان عشوائية
- اختبار مصفوفة LED RGB ESP32-S3 لإعداد RGB و GRB
الموارد والمراجع
-
فيديو
-
داخلي🎨 Color picker Toolrobojax.com
ملفات📁
Fritzing File
-
esp32-S3-supermini-tht fritzing part
esp32-S3-supermini-tht.fzpz0.02 MB