תוכן עניינים:

מנורת LED חכמה בשליטת סמארטפון: 7 שלבים
מנורת LED חכמה בשליטת סמארטפון: 7 שלבים

וִידֵאוֹ: מנורת LED חכמה בשליטת סמארטפון: 7 שלבים

וִידֵאוֹ: מנורת LED חכמה בשליטת סמארטפון: 7 שלבים
וִידֵאוֹ: מפסק תאורה טאץ עצמאי המתאים למערכת בית חכם טומסון - TSH-S1 2024, יולי
Anonim
Image
Image
מנורת LED חכמה בשליטת סמארטפון
מנורת LED חכמה בשליטת סמארטפון

אני תמיד חולם לשלוט במכשירי התאורה שלי. ואז מישהו הכין מנורת לד צבעונית להפליא. לאחרונה נתקלתי במנורת LED של ג'וזף קאשה ביוטיוב. קיבלתי השראה ממנה, והחלטתי להוסיף מספר פונקציות תוך שמירה על העיצוב העכשווי.

התוכנית היא להפוך את המנורה לידידותית יותר למשתמש על ידי הוספת מודול בלוטות 'ורצועת LED WS2812B RGB שניתן להתייחס אליה. זה איפשר לשלוט על צבע התאורה רק באמצעות אפליקציית סמארטפון.

שלב 1: אסוף את החומרים

אסוף את החומרים
אסוף את החומרים
אסוף את החומרים
אסוף את החומרים

כלים:

• תחנת הלחמה

• אקדח מפוח חימום

• מקדחה

• מסור מעגלי

• פאזל

• צבת חותך תיל

• צבת אף צר

חומרים:

• לוח אקרילי שקוף

• עץ ברוש יפני (או שניתן להשתמש בכל עץ כל עוד הוא יציב וחזק מספיק)

• ברגים

• מוט נירוסטה או מקל

• חוטים (אני משתמש בחוט אדום ושחור)

• פח הלחמה

רכיבי אלקטרוניקה:

• ארדואינו ננו

• מודול Bluetooth HC-05 (החלטתי להשתמש בזה מכיוון שקל יותר לקוד אותו מאשר מודול Wifi ESP8266)

• רצועת LED מסוג RGB WS2812B ניתנת להתייחסות

• מודול הורדת LM2596

• שקע חשמל של חבית DC

שלב 2: בניית מבנה המנורה

בניית מבנה המנורה
בניית מבנה המנורה
בניית מבנה המנורה
בניית מבנה המנורה

בשלב זה, יש לי שתי דרכים לבנות את מבנה שיטת המנורה- שיטת עיבוד עץ ושיטת הדפסה תלת-ממדית. אני משתמש בשיטה הראשונה. אם אתה מעדיף לעשות זאת באמצעות מדפסת תלת מימד, אל תהסס לדלג לשלב 2 עבור הדגם שעיצבתי.

בחלק העליון של המנורה אני מחמם ומכופף את לוח האקריליק לזווית של 90 ° כפי שמוצג למעלה. לוקח לי די הרבה זמן לכופף אותו לזווית וכיוון מושלמים כאלה.

לאחר מכן, עבור החלק התחתון של המנורה. לרוע המזל … היום בו אני עובד על החלק התחתון של המנורה, שכחתי לגמרי לצלם את הבנייה! הבנתי את זה כשסיימתי את הפרויקט הזה. אבל אני אנסה כמיטב יכולתי לספק לך את המדידה של החלק התחתון של המנורה.

בעיקרון, אתה רק צריך לחתוך ארבעה גושי עץ בגודל 13x6x2 ס מ (LxHxW). לאחר מכן, עליך לחתוך חתך דמוי מדרגות בקצה העץ. התמונה תוצג למעלה.

שלב 3: צורות התלת מימד

צורות התלת מימד
צורות התלת מימד
צורות התלת מימד
צורות התלת מימד

לכל מי שיש לו מדפסת תלת מימד משלו, אתם נמצאים בצעד הנכון. זה הפך את המנורה לידידותית למשתמש.

למען האמת, זה היה הצעד הקשה ביותר שעשיתי. זה הדבר הראשון שעשיתי מיד לאחר התקנת התוכנה!

אני משתמש ב- Sketchup Pro כדי לעצב את מבנה המנורה. למרבה הצער, אני לא מיומן מספיק כדי לעצב את רכיב הפנים שלו. הקישור לדגם התלת ממד שלי נמצא בקובץ למטה.

שלב 4: סכמטי הרכיבים

סכמטי הרכיבים
סכמטי הרכיבים

אני משתמש ב- Fritzing כדי לבנות את סכמות הרכיבים. הסכימה למעשה די קלה.

