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

עץ חג המולד NeoPixel מבוקר Bluetooth: 5 שלבים
עץ חג המולד NeoPixel מבוקר Bluetooth: 5 שלבים

וִידֵאוֹ: עץ חג המולד NeoPixel מבוקר Bluetooth: 5 שלבים

וִידֵאוֹ: עץ חג המולד NeoPixel מבוקר Bluetooth: 5 שלבים
וִידֵאוֹ: Easy ESP32 Neopixel Christmas Tree 2024, נוֹבֶמבֶּר
Anonim

תהיתם כיצד להוסיף השנה IoT (Internet of Things) לעץ חג המולד שלכם? ובכן, זה בהחלט אפשרי! אני אישית קורא לפרויקט הזה "ArduXmas", והוא מורכב מפס לד מסוג RGB NeoPixel הנשלט על ידי לוח Arduino באמצעות בלוטות '. זהו פרויקט ידידותי למתחילים והקדמה מצוינת ל- Arduino e IoT, אז קנו את הכלים שלכם ובואו נצליח!

אספקה:

לפרויקט זה תזדקק ל:

  • Arduino (השתמשתי ב- Nano, אבל כל גרסה תעבוד, רק הקפד להפעיל את הלוח שלך כראוי)
  • רצועת LED NeoPixel WS2812b
  • מודול בלוטות 'HC-06
  • ספק כוח 5V 2A DC
  • שקע מתח/מחבר DC חבית
  • צלחת פנוליט לאחיזת הרכיבים
  • מארז מארז
  • סמארטפון אנדרואיד עם אפליקציית Blynk מותקנת

שלב 1: המעגל

המעגל
המעגל
המעגל
המעגל
המעגל
המעגל

האלקטרוניקה של הפרויקט הזה פשוטה מאוד. מודול Arduino, Bluetooth ורצועת LED מופעל על ידי אספקת 5V (ודא שכל ה- GND מחוברים יחדיו). לוח הארדואינו מופעל דרך יציאת 5V (שימו לב: הפעלת הארדואינו באמצעות יציאת 5V עלולה לגרום נזק ללוח אם אתם לא זהירים. וודאו כי אתם משתמשים באספקת חשמל מוסדרת 5V ואל תערבבו את +5V וחוטי GND). הזרם המסופק על ידי ספק הכוח שלך יהיה תלוי באורך רצועת ה- LED שלך. אני משתמש ב -180 נוריות עם 40% מבריכות המלאה ו -2 אמפר מחזיקות היטב, אך הקפד תמיד לספק את הזרם הדרוש (זכור: כל LED RGB משתמש בסביבות 20mA + 20mA + 20mA = 60mA).

מודול ה- Bluetooth HC-06 מחובר לסיכות 0 ו -1 (RX, TX) של הארדואינו, רק זכור כי כדי להשתמש במודול זה, סיכת ה- RX של HC-06 מחוברת ל- TX של Arduino וסיכת ה- TX של HC-06 היא מחובר ל- RX של Arduino. אלו הם סיכות החיבור הטוריות של הלוח, ומשמשות אותן על מנת לקבל את הפקודות מהסמארטפון. הוספתי מתג להפעלה/כיבוי של המודול בקלות וכך אוכל לכבות אותו בעת תכנות הלוח, אחרת המחשב אינו יכול לתקשר עם ה- Arduino.

במעגל סיכת הנתונים החוצה לרצועת ה- LED היא סיכה דיגיטלית 2, אך תוכל לבחור כל סיכת PWM ולשנות אותה בהתאם לקוד (זכור: לרצועות הלד של NeoPixel יש כיוון לאות הנתונים. חפש תמיד את סמלי חץ ברצועה שלך).

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

שלב 2: המארז

המארז
המארז
המארז
המארז
המארז
המארז

עבור המארז אני משתמש רק במארז אספקת חשמל ישן שמתאים יפה לרכיבים. אבטח הכל בעזרת דבק חם והשאיר חורים ליציאת ה- USB של הארדואינו, מתג HC-06, מחבר DC ומחבר רצועות LED.

שלב 3: אפליקציית Blynk

אפליקציית Blynk
אפליקציית Blynk
אפליקציית Blynk
אפליקציית Blynk
אפליקציית Blynk
אפליקציית Blynk

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

כתב ויתור: למרבה הצער יישום זה יפעל רק עבור סמארטפונים של אנדרואיד מכיוון שתכונת ה- Bluetooth עדיין נמצאת בגרסת ביטא ועדיין לא זמינה עבור iOS, זה גם אומר שלא ניתן יהיה לייצא את הפרויקט כאפליקציה עצמאית.

הגדר את האפליקציה שלך כדי לקבל את אסימון האימות של הפרויקט שלך בתיבת הדואר הנכנס שלך (אישור זה יהיה צורך מאוחר יותר בקוד של Arduino). באתר של בלינק יש הדרכה מצוינת צעד אחר צעד בנושא, בדוק את זה:

עבור פרויקט זה אני משתמש בשני כפתורים להפעלת 2 אנימציות אור מקודדות מראש; רכיב RGB אחד לקביעת צבע רצועת ה- LED; מחוון אחד לשליטה על הבהירות ורכיב Bluetooth אחד לחיבור ל- Arduino. בדוק את התמונות כדי לראות כיצד כל רכיב מוגדר. שימו לב לסיכות המשמשות לפרויקט זה מכיוון שאנו משתמשים בסיכות הווירטואליות של בלינק, זוהי תכונה נחמדה המאפשרת לשלוח נתונים מהאפליקציה לחומרה. למידע נוסף אודות סיכות וירטואליות:

שלב 4: קוד ארדואינו

קוד ארדואינו
קוד ארדואינו

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

ההתנהגות של נוריות הלדים מוכתבת על ידי משתנה האנימי שמשתנה כאשר הבקשה מתקבלת על ידי האפליקציה. אתה יכול להוסיף כמה שיותר אפשרויות לאנימציות שתרצה, פשוט הוסף את הפונקציה שלך למבנה המתג בפונקציה toggleAnimation () והקצה את קריאת הפין הווירטואלי המתאים בראש הקוד.

האנימציה הפועלת בלולאה () קשורה לטיימר הפועל במרווחים של 100ms. זה הכרחי, ואני לא ממליץ לשנות את זה כי זה מפריע לפקודה Blynk.run () והחיבור מושבת אם ספריית Blynk מזהה יותר מדי בקשות תוך פרק זמן קצר.

מוּמלָץ: