في هذا الدرس، سنقوم بإنشاء مشروع CheerLights باستخدام ESP32، الذي سيسSynchronize الألوان على مستوى عالمي من خلال MQTT. لن يقوم هذا المشروع بتغيير الألوان بناءً على المدخلات من مستخدمين آخرين فحسب، بل سيعرض أيضًا اللون الحالي وعدد المرات التي تم تحديثه فيها على شاشة LCD. النتيجة هي عرض ممتع لإمكانات إنترنت الأشياء، يوضح كيف يمكن للأجهزة التفاعل والحفاظ على اتصال المستخدمين عبر المسافات. لمزيد من التوضيح، شاهد الفيديو في (في الفيديو عند 00:00).
esp32-52-تشجيع-ضوء-شاشة-رئيسية
شرح الأجهزة
لبناء هذا المشروع، ستحتاج إلى متحكم دقيق ESP32، وشريط LED WS2812، وشاشة LCD. يعمل ESP32 كدماغ العملية، مستفيدًا من قدراته المدمجة في الواي فاي للاتصال بالإنترنت واستقبال رسائل MQTT. وهذا يسمح بتحديثات فورية لألوان LED بناءً على مدخلات عالمية من مستخدمين آخرين.
شريط LED WS2812 هو خيار شائع للمشاريع التي تتطلب LEDs RGB قابلة للتوجيه. يمكن التحكم في كل LED بشكل مستقل، مما يسمح بعروض لونية غنية. ستوفر شاشة LCD تأكيدًا مرئيًا للون الحالي وعدد المرات التي تم تغييرها فيها، مما يعزز تفاعل المستخدم.
cheeLights_LCD
تفاصيل ورقة البيانات
الصانع
صن فاوندير
رقم الجزء
ESP32
جهد المنطق/إدخال/إخراج
٣.٣ فولت
جهد التزويد
٥ ف
تيار الخرج (لكل قناة)
20 مللي أمبير
تيار الذروة (لكل قناة)
60 مللي أمبير
توجيه تردد PWM
٤٠٠ هرتز
عتبات منطق الإدخال
0.15 فولت (منخفض)، 0.8 فولت (مرتفع)
فقدان الجهد / Rدي إس (أون)/ الإشباع
0.2 فولت
الحدود الحرارية
85 درجة مئوية
حزمة
وحدة ESP32
ملاحظات / متغيرات
يحتوي على واي فاي وبلوتوث مدمجين
تأكد من توفير الطاقة المناسبة لـ ESP32 (5 فولت) وشريط WS2812 (5 فولت).
استخدم أرضية مشتركة بين ESP32 وشريط LED.
قم بتنفيذ خادم MQTT مناسب لمزامنة الألوان.
انتبه إلى اتصال دبابيس البيانات لجهاز WS2812 (الدبوس 14 حسب الكود).
كن حذرًا بشأن عدد مصابيح LED؛ تجاوز حدود الطاقة يتطلب مصادر طاقة إضافية.
تعليمات التوصيل
ESP32-11_LCD-wiringesp32-47-cheer-light-wiring
لربط المكونات، ابدأ بتوصيل شريط LED WS2812. قم بتوصيل دبوس الأرض (عادةً أسود) لشريط LED إلى دبوس الأرض على ESP32. بعد ذلك، قم بتوصيل دبوس VCC (عادةً أحمر) لشريط LED إلى مخرج 5 فولت على ESP32. أخيرًا، قم بتوصيل دبوس البيانات (غالبًا أصفر) إلى دبوس GPIO 14 على ESP32.
لشاشة LCD، قم بتوصيل دبوس الأرض (غالبًا أسود) بالأرض على ESP32. يجب توصيل دبوس VCC (عادةً أحمر) بمخرج 5V. يتصل دبوس SDA (عادةً رمادي) بدبوس GPIO رقم 21، بينما يتصل دبوس SCL (عادةً أبيض) بدبوس GPIO رقم 22. يتيح هذا الإعداد للـ ESP32 التواصل مع شاشة LCD وعرض المعلومات حسب الحاجة.
أمثلة على الشيفرة ودليل الاستخدام
في دالة الإعداد، نقوم بتهيئة شاشة LCD ونتصل بشبكة Wi-Fi. يعرض الكود أدناه كيفية تعريف المكتبات الضرورية وإعداد شاشة LCD:
#include
#include
LiquidCrystal_I2C lcd(0x27, 16,2); // set the LCD address
void setup() {
Serial.begin(115200);
lcd.init(); // initialize the lcd
lcd.backlight(); // Turns on the LCD backlight.
}
هذا يقوم بتهيئة الشاشة LCD للاستخدام، مما يسمح لها بعرض الرسائل. المقتطف التالي يوضح كيفية إنشاء اتصال Wi-Fi:
تقوم هذه الوظيفة بإنشاء اتصال بشبكة الواي فاي المحددة، مع عرض رسالة على شاشة LCD أثناء الاتصال. أخيرًا، يتم التعامل مع منطق تغيير اللون في دالة الاستدعاء:
void callback(char* topic, byte* message, unsigned int length) {
String messageTemp;
for (int i = 0; i < length; i++) {
messageTemp += (char)message[i];
}
if (String(topic) == "cheerlights") {
setColor(messageTemp);
}
}
تقوم هذه الوظيفة بالاستماع إلى الرسائل الواردة على موضوع "أضواء التشجيع" وتحديث اللون وفقًا لذلك. يتم تحميل الشيفرة الكاملة أدناه المقال، لذا تأكد من مراجعتها للحصول على التنفيذ الكامل.
عرض / ما يمكن توقعه
عند الانتهاء من المشروع، يمكنك توقع أن يتغير لون شريط LED بناءً على المدخلات من تغذية MQTT العالمية. ستعرض شاشة LCD اسم اللون الحالي وعدد مرات تغييره. إذا قمت بفصل الاتصال بالإنترنت، ستشير شاشة LCD إلى "جارٍ الاتصال..." حتى يتم إعادة الاتصال (في الفيديو عند 12:30).
تشمل pitfalls الشائعة التأكد من استخدام الدبابيس الصحيحة للاتصالات البيانات والتحقق من دقة بيانات اعتماد الواي فاي. إذا كانت هناك أي تناقضات في SSID أو كلمة المرور، ستفشل ESP32 في الاتصال، وستستمر شاشة LCD في عرض رسالة الاتصال.