שלב 5: הקוד

הקוד
הקוד

לקידוד מנורת מצב הרוח הזו, השתמשתי בכמה ספריות מה- Arduino IDE. הספריות יופיעו למטה בשלב 7.

בשביל הקוד, אתה צריך את תוכנת Arduino עצמה. אני אתן את הקישור להורדה כאן.

כמו כן, הסקיצה או הקוד יוצגו למטה?

סיפקתי גם את הקובץ של הקוד ב- Github.com למקרה שהקוד למטה ארוך מכדי להעתיק אותו כאן;)

#include #include #include #ifdef _AVR_ #include #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 = LOW;

bool WhiteOld = LOW; bool RedOld = LOW; bool GreenOld = LOW; bool BlueOld = LOW; bool TopazOld = LOW; bool LilacOld = נמוך; bool RainbowOld = LOW; bool rgbOld = נמוך; int showType = 0;

הגדרת בטל () {

FastLED.addLeds (leds, NUM_LEDS); //////////

BT.begin (9600);

BT.println ("מחובר לארדואינו");

strip.setBrightness (בהירות);

strip.begin ();

strip.show ();

}

צ'אר א;

לולאת חלל () {

עבור (int i = 0; i <= 59; i ++) {leds = CRGB (255, 255, 255); FastLED.show (); } התנפלות = נמוכה; בול לבן = נמוך; bool כחול = נמוך; בול אדום = נמוך; בול ירוק = נמוך; בול טופז = נמוך; בול לילך = נמוך; bool קשת = נמוכה; bool rgb = נמוך; בול סוף; אם (BT.available ()) {a = (char) BT.read ();

אם (a == 'o')

{off = HIGH; BT.println ("כיבוי נוריות..");

}אַחֵר{

כבוי = נמוך; } // ================================================ ==============================================

אם (a == 'w')

{לבן = גבוה; BT.println ("נוריות המסתובבות לבנות");

}אַחֵר{

לבן = נמוך; } // ================================================ ==============================================

אם (a == 'b')

{כחול = גבוה; BT.println ("משתנה לכחול"); } אחר {כחול = נמוך; }

// ===========================================================================================

אם (a == 'r')

{אדום = גבוה; BT.println ("שינוי לאדום"); } אחר {אדום = נמוך; }

// ===========================================================================================

אם (a == 'g')

{ירוק = גבוה; BT.println ("משתנה לירוק"); } אחר {ירוק = נמוך; }

// ===========================================================================================

אם (a == 't')

{טופז = HIGH; BT.println ("שינוי TOPAZ"); } אחר {טופז = נמוך; }

// ===========================================================================================

אם (a == 'l')

{לילך = גבוה; BT.println ("שינוי ללילאק"); } אחר {לילך = נמוך; }

// ===========================================================================================

אם (a == 'a')

{קשת = HIGH; BT.println ("אנימציה RAINBOW"); } אחרת {קשת = נמוכה; } // ================================================ ==============================================

אם (a == 'm')

{rgb = HIGH; BT.println ("MIX COLORS"); } אחר {rgb = LOW; }} if (off == LOW && offOld == HIGH) {עיכוב (20); אם (כבוי == LOW) {showType = 0; // כבוי אנימציה סוג 0 startShow (showType); }}

// ===========================================================================================

if (White == LOW && WhiteOld == HIGH) {

עיכוב (20); אם (לבן == נמוך) {showType = 1; // אנימציה לבנה סוג 1 startShow (showType); }}

// ================================================= ============================================ אם (אדום == נמוך && RedOld == HIGH) {עיכוב (20); אם (אדום == נמוך) {showType = 2; // אנימציה אדומה סוג 2 startShow (showType); }}

// ===========================================================================================

אם (ירוק == LOW && GreenOld == HIGH) {

עיכוב (20); אם (ירוק == LOW) {showType = 3; // אנימציה ירוקה סוג 3 startShow (showType); }} // =============================================== ===============================================

אם (כחול == LOW && BlueOld == HIGH) {

עיכוב (20); אם (כחול == LOW) {showType = 4; // אנימציה כחולה סוג 4 startShow (showType); }}

// ===========================================================================================

if (Topaz == LOW && TopazOld == HIGH) {

עיכוב (20); אם (טופז == LOW) {showType = 5; // אנימציה טופז סוג 5 startShow (showType); }}

// ===========================================================================================

אם (לילך == LOW && LilacOld == HIGH) {

עיכוב (20); אם (לילך == LOW) {showType = 6; // אנימציה טופז סוג 6 startShow (showType); }} // =============================================== ===============================================

אם (קשת == LOW && RainbowOld == HIGH) {

עיכוב (20);

אם (קשת == LOW) {

showType = 8; // אנימציה קשת סוג 8 startShow (showType); }}

// ===========================================================================================

אם (rgb == LOW && rgbOld == HIGH) {

עיכוב (20);

אם (rgb == LOW) {

showType = 7; // מיקס אנימציה סוג 7 rgb = HIGH;

startShow (showType);

} }

WhiteOld = לבן;

RedOld = אדום; BlueOld = כחול; GreenOld = ירוק; TopazOld = טופז; LilacOld = לילך; offOld = off; RainbowOld = קשת; rgbOld = rgb;

}

void startShow (int i) {

לעבור (i) {

מקרה 0: colorWipe (strip. Color (0, 0, 0), SPEED); // שחור/כבוי

לשבור;

מקרה 1: strip.setBrightness (255); // משנה את הבהירות ל- MAX

colorWipe (strip. Color (255, 255, 255), באופן מיידי); // strip.setBrightness (בהירות) לבנה; // אפס את הבהירות לערך ברירת מחדל;

מקרה 2: colorWipe (strip. Color (255, 0, 0), SPEED); // אדום

לשבור;

מקרה 3: colorWipe (strip. Color (0, 255, 0), SPEED); // ירוק

לשבור;

מקרה 4: colorWipe (strip. Color (0, 0, 255), SPEED); // כחול

לשבור;

מקרה 5: colorWipe (strip. Color (0, 250, 255), SPEED); // טופז

לשבור;

מקרה 6: colorWipe (strip. Color (221, 130, 255), SPEED); // לילך

לשבור; מקרה 7: colorWipe (strip. Color (255, 0, 0), SPEED); // ColorWipe אדום (strip. Color (0, 255, 0), SPEED); // ירוק colorWipe (strip. Color (0, 0, 255), SPEED); // Blue theaterChase (strip. Color (0, 0, 127), SPEED); // Blue theaterChase (strip. Color (127, 0, 0), SPEED); // תיאטרון אדום צ'ייס (strip. Color (0, 127, 0), SPEED); // הפסקה ירוקה;

מקרה 8: rainbowCycle (25);

לשבור; }} void colorWipe (uint32_t c, uint8_t wait) {for (uint16_t i = 0; i

void rainbowCycle (uint8_t wait) {

uint16_t i, j;

עבור (j = 0; j <256*10; j ++) {// 5 מחזורים של כל הצבעים על הגלגל עבור (i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, Wheel (((i * 256 / strip.numPixels ()) + j) & 255)); } strip.show (); עיכוב (המתנה); }}

void theaterChase (uint32_t c, uint8_t wait) {

for (int j = 0; j <10; j ++) {// לעשות 10 מחזורים של רדיפה אחרי (int q = 0; q <3; q ++) {for (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, c); // הפעל כל פיקסל שלישי} strip.show ();

עיכוב (המתנה);

for (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, 0); // לכבות כל פיקסל שלישי}}}}

גלגל uint32_t (בייט WheelPos) {

WheelPos = 255 - WheelPos; אם (WheelPos <85) {strip return. 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. הפעל את ה- Bluetooth בסמארטפון שלך.

2. פתח את האפליקציה שהיא 'מסוף Bluetooth HC-05'.

3. כעת אתה אמור לראות את ההתקנים המשויכים על המסך. בחר 'HC-05'.

4. עכשיו אתה יכול לראות במסך החכם שלך מסך שחור שיציין 'מחובר לארדואינו'.

5. הנה החלק המהנה, אם תקליד 'b' בתיבת הטקסט, המנורה תהפוך לצבע כחול. להלן רשימת הפקודה שתוכל להקליד עבור המנורה:

- w ללבן

- ב לכחול

- g לירוק

- r לאדום

- לא לטופז

- l לילך

- אנימציה לקשת בענן

- o עבור כבוי

כיף נכון?

6. אחרון חביב, תוכל גם להתאים אישית את הלחצן מתחת למסך לטקסט הרצוי כפי שמוצג בתמונה למעלה.

שלב 7: תהנה מנורת מצב הרוח שלך

תהנה מנורת מצב הרוח שלך !!
תהנה מנורת מצב הרוח שלך !!
תהנה מנורת מצב הרוח שלך !!
תהנה מנורת מצב הרוח שלך !!
תהנה מנורת מצב הרוח שלך !!
תהנה מנורת מצב הרוח שלך !!

אני מקווה שאהבתם את המדריך הזה. זה היה פרויקט מאתגר מאוד עבורי אבל הצלחתי לסיים אותו לגמרי כילד בן 14. תן לי קצת משוב לשיפורים עתידיים.

תודה שקראתם וחג שמח!

מוּמלָץ: