جدول المحتويات:
- الخطوة 1: اجمع المواد
- الخطوة 2: بناء هيكل المصباح
- الخطوة 3: الأشكال ثلاثية الأبعاد
- الخطوة 4: مخطط المكونات
- الخطوة 5: الكود
- الخطوة 6: التحكم في المصباح
- الخطوة 7: استمتع بمصباح مزاجك
فيديو: مصباح LED ذكي يتم التحكم فيه عن طريق الهاتف الذكي عبر البلوتوث: 7 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:37
أحلم دائمًا بالتحكم في أجهزة الإضاءة الخاصة بي. ثم قام شخص ما بعمل مصباح LED ملون مذهل. لقد عثرت مؤخرًا على مصباح LED بواسطة جوزيف كاشا على Youtube. مستوحاة من ذلك ، قررت إضافة العديد من الوظائف مع الحفاظ على التصميم المعاصر.
تتمثل الخطة في جعل المصباح أكثر سهولة في الاستخدام من خلال إضافة وحدة Bluetooth وشريط WS2812B RGB LED القابل للتوجيه. جعل هذا من الممكن التحكم في لون الإضاءة فقط باستخدام تطبيق الهاتف الذكي.
الخطوة 1: اجمع المواد
أدوات:
• محطة لحام
• مسخن منفاخ مسدس
• آلة الحفر
• منشار دائري
• بانوراما
• كماشة قطع الأسلاك
• كماشة الأنف الضيق
المواد:
• لوح أكريليك شفاف
• خشب السرو الياباني (أو يمكنك استخدام أي خشب طالما أنه ثابت وقوي بدرجة كافية)
• مسامير
• عمود أو عصا من الفولاذ المقاوم للصدأ
• الأسلاك (أستخدم السلك الأحمر والأسود)
• لحام القصدير
مكونات الإلكترونيات:
• اردوينو نانو
• وحدة Bluetooth HC-05 (قررت استخدام هذا لأنه أسهل في البرمجة من وحدة Wifi ESP8266)
• WS2812B شريط إضاءة RGB LED قابل للتحكم
• LM2596 وحدة التنحي
• مقبس طاقة برميل تيار مستمر
الخطوة 2: بناء هيكل المصباح
في هذه الخطوة ، لدي طريقتان لبناء هيكل المصباح - طريقة النجارة وطريقة الطباعة ثلاثية الأبعاد. أستخدم الطريقة الأولى. إذا كنت تفضل القيام بذلك باستخدام طابعة ثلاثية الأبعاد ، فلا تتردد في التخطي إلى الخطوة 2 للطراز الذي قمت بتصميمه.
بالنسبة للجزء العلوي من المصباح ، أقوم بتسخين وثني لوح الأكريليك بزاوية 90 درجة كما هو موضح أعلاه. أستغرق وقتًا طويلاً لثنيها إلى زاوية واتجاه مثاليين.
بعد ذلك ، للجزء السفلي من المصباح. لسوء الحظ … في اليوم الذي أعمل فيه على الجزء السفلي من المصباح ، نسيت تمامًا التقاط صورة للبناء! أدركت أنه عندما انتهيت من هذا المشروع. لكنني سأبذل قصارى جهدي لتزويدك بقياس الجزء السفلي من المصباح.
في الأساس ، تحتاج فقط إلى قطع أربع كتل من الخشب بقياس 13 × 6 × 2 سم (طول × ارتفاع × عرض). بعد ذلك ، تحتاج إلى قطع يشبه الدرج عند حافة الخشب. سوف تظهر الصورة أعلاه.
الخطوة 3: الأشكال ثلاثية الأبعاد
بالنسبة لأي شخص لديه طابعة ثلاثية الأبعاد خاصة به ، فأنت في الخطوة الصحيحة. هذا جعل هذا المصباح سهل الاستخدام.
لأكون صادقًا ، كانت هذه أصعب خطوة قمت بها. هذا هو أول شيء فعلته مباشرة بعد تثبيت البرنامج!
أستخدم Sketchup Pro لتصميم هيكل المصباح. لسوء الحظ ، لست ماهرًا بما يكفي لتصميم مكوناتها الداخلية. رابط النموذج ثلاثي الأبعاد الخاص بي موجود في الملف أدناه.
الخطوة 4: مخطط المكونات
أستخدم فريتزينج لبناء مخططات المكونات. التخطيطي في الواقع سهل للغاية.
الخطوة 5: الكود
لترميز مصباح الحالة المزاجية هذا ، استخدمت بعض المكتبات من Arduino IDE. سيتم سرد المكتبات في الخطوة 7.
للحصول على الكود ، يجب أن يكون لديك برنامج Arduino نفسه. سأقدم الرابط للتنزيل هنا.
أيضا ، سوف يظهر الرسم أو الكود أدناه؟
لقد قدمت أيضًا ملف الكود في Github.com في حالة ما إذا كان الرمز أدناه طويلاً جدًا بحيث لا يمكن نسخه هنا ؛)
# تضمين # تضمين # تضمين #ifdef _AVR_ # تضمين #endif
SoftwareSerial BT (10 ، 11) ؛
#define LED_PIN 7 #define NUM_LEDS 60 #define BRIGHTNESS 200 #define SPEED 10 #define IMMEDIATELY 0 #define RAINBOW_SPEED 50 CRGB LEDs [NUM_LEDS] ؛
شريط Adafruit_NeoPixel = Adafruit_NeoPixel (NUM_LEDS ، LED_PIN ، NEO_GRB + NEO_KHZ800) ؛
bool offOld = منخفض ؛
منطقية WhiteOld = منخفضة ؛ منطقي RedOld = منخفض ؛ منطقي GreenOld = منخفض ؛ منطقي BlueOld = منخفض ؛ منطقي TopazOld = منخفض ؛ منطقي LilacOld = منخفض ؛ منطقية RainbowOld = منخفضة ؛ منطقي rgbOld = منخفض ؛ نوع int showType = 0 ؛
الإعداد باطل() {
FastLED.addLeds (المصابيح ، NUM_LEDS) ، //////////
BT.begin (9600) ؛
BT.println ("متصل بـ Arduino") ؛
strip.setBrightness (سطوع) ؛
strip.begin () ،
عرض الشريط()؛
}
شار أ ؛
حلقة فارغة() {
لـ (int i = 0 ؛ i <= 59 ؛ i ++) {المصابيح = CRGB (255 ، 255 ، 255) ؛ FastLED.show () ، } منطقي = منخفض ؛ منطقي أبيض = منخفض ؛ منطقي أزرق = منخفض ؛ منطقي أحمر = منخفض ؛ منطقي أخضر = منخفض ؛ منطقي توباز = منخفض ؛ منطقي ليلك = منخفض ؛ قوس قزح منطقي = منخفض ؛ منطقي rgb = منخفض ؛ نهاية منطقية إذا (BT.available ()) {a = (char) BT.read () ؛
إذا (أ == 'س')
{إيقاف = عالية ؛ BT.println ("إيقاف تشغيل مصابيح LED..") ؛
}آخر{
إيقاف = منخفض ؛ } // ================================================ ==============================================
إذا (أ == 'ث')
{أبيض = مرتفع ؛ BT.println ("TURNING LEDs WHITE") ؛
}آخر{
أبيض = منخفض ؛ } // ================================================ =============================================
إذا (أ == 'ب')
{أزرق = مرتفع ؛ BT.println ("التغيير إلى الأزرق") ؛ } آخر {أزرق = منخفض ؛ }
// ===========================================================================================
إذا (أ == 'ص')
{أحمر = مرتفع ؛ BT.println ("التغيير إلى الأحمر") ؛ } آخر {أحمر = منخفض ؛ }
// ===========================================================================================
إذا (أ == 'ز')
{أخضر = مرتفع ؛ BT.println ("التغيير إلى الأخضر") ؛ } آخر {أخضر = منخفض ؛ }
// ===========================================================================================
إذا (a == 't')
{توباز = مرتفع ؛ BT.println ("التغيير إلى توباز") ؛ } آخر {توباز = منخفض ؛ }
// ===========================================================================================
إذا (أ == 'ل')
{ليلك = عالي ؛ BT.println ("التغيير إلى أرجواني") ؛ } آخر {Lilac = LOW؛ }
// ===========================================================================================
إذا (أ == 'أ')
{قوس قزح = مرتفع ؛ BT.println ("قوس قزح الرسوم المتحركة") ؛ } آخر {قوس قزح = منخفض ؛ } // ================================================ =============================================
إذا (أ == 'م')
{rgb = عالية ؛ BT.println ("مزيج الألوان") ؛ } آخر {rgb = LOW؛ }} if (off == LOW && offOld == HIGH) {delay (20)؛ إذا (إيقاف == منخفض) {showType = 0 ؛ // إيقاف الرسوم المتحركة اكتب 0 startShow (showType) ؛ }}
// ===========================================================================================
إذا (أبيض == LOW && WhiteOld == مرتفع) {
تأخير (20) ؛ إذا (أبيض == منخفض) {showType = 1 ؛ // الرسوم المتحركة البيضاء النوع 1 startShow (showType) ؛ }}
// ================================================== ============================================= إذا (أحمر == منخفض && RedOld == HIGH) {delay (20) ؛ إذا (أحمر == منخفض) {showType = 2 ؛ // الرسوم المتحركة الحمراء النوع 2 startShow (showType) ؛ }}
// ===========================================================================================
إذا (الأخضر == LOW && GreenOld == مرتفع) {
تأخير (20) ؛ إذا (أخضر == منخفض) {showType = 3 ؛ // الرسوم المتحركة الخضراء النوع 3 startShow (showType) ؛ }} // =============================================== ===============================================
إذا (أزرق == LOW && BlueOld == مرتفع) {
تأخير (20) ؛ إذا (أزرق == منخفض) {showType = 4 ؛ // الرسوم المتحركة الزرقاء النوع 4 startShow (showType) ؛ }}
// ===========================================================================================
إذا (توباز == LOW && TopazOld == HIGH) {
تأخير (20) ؛ إذا (توباز == منخفض) {showType = 5 ؛ // Topaz animation Type 5 startShow (showType) ؛ }}
// ===========================================================================================
إذا (Lilac == LOW && LilacOld == HIGH) {
تأخير (20) ؛ إذا (Lilac == LOW) {showType = 6 ؛ // Topaz animation Type 6 startShow (showType) ؛ }} // =============================================== ===============================================
إذا (قوس قزح == LOW && RainbowOld == HIGH) {
تأخير (20) ؛
إذا (قوس قزح == منخفض) {
نوع العرض = 8 ؛ // قوس قزح للرسوم المتحركة من النوع 8 startShow (showType) ؛ }}
// ===========================================================================================
إذا (rgb == LOW && rgbOld == HIGH) {
تأخير (20) ؛
إذا (rgb == LOW) {
نوع العرض = 7 ؛ // مزيج من نوع الرسوم المتحركة 7 rgb = مرتفع ؛
startShow (showType) ؛
} }
WhiteOld = أبيض ؛
RedOld = أحمر ؛ BlueOld = أزرق ؛ GreenOld = أخضر ، توباز أولد = توباز ، LilacOld = ليلك ؛ offOld = إيقاف ؛ RainbowOld = قوس قزح ؛ rgbOld = rgb ؛
}
بدء باطل (int i) {
التبديل (ط) {
الحالة 0: مسح اللون (شريط اللون (0 ، 0 ، 0) ، السرعة) ؛ // قبالة أسود
استراحة؛
الحالة 1: strip.setBrightness (255) ؛ // يغير السطوع إلى MAX
مسح اللون (شريط ، لون (255 ، 255 ، 255) ، فورًا) ؛ // الشريط الأبيض. setBrightness (السطوع) ؛ // إعادة تعيين السطوع إلى القيمة الافتراضية لكسر ؛
الحالة 2: مسح اللون (شريط اللون (255 ، 0 ، 0) ، السرعة) ؛ // أحمر
استراحة؛
الحالة 3: مسح اللون (شريط اللون (0 ، 255 ، 0) ، السرعة) ؛ // لون أخضر
استراحة؛
الحالة 4: مسح اللون (شريط اللون (0 ، 0 ، 255) ، السرعة) ؛ // أزرق
استراحة؛
الحالة 5: مسح الألوان (شريط اللون (0 ، 250 ، 255) ، السرعة) ؛ // توباز
استراحة؛
العلبة 6: مسح الألوان (لون الشريط (221 ، 130 ، 255) ، السرعة) ؛ // ليلك
استراحة؛ الحالة 7: مسح الألوان (شريط اللون (255 ، 0 ، 0) ، السرعة) ؛ // اللون الأحمر مسح (لون الشريط (0 ، 255 ، 0) ، السرعة) ؛ // اللون الأخضر مسح (لون الشريط (0 ، 0 ، 255) ، السرعة) ؛ // Blue theatreChase (شريط اللون (0 ، 0 ، 127) ، السرعة) ؛ // Blue theatreChase (شريط اللون (127 ، 0 ، 0) ، السرعة) ؛ // Red theatreChase (شريط اللون (0 ، 127 ، 0) ، السرعة) ؛ // فاصل أخضر ؛
الحالة 8: دورة قوس قزح (25) ؛
استراحة؛ }} void colorWipe (uint32_t c، uint8_t wait) {for (uint16_t i = 0؛ i
دورة قوس قزح باطلة (uint8_t انتظر) {
uint16_t أنا ، ي ؛
لـ (j = 0 ؛ j <256 * 10 ؛ j ++) {// 5 دورات من كل الألوان على العجلة لـ (i = 0 ؛ i <strip.numPixels () ؛ i ++) {strip.setPixelColor (i ، Wheel ((((i * 256 / strip.numPixels ()) + j) & 255)) ؛ } عرض الشريط()؛ تأخير (انتظر) ؛ }}
void theatreChase (uint32_t c، uint8_t wait) {
لـ (int j = 0؛ j <10؛ j ++) {// do 10 cycles of chasing for (int q = 0؛ q <3؛ q ++) {for (int i = 0؛ i <strip.numPixels ()؛ i = i + 3) {strip.setPixelColor (i + q، c) ؛ // تشغيل كل بكسل ثالث} strip.show () ؛
تأخير (انتظر) ؛
لـ (int i = 0 ؛ i <strip.numPixels () ؛ i = i + 3) {strip.setPixelColor (i + q، 0) ؛ // إيقاف تشغيل كل بكسل ثالث}}}}
uint32_t Wheel (بايت WheelPos) {
WheelPos = 255 - WheelPos ؛ إذا (WheelPos <85) {return strip. Color (255 - WheelPos * 3 ، 0 ، WheelPos * 3) ؛ } إذا (WheelPos <170) {WheelPos - = 85 ؛ شريط الإرجاع اللون (0 ، WheelPos * 3 ، 255 - WheelPos * 3) ؛ } WheelPos - = 170 ؛ شريط العودة اللون (WheelPos * 3 ، 255 - WheelPos * 3 ، 0) ؛ }
الخطوة 6: التحكم في المصباح
يمكن التحكم في لون المصباح باستخدام هاتفك الذكي.
أولاً ، تحتاج إلى تثبيت التطبيق المسمى "Bluetooth Terminal HC-05" من متجر Google Play أو متجر تطبيقات Apple.
هذه هي خطوات التحكم في المصباح عبر هاتفك الذكي:
1. قم بتشغيل البلوتوث في هاتفك الذكي.
2. افتح التطبيق "Bluetooth Terminal HC-05".
3. يجب أن تشاهد الآن الأجهزة المقترنة على الشاشة. اختر "HC-05".
4. الآن يمكنك رؤية شاشة سوداء تظهر في هاتفك الذكي تشير إلى "متصل بـ Arduino".
5. هذا هو الجزء الممتع ، إذا قمت بكتابة "b" في مربع النص ، سيتحول المصباح إلى اللون الأزرق. فيما يلي قائمة بالأمر الذي يمكنك كتابته للمصباح:
- w للأبيض
- ب للأزرق
- g للأخضر
- r للاحمر
- ر للتوباز
- ل أرجواني
- أ للرسوم المتحركة قوس قزح
- يا للإيقاف
مرح ، أليس كذلك؟
6. أخيرًا وليس آخرًا ، يمكنك أيضًا تخصيص الزر الموجود أسفل الشاشة للنص الذي تريده كما هو موضح في الصورة أعلاه.
الخطوة 7: استمتع بمصباح مزاجك
آمل أن تعجبك هذه التعليمات. لقد كان مشروعًا صعبًا للغاية بالنسبة لي ، لكنني تمكنت من إكماله تمامًا كصبي يبلغ من العمر 14 عامًا. هل تعطيني بعض التعليقات من أجل التحسينات المستقبلية.
شكرا للقراءة وعيد ميلاد سعيد!
موصى به:
Neopixel Ws 2812 LED Strip مع Arduino يتم التحكم فيه عن طريق البلوتوث من Android أو Iphone: 4 خطوات
Neopixel Ws 2812 LED Strip مع Arduino يتم التحكم فيه عن طريق Bluetooth من Android أو Iphone: مرحبًا يا رفاق في هذه التعليمات لقد ناقشت حول كيفية التحكم في شريط neopixel led أو شريط ws2812 led من هاتف Android أو iPhone باستخدام اتصال Bluetooth. أضف شريط neopixel LED في منزلك مع Arduino مع
ESP8266 RGB LED STRIP WIFI التحكم - NODEMCU كجهاز تحكم عن بعد بالأشعة تحت الحمراء لشريط LED يتم التحكم فيه عبر Wifi - RGB LED STRIP للتحكم في الهاتف الذكي: 4 خطوات
ESP8266 RGB LED STRIP WIFI التحكم | NODEMCU كجهاز تحكم عن بعد بالأشعة تحت الحمراء لشريط LED يتم التحكم فيه عبر Wifi | RGB LED STRIP Smartphone Control: مرحبًا يا رفاق في هذا البرنامج التعليمي سوف نتعلم كيفية استخدام nodemcu أو esp8266 كجهاز تحكم عن بعد بالأشعة تحت الحمراء للتحكم في شريط RGB LED وسيتم التحكم في Nodemcu بواسطة الهاتف الذكي عبر wifi. لذلك يمكنك بشكل أساسي التحكم في RGB LED STRIP بهاتفك الذكي
مصباح المومياء - مصباح ذكي يتم التحكم به عبر WiFi: 5 خطوات (بالصور)
المصباح المومياء - المصباح الذكي الذي يتم التحكم فيه بواسطة WiFi: منذ حوالي 230 ألف عام تعلم الإنسان التحكم في الحريق ، وهذا يؤدي إلى تغيير كبير في أسلوب حياته حيث بدأ العمل في الليل باستخدام الضوء المنبعث من النار. يمكننا القول أن هذه هي بداية الإضاءة الداخلية. الآن أنا
Neopixels التي يتم التحكم فيها عن طريق الهاتف الذكي (شريط LED) مع تطبيق Blynk عبر WiFi: 6 خطوات
Neopixels التي تسيطر عليها الهواتف الذكية (شريط LED) مع تطبيق Blynk عبر شبكة WiFi: لقد أنشأت هذا المشروع بعد أن استلهمت من neopixels الذي يتم التحكم فيه بواسطة الهاتف الذكي في منزل الأصدقاء ولكن تم شراؤه من المتجر. فكرت في & quot؛ ما مدى صعوبة صنعها ، سيكون أرخص بكثير أيضًا! & quot؛ هذه هي الطريقة. ملاحظة: أفترض أنك FA
ضوء LED يتم التحكم فيه عن طريق البلوتوث باستخدام Arduino Uno: 7 خطوات
LED يتم التحكم فيه عن طريق Bluetooth باستخدام Arduino Uno: يدور هذا المشروع حول التحكم في مصابيح LED باستخدام Arduino وتطبيق Bluetooth. لقد استخدمت Arduino Uno لهذا المشروع ولكن يمكنك استخدام أي لوحة Arduino. قم بتنزيل كود المصدر هذا وقم بتحميله على لوحك قبل بدء المشروع