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

מחוון טמפרטורות RGB (עם XinaBox): 5 שלבים (עם תמונות)
מחוון טמפרטורות RGB (עם XinaBox): 5 שלבים (עם תמונות)

וִידֵאוֹ: מחוון טמפרטורות RGB (עם XinaBox): 5 שלבים (עם תמונות)

וִידֵאוֹ: מחוון טמפרטורות RGB (עם XinaBox): 5 שלבים (עם תמונות)
וִידֵאוֹ: Светодиодная лампочка RGB+CCT под E27, с управлением по zigbee - обзор, интеграция в Home Assistant 2024, יולי
Anonim
מחוון טמפרטורות RGB (עם XinaBox)
מחוון טמפרטורות RGB (עם XinaBox)

זהו רשמי המאמר הראשון שלי בנושא Instructables, אז אני מודה שאני משתמש בהזדמנות זו כעת כדי לנסות זאת. קבל תחושה כיצד פועלת הפלטפורמה, כל צד חווית המשתמש בה. אבל בזמן שאני עושה את זה, הבנתי שאני יכול גם לנצל את ההזדמנות כדי לשתף על פרויקט פשוט שעבדתי עליו היום (שימוש במוצרים מ- XinaBox, שאגב, מבוטא כ- "X-in-a- קופסא").

במדריך פשוט זה בן 5 שלבים אעסוק בנושאים הבאים:

  • דרושים רכיבים
  • חיבור xChips השונים יחד.
  • הגדרת סביבת Arduino IDE.
  • כתיבת הקוד
  • ולבסוף, בודקים את הרעיון

מה לא אשתף במדריך זה:

  • עד כמה שאני אוהב לצלול להסביר מה כל אחד מה- xChips האלה יכול לעשות וכיצד אתה יכול לתפעל אותם לביצוע פונקציות מסוימות, זה לא היה מטרתו של ההנחיה הזו. אני מתכוון לפרסם בעתיד הקרוב הוראות אחרות שיכנסו לכל אחת מה- xChips השונות הזמינות באמצעות קטלוג המוצרים של XinaBox.
  • אני לא אכנס ליסודות הקוד של Arduino מכיוון שאני מניח שכבר יש לך ניסיון ברמה מסוימת בשימוש ב- Arduino IDE כמו גם הבנה ברמה בסיסית של תכנות C/C ++.

שלב 1: מה שאתה צריך …

מה אתה צריך…
מה אתה צריך…
מה אתה צריך…
מה אתה צריך…
מה אתה צריך…
מה אתה צריך…

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

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

להלן הפריטים שנזדקק להם (עיין בתמונות המסופקות בחלק זה של המדריך):

  1. IP02 - ממשק תכנות USB מתקדם
  2. CC03 - Arm Cortex M0+ Core
  3. SW02 - חיישן VOC ומזג אוויר (המשתמש בחיישן BME680 של BOSCH)
  4. מחברי xBUS - לאפשר תקשורת I2C בין xChips השונים (x2)
  5. מחבר xPDI - לאפשר תכנות וניפוי באגים (x1)

שלב 2: חיבור החלקים

חיבור החלקים
חיבור החלקים
חיבור החלקים
חיבור החלקים
חיבור החלקים
חיבור החלקים

כדי לחבר את כל החלקים יחדיו, נתחיל תחילה בחתיכה אחת של מחבר xBUS ומחבר xPDI.

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

בין IP02 ל- CC03 xChips, די קל לזהות את נקודות החיבור.

עבור CC03, זה יהיה הצד הדרומי. עבור IP02, זה יהיה הצד הצפוני של xChip.

ברגע שזה נעשה, נוסיף מחבר xBUS נוסף לצד המערבי של x0hip CC03.

בוצע?

עכשיו, פשוט חבר את SW02 xChip לצד המערבי של CC03.

לפני שנכניס IP02 למחשב הנייד, ודא כי האפשרויות הבאות נבחרו עבור שני המתגים:

  • B נבחר (מתג שמאלי)
  • DCE נבחר (מתג ימין)

לבסוף, אנו מוכנים להכניס את IP02 למחשב הנייד שלנו ולהתחיל בהגדרת ה- Arduino IDE.

שלב 3: הגדרת Arduino IDE

הגדרת Arduino IDE
הגדרת Arduino IDE
הגדרת Arduino IDE
הגדרת Arduino IDE

שוב, בהנחיה זו, הנחתי כי אתה כבר מכיר את סביבת ה- Arduino IDE וכן כיצד לנהל ספריות בתוך סביבת הפיתוח.

לצורך פרויקט זה נזדקק לשתי ספריות עיקריות:

  • arduino-CORE-https://github.com/xinabox/arduino-CORE
  • ספריית SW02 -

