جدول المحتويات:
- اللوازم
- الخطوة 1: المستلزمات
- الخطوة 2: تحديد مصدر الطاقة المناسب لجدار LedWall الخاص بك
- الخطوة الثالثة: سلك الطاقة
- الخطوة 4: توصيل التيار الكهربائي
- الخطوة 5: تشغيل ESP32S
- الخطوة 6: تشغيل شرائط إضاءة LED
- الخطوة 7: توصيل ESP32 بشرائط إضاءة LED
- الخطوة 8: تجهيز الكمبيوتر: C2102 Driver
- الخطوة 9: برنامج Arduino - إضافة دعم ESP32 - الخطوة 1
- الخطوة 10: برنامج Arduino - إضافة دعم ESP32 - الخطوة 2
- الخطوة 11: برنامج Arduino - إضافة دعم ESP32 - الخطوة 3
- الخطوة 12: إضافة مكتبات إلى Arduino IDE
- الخطوة 13: الكود الأول: اختبار ستراند
- الخطوة 14: نموذج كود SHU
- الخطوة 15: تحميل الكود إلى ESP32
- الخطوة 16: الاقتباسات
فيديو: 500 LED حائط مع ESP32: 16 خطوة
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
مرحبا جميعا! بنهاية هذا البرنامج التعليمي ، ستعرف كيفية إنشاء جدار LED الخاص بك.
يعتمد هذا البرنامج التعليمي على برنامج صيفي مقدم في جامعة Sacred Heart.
استمتع!
اللوازم
المستلزمات المذكورة أدناه.
الخطوة 1: المستلزمات
لنبدأ بجمع كل ما نحتاجه لإكمال الحائط LED الخاص بنا:
(تم إنشاء الروابط بتاريخ 7/10/2019)
برنامج Arduino IDE
جهاز التحكم الصغير ESP32
ضوء LED بكسل
مزود الطاقة
حبل القوة
أداة تجريد الأسلاك
الكابلات الطائر اللوح
سلك كهربائي
الخطوة 2: تحديد مصدر الطاقة المناسب لجدار LedWall الخاص بك
هناك طريقة رياضية بسيطة لمعرفة مصدر الطاقة الأفضل بالنسبة لك.
نحن نستخدم قانون قوة أوم: P = IxV (الطاقة = الشدة × الجهد)
يتم تحديد الجهد بواسطة المصابيح الخاصة بنا: في هذه الحالة 5V.
تعتمد الكثافة على الأجهزة ، حيث يستهلك مصباح LED واحد 30 مللي أمبير.
كل شريط من 50 ليد يستهلك 50 × 30 مللي أمبير = 1250 مللي أمبير = 1.25 أمبير.
لذلك ، فإن جدارنا 500 LED يستهلك 10 أضعاف (10 شرائح): 12.5A.
استخدام الطاقة هو 5V x 12.5A = 62.5W للمصابيح.
بالطبع ، في الجزء العلوي من المصابيح ، تحتاج إلى حساب ESP وكل عنصر آخر في دائرتك.
لدينا مصدر طاقة 60 أمبير ، ولدينا أكثر مما نحتاج إليه.
الخطوة الثالثة: سلك الطاقة
مزود الطاقة لدينا يأتي مع موصلات سلكية. نحتاج إلى تكييف سلك طاقة لتوصيله بمقبس 110 فولت.
- قم بقطع الموصل الأنثوي من سلك الطاقة. سنحتفظ بالجزء الذكري ، المعروف باسم NEMA 5-15P.
- قم بفصل الكبل بحيث يكون حوالي 3 مم من النحاس مرئيًا على جميع الأسلاك.
إليك فيديو تعليمي سريع حول كيفية نزع الأسلاك:
الخطوة 4: توصيل التيار الكهربائي
الآن نحن على استعداد لتوصيل مصدر الطاقة لدينا!
افصل دائمًا مصدر الطاقة عند العمل عليه.
الأسلاك
- يتصل السلك الأسود (الطور) بالدبوس "L" الخاص بمصدر الطاقة
- يتصل السلك الأبيض (محايد) بالدبوس "N" الخاص بمصدر الطاقة
- يتصل السلك الأخضر بالدبوس "الأرضي" الخاص بمصدر الطاقة
(إذا كانت الأسلاك الداخلية لسلك الطاقة ليست بنفس ألوان أسلاكنا ، فابحث عن المخططات عبر الإنترنت.)
اختبارات
قم بتوصيل سلك طاقة الكمبيوتر بأي مأخذ كهربائي. يجب أن يضيء مؤشر LED الأخضر الموجود على مصدر الطاقة.
الخطوة 5: تشغيل ESP32S
بالنظر إلى المرساب الكهروستاتيكي الخاص بك ، يجب أن تكون هناك ملصقات بجوار كل دبوس. إذا لم يتم تسميته ، يمكنك البحث عن "pinout" الخاص بـ ESP الفردي عبر الإنترنت.
باستخدام سلك توصيل من ذكر إلى أنثى أو سلك كهربائي ، قم بتوصيل:
- دبوس "5V" ESP32S إلى "+ V" لمصدر الطاقة (برتقالي في الصورة أعلاه)
- دبوس "GND" ESP32S في قسم "-V" من مصدر الطاقة (أسود في الصورة أعلاه)
(في بعض أجهزة الترسيب الكهروستاتيكية ، يُطلق على الدبوس "5V" اسم "VCC" بدلاً من ذلك ، فهما يعنيان نفس الشيء.)
يرجى ملاحظة أن المرساب الكهروستاتيكي الخاص بك قد يكون له "pinout" مختلف عن الذي نستخدمه ، وعلى هذا النحو قد تقوم بتوصيل الأسلاك الخاصة بك إلى موقع مختلف عن الصورة أعلاه ، طالما أنك تتصل بالمسامير الصحيحة (5V & GND) ، لا يهم الموقع الفعلي على اللوحة.
الاختبار: قم بتوصيل مصدر الطاقة الخاص بك مرة أخرى ، وإذا كان المرساب الكهروستاتيكي الخاص بك يحتوي على مؤشر LED (معظمه يفعل) ، فسوف يضيء للإشارة إلى إرسال الطاقة إلى المرساب الكهروستاتيكي. تهانينا!
الخطوة 6: تشغيل شرائط إضاءة LED
باستخدام الأسلاك الكهربائية:
- قم بتوصيل السلك الأحمر لشريط إضاءة LED بـ V + على مصدر الطاقة.
- قم بتوصيل السلك الأزرق لشريط إضاءة LED بالمحول V- الموجود بمصدر الطاقة.
الخطوة 7: توصيل ESP32 بشرائط إضاءة LED
يقوم ESP32 بإرشاد برنامج التشغيل WS2811 المتصل بكل لون ودرجة إضاءة يحتاجان إليها. للقيام بذلك ، يحتاج ESP32 الخاص بنا إلى كابل "بيانات" إلى الشرائط.
تأتي شرائط LED مع موصل 3 أسلاك:
- الأحمر: الطاقة- الأزرق: الحيادي- الأبيض: البيانات
دعنا نقوم بتوصيل كابل شريط White Led بمسمار رقمي على ESP. يرجى تذكر رقم PIN المحدد حيث سنحتاج إلى تحديده في الكود لاحقًا.
الخطوة 8: تجهيز الكمبيوتر: C2102 Driver
الآن بعد أن أصبحت أجهزتنا سلكية ، نريد تحميل أول كود لدينا لاختباره. افتراضيًا ، يتعذر على Windows أو MacOs الاتصال بـ ESP32 الخاص بنا. للقيام بذلك ، نحتاج إلى تنزيل "برنامج تشغيل" لشريحة اتصال ESP USB: C2102.
يجب تنزيل برنامج التشغيل هذا وتثبيته:
- Windows 10: https://www.silabs.com/documents/public/software/C…- Windows 7/8 / 8.1: https://www.silabs.com/documents/public/software/C…- Mac:
(الروابط اعتبارًا من 7/10/2019)
الخطوة 9: برنامج Arduino - إضافة دعم ESP32 - الخطوة 1
قبل أن نتمكن من استخدام ESP32 الخاص بنا مع برنامج Arduino ، نحتاج إلى التأكد من التعرف عليه ، افتراضيًا ، لا يمكن لبرنامج Arduino ترجمة التعليمات البرمجية لـ ESP32 ، فلنصلح ذلك:
الخطوة 1: إضافة لوحات إلى المدير
1 - انقر في Arduino على خيار File >> Preferences
2- في حقل "عناوين URL لمدير اللوحات الإضافية" ، انسخ الرابط التالي:
الخطوة 10: برنامج Arduino - إضافة دعم ESP32 - الخطوة 2
الآن بعد أن عرف برنامج Arduino المزيد من اللوحات ، دعنا نثبت دعم ESP32 الخاص بنا
الخطوة 2: تثبيت دعم ESP32
1 - في القائمة العلوية ، حدد: الأدوات >> مجلس الإدارة >> مدير اللوحات
2 - ستظهر نافذة. استخدم مربع البحث الموجود في الزاوية اليمنى العليا للعثور على "ESP32".
3 - حدد مكان صنع إسبرريف. قم بتثبيته. (انظر الصورة)
الخطوة 11: برنامج Arduino - إضافة دعم ESP32 - الخطوة 3
الآن بعد أن أصبح بإمكان برنامج Arduino الاتصال بـ ESP32 ، فلنقم بتوصيله بالكمبيوتر والتحقق من أن كل شيء يعمل.
1 - لنتأكد من أننا نعمل على منصة ESP32:
انقر فوق أدوات >> لوحة >> وحدة ESP32 Dev
1- دعنا نتأكد من أن برنامج Arduino يعرف كيفية التواصل مع ESP الخاص بنا:
انقر فوق أدوات >> المنفذ وحدد المنبثق من توصيل هذا الكبل.
الأهمية:
إذا كان لديك أي مشكلة في تحميل الكود إلى ESP الخاص بك ، فتحقق من هاتين القائمتين أولاً ، إذا لم يتم تحديد المنفذ بعلامة اختيار ، فلن يتصل به برنامج Arduino.
الخطوة 12: إضافة مكتبات إلى Arduino IDE
سنقوم الآن بإضافة مكتبة تسمح لنا باختبار الحائط LED الخاص بنا!
1- اضغط على Tools >> Manage Libraries.
2- في الزاوية اليمنى العليا ، ابحث عن NeoPixelBus. حدد موقع "NeoPixelBus by Makuna" ، قم بتثبيته (انظر الصورة)
مكتبات أخرى مثيرة للاهتمام محتملة: (غير مطلوب لهذا البرنامج التعليمي)
- NeoMatrix
- FastLed
- Artnet
- GFX
الخطوة 13: الكود الأول: اختبار ستراند
كودنا الأول هو مثال من المكتبة.
يمكنك إما نسخ / لصق الكود أدناه أو النقر فوق:
ملف >> أمثلة >> Adafruit NeoPixelBus >> Strandtest
يرجى التأكد من تغيير LED_PIN الخاص بك إلى الذي استخدمته لتوصيل المصابيح الخاصة بك فعليًا. استخدمنا 13 طوال هذا البرنامج التعليمي.
تأكد أيضًا من تكييف حجم الخصلة مع متغير LED_COUNT.
// برنامج LED Striptest أساسي كل يوم.
# include # ifdef _AVR_ #include // مطلوب لـ 16 ميجا هرتز Adafruit Trinket #endif // أي دبوس على Arduino متصل بـ NeoPixels؟ #define LED_PIN 13 // كم عدد NeoPixels المتصلة بـ Arduino؟ #define LED_COUNT 500 // قم بتعريف كائن شريط NeoPixel الخاص بنا: شريط Adafruit_NeoPixel (LED_COUNT ، LED_PIN ، NEO_GRB + NEO_KHZ800) ؛ // الوسيطة 1 = عدد البكسل في شريط NeoPixel // Argument 2 = رقم دبوس Arduino (معظمها صالح) // Argument 3 = أعلام نوع البكسل ، أضف معًا حسب الحاجة: // NEO_KHZ800 800 KHz bitstream (معظم منتجات NeoPixel مع / WS2812 LEDs) // NEO_KHZ400 400 كيلو هرتز (كلاسيكي 'v1' (ليس v2) FLORA بكسل ، برامج تشغيل WS2811) // NEO_GRB Pixels موصلة لتيار GRB bitstream (معظم منتجات NeoPixel) // NEO_RGB Pixels موصلة بـ RGB bitstream (v1 FLORA pixels ، وليس v2) // NEO_RGBW Pixels سلكية لـ RGBW bitstream (منتجات NeoPixel RGBW) // وظيفة الإعداد () - تعمل مرة واحدة عند بدء التشغيل -------------------- ------------ إعداد باطل () {// هذه الخطوط مخصصة لدعم Adafruit Trinket 5V 16 MHz. // أي لوحة أخرى ، يمكنك إزالة هذا الجزء (ولكن لا ضرر من تركه): # إذا تم تعريفه (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1) ؛ #endif // نهاية الكود الخاص بـ Trinket. strip.begin () ، // INITIALIZE NeoPixel strip object (مطلوب) strip.show () ؛ // قم بإيقاف تشغيل جميع وحدات البكسل في أسرع وقت ممكن strip.setBrightness (50) ؛ // اضبط السطوع على حوالي 1/5 (max = 255)} // وظيفة loop () - تعمل بشكل متكرر طالما أن اللوحة تعمل --------------- حلقة فارغة () {// املأ طول الشريط بألوان مختلفة… colorWipe (شريط. لون (255 ، 0 ، 0) ، 50) ؛ // اللون الأحمر مسح (شريط اللون (0 ، 255 ، 0) ، 50) ؛ // اللون الأخضر مسح (شريط اللون (0 ، 0 ، 255) ، 50) ؛ // أزرق // قم بعمل تأثير مسرحي بألوان مختلفة… theatreChase (شريط. اللون (127 ، 127 ، 127) ، 50) ؛ // أبيض ، مسرح مسرح نصف سطوع (شريط اللون (127 ، 0 ، 0) ، 50) ؛ // أحمر ، مسرح مسرح نصف سطوع (شريط اللون (0 ، 0 ، 127) ، 50) ؛ // أزرق ، قوس قزح نصف سطوع (10) ؛ // دورة قوس قزح المتدفقة على طول المسرح الشريطي بالكامل ChaseRainbow (50) ؛ // Rainbow-Enhanced theatreChase variant} // بعض الوظائف الخاصة بنا لإنشاء تأثيرات متحركة ----------------- // املأ وحدات البكسل الشريطية واحدة تلو الأخرى بلون. لم يتم مسح الشريط // أولاً ؛ أي شيء هناك سيتم تغطيته بكسل ببيكسل. قم بتمرير اللون // (كقيمة مفردة 32 بت `` معبأة '' ، والتي يمكنك الحصول عليها عن طريق استدعاء // strip. Color (أحمر ، أخضر ، أزرق) كما هو موضح في وظيفة الحلقة () أعلاه) ، // و وقت التأخير (بالملي ثانية) بين البكسل. void colorWipe (uint32_t color، int wait) {لـ (int i = 0؛ i strip.setPixelColor (i، color)؛ // تعيين لون البكسل (في ذاكرة الوصول العشوائي) strip.show ()؛ // تحديث الشريط لمطابقة التأخير (انتظر) ؛ // توقف للحظة}} // أضواء مطاردة على غرار المسرح. مرر لونًا (قيمة 32 بت ، // a la strip. Color (r ، g ، b) كما هو مذكور أعلاه) ، ووقت تأخير (بالمللي ثانية) // بين الإطارات. b <3؛ b ++) {// 'b' يحسب من 0 إلى 2… strip.clear ()؛ // اضبط كل وحدات البكسل في RAM على 0 (إيقاف) // تعداد 'c' من 'b' إلى نهاية Strip في خطوات من 3 … لـ (int c = b ؛ c strip.setPixelColor (c ، color) ؛ // ضبط البكسل 'c' على قيمة 'color'} strip.show () ؛ // تحديث الشريط بتأخير محتويات جديد (انتظر)؛ // توقف للحظة}}} // دورة قوس قزح على طول الشريط بأكمله. تمرير وقت التأخير (بالمللي ثانية) بين الإطارات. عجلة الألوان. // نطاق عجلة الألوان 65536 لكنه حسنًا إذا قمنا بالتدحرج ، لذا // فقط عد من 0 إلى 5 * 65536. إضافة 256 إلى firstPixelHue في كل مرة // يعني أننا سنجري 5 * 65536/256 = 1280 يمر عبر هذه الحلقة الخارجية: لـ (long firstPixelHue = 0 ؛ firstPixelHue <5 * 65536 ؛ firstPixelHue + = 256) {لـ (int i = 0 ؛ I // إزاحة درجة لون البكسل بمقدار لإحداث ثورة كاملة واحدة من // عجلة الألوان (نطاق 65536) على طول الشريط // (strip.numPixels () steps): int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels ()) ؛ // strip. ColorHSV () يمكن أن يأخذ 1 أو 3 وسيطات: صبغة (من 0 إلى 65535) أو // اختياريًا إضافة التشبع والقيمة (السطوع) (كل 0 إلى 255). // هنا نستخدم فقط متغير تدرج اللون أحادي الوسيط. يتم تمرير النتيجة // خلال strip.gamma32 () لتوفير ألوان "حقيقية" // قبل التعيين لكل بكسل: strip.setPixelColor (i، strip.gamma32 (strip. ColorHSV (pixelHue)))؛} strip.show ()؛ // تحديث الشريط بتأخير محتويات جديد (انتظر)؛ // إيقاف مؤقت للحظة}} // شاشة عرض مسرحية مُحسّنة بألوان قوس قزح. تمرير وقت التأخير (في مللي ثانية) بين الإطارات. void theatreChaseRainbow (int wait) {i nt firstPixelHue = 0 ؛ // يبدأ البكسل الأول باللون الأحمر (تدرج اللون 0) لـ (int a = 0 ؛ a <30 ؛ a ++) {// كرر 30 مرة … لـ (int b = 0 ؛ b RGB strip.setPixelColor (c ، color) ؛ / / اضبط البكسل 'c' على قيمة 'color'} strip.show () ؛ // تحديث الشريط بتأخير محتويات جديدة (انتظر) ؛ // إيقاف مؤقت للحظة FirstPixelHue + = 65536/90 ؛ // دورة واحدة من عجلة الألوان أكثر من 90 إطارًا}}}
الخطوة 14: نموذج كود SHU
يعمل الكود الخاص بنا على تشغيل جميع المصابيح واحدًا تلو الآخر للتأكد من أنها تعمل:
// سوف يتنقل هذا المثال بين إظهار 500 بكسل باللون الأحمر
#includeconst uint16_t PixelCount = 500 ؛ // يفترض هذا المثال 4 بكسل ، مما يؤدي إلى تصغيره إلى حدوث خطأ ثابت uint8_t PixelPin = 13 ؛ // تأكد من ضبط هذا على الدبوس الصحيح ، الذي تم تجاهله لـ Esp8266
#define colorSaturation 128 // ثلاثة عناصر بكسل بترتيب وسرعات مختلفة
شريط NeoPixelBus (PixelCount ، PixelPin) ؛
// شريط NeoPixelBus (PixelCount ، PixelPin) ؛ RGBColor أحمر (0 ، تشبع اللون ، 0) ؛ RGBColor أخضر (تشبع اللون ، 0 ، 0) ؛ RGBColor أزرق (0 ، 0 ، تشبع اللون) ؛ RGBColor أبيض (تشبع اللون) ؛ RGBColor أسود (0) ؛ HslColor hslRed (أحمر) ؛ HslColor hslGreen (أخضر) ؛ HslColor hslBlue (أزرق) ؛ HslColor hsl أبيض (أبيض) ؛ HslColor hslBlack (أسود) ؛ إعداد باطل () {Serial.begin (115200) بينما (! Serial) ؛ // انتظر إرفاق المسلسل Serial.println () ؛ Serial.println ("تهيئة…") ؛ Serial.flush () ، // هذا يعيد تعيين جميع النيوبكسلات إلى شريط خارج الحالة.egin () ؛ عرض الشريط()؛ Serial.println () ، Serial.println ("قيد التشغيل …") ؛ } حلقة فارغة () {delay (100) ؛ Serial.println ("ألوان R ، G ، B ، W …") ؛ لـ (int i = 0؛ i <= 499؛ i ++) {// اضبط الألوان ، // إذا لم تتطابق بالترتيب ، فأنت بحاجة إلى استخدام شريط ميزة NeoGrbFeature. SetPixelColor (i ، red) ؛ شريط. () ؛ تأخير (100) ؛ strip. SetPixelColor (i ، hslRed) ؛ عرض الشريط()؛ تأخير (100) ؛ }}
الخطوة 15: تحميل الكود إلى ESP32
الأهمية:
لتكون قادرًا على تحميل الكود إلى أي وحدة تحكم صغيرة ، يجب أن يكون في وضع البرمجة ، معظمهم يفعل ذلك تلقائيًا وكل ما عليك فعله هو النقر فوق تحميل في البرنامج.
يتطلب ESP32 الخاص بنا الضغط على زر البرمجة أثناء إرسال الرمز. تحتاج أيضًا إلى إعادة تعيينه بعد تحميل الرمز عن طريق الضغط مرة واحدة على زر إعادة الضبط.
يوجد زر برمجة ESP32 على اليسار ، وزر إعادة الضبط على اليمين.يرجى الرجوع إلى الدليل الخاص بك إذا كان لديك متحكم صغير آخر.
الخطوة 16: الاقتباسات
تم إجراء هذا التوجيه بمساعدة البرامج التعليمية التالية:
randomnerdtutorials.com/installing-the-esp…
يستخدم لتثبيت ESP32 في Arduino IDE.
المؤلفون:
ناثانيال بارونيغابرييل كاسترو
محرر:
سيدريك بليملينج
موصى به:
ساعة حائط تنفجر بنفسك بإضاءة متحركة: 20 خطوة (بالصور)
ساعة حائط قابلة للانفجار DIY مع إضاءة الحركة: في هذا الفيديو التعليمي / سأوضح لك خطوة بخطوة كيفية صنع ساعة حائط ذات مظهر إبداعي وفريد من نوعه مع نظام إضاءة حركة مدمج. . عندما أمشي
ساعة حائط خفية: 27 خطوة (مع صور)
ساعة الحائط الخفية: مرور الوقت شيء لا يمكننا التحكم فيه. يحدث بنفس المعدل إذا كنا نائمين أو مستيقظين أو نشعر بالملل أو منخرطين. مع الأحداث الجارية ، من المهم أن تتذكر أن الوقت سيمضي. بينما ننتظر مرور الوقت ، لماذا لا نصنع شيئًا
ساعة حائط مغناطيسية فاتنة: 24 خطوة (مع صور)
ساعة الحائط المغناطيسية الفاتنة: لطالما فتنتني الساعات الميكانيكية. لطالما بدت الطريقة التي تعمل بها جميع التروس الداخلية والينابيع والموازنات معًا لإنتاج ساعة موثوق بها دائمًا بعيدة المنال بسبب مجموعة المهارات المحدودة لدي. الحمد لله الإلكترونيات الحديثة
اللعب بساعة حائط اليد: 14 خطوة
اللعب بساعة حائط اليد: ساعة الحائط الإلكترونية اليدوية (الكوارتز بمناسبة العلامات التجارية) ليست في الوقت الحاضر شيئًا مميزًا. يمكن شراؤها في العديد من المتاجر. في بعضها تكون رخيصة للغاية ؛ بسعر حوالي 2 يورو (50 كرونة تشيكية). يمكن أن يكون هذا السعر المنخفض دافعًا لإلقاء نظرة فاحصة على
مشروع رائع مع ساعة حائط: 11 خطوة
مشروع رائع مع ساعة حائط: Hii Friend ، هذه المدونة ستكون رائعة لأنني في هذه المدونة سأقوم بعمل دائرة تأثير LED مذهلة باستخدام ساعة الحائط القديمة