הורד את שתי הספריות למיקום בשולחן העבודה שלך.

לאחר מכן, הפעל את Arduino IDE שלך.

מהתפריט הראשי, בחר "סקיצה"> "כלול ספרייה"> "הוסף ספריית ZIP …"

חזור על אותו תהליך עבור שני קבצי הספרייה.

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

  • לוח: "Arduino/Genuino Zero (יציאת USB מקורית)"
  • יציאה: "COMXX" (זה צריך להיות בהתאם ליציאת COM שמשתקפת במכונה שלך. שלי משתמש ב- COM31)

בְּסֵדֶר! אני יודע שהיית להוט לקפוץ לקידוד, כך שבשלב הבא, בזה נתמקד.

שלב 4: זמן קוד

בחלק זה אתחיל בשיתוף קטעי קוד מקוד הפרויקט שהושלם. ובסופו של דבר, אפרסם את המקור המלא, וכך יהיה לך קל להעתיק ולהדביק את הקוד בקובץ המקור של Arduino IDE.

קבצי כותרות:

#include /* זוהי הספרייה של פונקציות הליבה העיקריות של XinaBox. */

#include /* זוהי הספרייה של חיישן ה- VOC ומזג האוויר xChip. */

הגדרת כמה קבועים לשליטה על אותות ה- RGB LED:

#define redLedPin A4

#define greenLedPin 8 #define blueLedPin 9

לאחר מכן, עלינו להכריז על אב טיפוס של פונקציה להעברת ערכי RGB

set setRGBColor (int redValue, int greenValue, int blueValue);

הכרזת אובייקט SW02:

xSW02 SW02;

שיטת ההתקנה ():

הגדרת בטל () {

// הפעל את I2C Communication Wire.begin (); // הפעל את חיישן SW02 SW02.begin (); // עיכוב לחיישן לנרמול עיכוב (5000); }

עכשיו ללולאה הראשית ():

לולאת חלל () {

צף tempC; }

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

// קרא וחשב נתונים מחיישן SW02SW02.poll ();

כעת אנו קוראים בכדי לקבל את קריאת הטמפרטורה של החיישן

tempC = SW02.getTempC ();

ברגע שיש לנו את הקריאה, הדבר האחרון שאנחנו הולכים לעשות הוא להשתמש בסדרה של הצהרות שליטה אם … אחר … כדי לקבוע את טווח הטמפרטורות, ולאחר מכן להתקשר לפונקציה setRGBColor ()

// אתה יכול להתאים את טווח הטמפרטורות בהתאם לאקלים שלך. בשבילי, אני גר בסינגפור, // שהוא טרופי כל השנה, וטווח הטמפרטורות יכול להיות די צר כאן. אם (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); }

הערה: אם אתה מעוניין לדעת מהם ערכי ה- RGB הרלוונטיים לצבע מסוים, אני ממליץ לך לחפש בגוגל "ערכי צבע RGB". ישנם הרבה אתרים זמינים בהם תוכל להשתמש בבורר צבעים כדי לבחור את הצבע הרצוי

// אם תרצה, וזה אופציונלי, תוכל גם להוסיף עיכוב בין הסקרים לקריאות החיישן.

עיכוב (DELAY_TIME);

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

set voRRGBColor (int redValue, int greenValue, int blueValue) {

analogWrite (redLedPin, redValue); analogWrite (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }

תוכנית סופית

#לִכלוֹל

#include #define redLedPin A4 #define greenLedPin 8 #define blueLedPin 9 void setRGBColor (int redValue, int greenValue, int blueValue); const int DELAY_TIME = 1000; xSW02 SW02; הגדרת void () {// הפעל את I2C Communication Wire.begin (); // הפעל את חיישן SW02 SW02.begin (); // עיכוב לחיישן לנרמול עיכוב (5000); } לולאת void () {// צור משתנה לאחסון הנתונים הנקראים מ- tempC float SW02; tempC = 0; // קרא וחשב נתונים מחיישן SW02 SW02.poll (); // בקש SW02 לקבל את מדידת הטמפרטורה ושמור אותה ב // משתנה tempC = SW02.getTempC (); אם (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); } // עיכוב קטן בין חיישן קריאת עיכוב (DELAY_TIME); } void setRGBColor (int redValue, int greenValue, int blueValue) {analogWrite (redLedPin, redValue); analogWrite (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }

עכשיו שהתוכנית שלנו מוכנה, בואו לתכנת את xChip! תהליך ההעלאה זהה בדיוק לאופן שבו היית מעלה תוכנית ללוחות ה- Arduino שלך.

כשתסיים, למה לא לנתק אותו ולהוציא אותו לביצוע בדיקה.

מוּמלָץ: