- דרישות קדם
- רכיבים נדרשים
- התקנת Node-RED ב- Raspberry Pi
- השקת Node-RED ב- Raspberry Pi
- הבנת ממשק הצומת האדום
- סכימות
- יצירת זרימה ב- Node-RED
- הוספת לחצן / מתג בממשק Node-RED עם Raspberry Pi
אי פעם תהיתי אם יש דרך ליצור אבות טיפוס פשוטים של פתרונות IoT מבלי לבלות ימים בכתיבת קודים או לבנות פרויקטים מתקדמים מעשיים ללא קידוד. כן, זה אפשרי עם פלטפורמת Node-Red. פותח על ידי יבמ, Node-RED הוא כלי תכנות קוד פתוח לחיווט התקני חומרה, ממשקי API ושירותים מקוונים בצורה חדשה ומעניינת. הוא מספק עורך מבוסס דפדפן שמקל על חיבור ' זרימות' באמצעות המגוון הרחב של הצמתים בפלטה שניתן לפרוס לזמן הריצה שלו בלחיצה אחת.
Node-RED הוא כלי רב עוצמה לבניית יישומי Internet of Things (IoT) במטרה לפשט את רכיב התכנות.
הוא משתמש בתכנות חזותי המאפשר לחבר בלוקים של קוד, המכונים צמתים, יחד לביצוע משימה. להדרכה של היום, נבדוק כיצד ניתן לפרוס פרויקטים פשוטים על פטל פאי באמצעות Node-RED. Pi פטל הדרכת הצומת-אדום תכסה;
- התקנת Node-RED ב- Raspberry Pi.
- מבוא לממשק המשתמש Node-RED
- כיצד להגדיר זרימת Node-RED
- כיצד לשלוט בסיכות Raspberry Pi GPIO באמצעות Node-RED
- כיצד להשתמש בכניסות, בפלטים של Node-RED ובמקרה אחר כמו קבלת החלטות באמצעות מתגים
דרישות קדם
הדרכה זו תתבסס על מערכת ההפעלה של Raspbian למתוח ואני מניח שאתה מכיר את הגדרת ה- Raspberry Pi איתה, ואתה יודע כיצד SSH לתוך ה- Pi באמצעות תוכנת מסוף כמו מרק. אם יש לך בעיות עם כל זה, יש באתר זה טונות של מדריכי פטל פי שיכולים לעזור.
כדי להשלים את ההדרכה בקלות, אמליץ לך להשתמש בצג המחובר לפטל פטל או שתשתמש בתוכנת VNC Viewer. אם אין לך צג ומתחיל לרענן עם Pi, אתה יכול לקרוא את הגדרת ה- Raspberry Pi ללא ראש כדי להמשיך בהדרכה זו. בעוד ש- Node-Red פועל מדפדפן אינטרנט וניתן לגשת אליו במחשב האישי אליו מחובר ה- Pi דרך כתובת ה- IP של ה- Pi, אני מאמין שחוויית ה- VNC / צג תיתן לך תקלה טובה יותר בדברים.
כהדגמה להראות כיצד פועל Node-Red, נשתמש ב- Node-RED כדי לתכנת את ה- Raspberry Pi כדי לשלוט על נורית המחוברת ל- GPIO שלה ובהמשך נשתנה את התוכנית כדי לאפשר שליטה על ה- LED באמצעות כפתור מישוש המחובר ל- Pi. GPIO.
רכיבים נדרשים
הרכיבים הבאים נדרשים לבניית פרויקט זה;
- Raspberry Pi 3 עם כרטיס SD טעון מראש עם Raspbian Stretch Preloaded
- נגן 100 אוהם (1)
- נורת LED (1)
- קרש לחם (1)
- חוטי מגשר בין זכר לנקבה
- לחצן מישוש (1)
התקנת Node-RED ב- Raspberry Pi
בעוד ש- Node-Red מותקן מראש במערכת ההפעלה Raspbian Stretch, עלינו לשדרג אותו לפני שנוכל ליהנות מכמה מהתכונות האחרונות שלו. שדרוג הצוואה האדומה
- שדרג את המשתמש הקיים ל- LTS 8.x או 10.x Node.js ול- Node-RED האחרון
- העבר את כל הצמתים המותקנים הגלובלית אל שטח המשתמשים ~ /.node-red כך שניתן יהיה לנהל אותם באמצעות מנהל הצבעים, זה לא מעדכן אף משתמש שהתקין את הצמתים הקיימים. על המשתמש לעשות זאת באופן ידני (ראה להלן).
- אופציונלי (מחדש) להתקין את הצמתים הנוספים המותקנים מראש בתמונת Raspbian Pi מלאה.
עם זאת, תהליך שדרוג ה- Node-Red דומה להתקנת חדש ולכן לצורך הדרכה זו פשוט נתייחס אליו כמו להתקנה חדשה כך שאנשים המשתמשים בגרסאות מערכת הפעלה אחרות יוכלו לעקוב.
בצע את השלבים הבאים כדי להתקין / לשדרג את Node-RED ב- Raspberry Pi שלך.
אנו מתחילים בשדרוג ועדכון ה- pi, כדי להבטיח שהכל בו מעודכן ולהימנע מבעיות תאימות. עשה זאת על ידי פתיחת מסוף או באמצעות ssh, והפעל;
עדכון סודו apt-get
בא אחריו
שדרוג sudo apt-get
עם זאת, הפעל את הסקריפט bash למטה במסוף;
bash <(תלתל -sL
סקריפט bash יעשה את הדברים הבאים
- שאל אם ברצונך להתקין מחדש את צמתי ה- Pi הנוספים
- שמור רשימה של כל הצמתים האדומים המותקנים ברחבי העולם שנמצאו ב- / usr / lib / node_modules
- apt-get להסיר את הצומת האדום הקיים
- הסר קבצים בינאריים אדומים בצומת מ / usr / bin ו / usr / local / bin
- הסר מודולים אדומים של צומת מ / usr / lib / node_modules ו / usr / local / lib / node_modules
- גלה אם Node.js הותקן מחבילת Node.js או מדביאן
- אם לא v8 ומעלה - הסר לפי הצורך והתקן את v8 או v10 LTS העדכני ביותר (לא באמצעות apt).
- נקה את מטמון ה- npm ואת מטמון ה-.node-gyp כדי להסיר את כל הגרסאות הקודמות של הקוד
- התקן את הגרסה האחרונה של Node-RED
- התקן מחדש תחת חשבון המשתמש את כל הצמתים שהותקנו בעבר ברחבי העולם
- התקן מחדש את צמתי ה- Pi הנוספים במידת הצורך
- בנה מחדש את כל הצמתים - כדי לאסוף מחדש כל קבצים בינאריים כדי להתאים לגרסה האחרונה של Node.js
- הוסף פקודות צומת-התחלה אדומה, צומת-עצור אדום וצומת-אדום-יומן אל / usr / bin
- הוסף קיצור דרך ותפריט סמל
- הוסף סקריפט מערכת והגדר משתמש
- אם ב- Pi הוסף טמפרטורת מעבד -> דוגמה ל- IoT
סקריפט ה- bash לעיל מריץ פקודות רבות כ- sudo ואינו מוחק את Node.js והספריות הליבה של Node-RED. אתה יכול לבדוק את תוכן הסקריפט בדף GitHub זה לפני הפעלתו כדי להיות בטוח שזה לא ישפיע על שום פרויקט שכבר יש לך ב- Pi.
עם סיום ההתקנה, כעת עליך לראות את סמל הצומת האדום מתחת לרשימת יישומי התכנות בתפריט שלך.
השקת Node-RED ב- Raspberry Pi
ניתן להפעיל את Node-Red דרך קטע התפריט משולחן העבודה של פטל, דרך הטרמינל או דרך ssh.
להפעלה על שולחן העבודה של פטל פאי, לחץ על סמל פטל, העבר את העכבר על תכנות לחץ על Node-RED (תפריט> תכנות> NodeRed) כדי להפעיל אותו.
ניתן גם להפעיל אותו מ- ssh או מסוף באמצעות הפעלה;
התחלה בצומת אדום
אתה אמור לראות חלון כמו זה שלמטה המציג השקה אדומה של הצומת בשולחן העבודה.
ברגע שאתה רואה זאת, עבור לתפריט-> אינטרנט והפעל את דפדפן האינטרנט כרום. אמנם ה- Raspberry pi שלך אינו זקוק לאינטרנט להפעלת Node-Red, אך הוא משתמש בדפדפן כממשק שלו.
עם השקת כרום הזן localhost: 1880 בשורת הכתובת ואחריו מקש Enter. 1880 הוא הנמל על פטל פטל שעליו מוגדר מראש Node-Red. זה אמור להציג את ממשק הצומת האדום כפי שמוצג בתמונה למטה.
הבנת ממשק הצומת האדום
ממשק צומת-אדום הכולל של פנל הזרימה, צבעי צומת, קונסולת debug וקונסולת המידע מודגשת כמו בתמונה למעלה.
פנל זרימת המקום שבו צומת מחוברים יחדיו כדי ליצור תכנית אשר צומת-האדום נקראת זרימה, ואילו צבעי הצומת כוללים של אובייקטים אשר מייצגים חומרה, פרוטוקולים ותוכנת תכונות משויכות התקנים. הוא כולל פרוטוקולים כמו MQTT עבור IoT, ומצבי פלט וקלט GPIO עבור לוחות כמו פטל פטל. קונסולת המידע מספקת מידע על עצמים מודגשים / שנבחרו בעוד קונסולת באגיםעובד בדיוק כמו צג הסידורי של Arduino ויכול לספק משוב בזמן שהזרימה פועלת. כפתור הפריסה משמש להעלאת הזרימה לחומרת היעד. לחצן התפריט מכיל סוגי העלאה שונים שיעזרו לך להפיק את המיטב מהפרויקט שלך. עם הפעלת Node-Red, כעת אנו יכולים להמשיך בבניית פרויקט ההדגמה.
סכימות
כאמור במהלך ההקדמה, פרויקט ההדגמה שלנו להיום יהיה לשלוט ב- GPIO של ה- Raspberry Pi באמצעות זרימת Node-RED. כדי להראות את השונות במצב ה- GPIO, נחבר נורית ל- GPIO כך שכאשר אותו סיכת GPIO מסוימת מופעלת, ה- LED נדלק ולהיפך.
חבר את הנורית ל- PI של פטל כפי שמוצג בתרשימים שלמטה.
אני גם בונה אותו על החומרה שלי באמצעות לוח לחם, נורית LED, נגד וכמה חוטי חיבור. הגדרת החומרה שלי נראית בערך ככה לאחר ביצוע החיבורים.
ניתן להמיר פרויקט זה בקלות לפרויקט אוטומציה ביתית, רק על ידי החלפת ה- LED בממסר ובכל מכשיר AC, למדו כיצד לעשות זאת על ידי מעבר על פרויקטים שונים של אוטומציה ביתית.
יצירת זרימה ב- Node-RED
כאשר ה- LED מחובר, אנו יכולים להמשיך ולפתח את הזרימה. תוכניות ב- NodeRed נקראות זרמים בדיוק כמו IDE של ארדואינו מכנה אותם סקיצות. זרימות נוצרות באמצעות שילוב של צמתים. ניתן ליצור מספר זרימות אשר כולן יכולות לפעול בו זמנית, אך לצורך הדרכה זו, ניצור זרימה אחת להפעלת / כיבוי הנורית.
כדי להתחיל, גלול לתחתית לוח הצמתים, תראה את החלק של צמתים פטל פטל לקראת הסוף עם שני צמתים שכותרתו rpigpio. צמתים אלה משמשים לתקשורת עם ה- GPIO של פטל. אחד הצמתים מיועד לקלט ואילו השני מיועד לפלט המובחן על ידי מיקום הלוגו של פטל פטל. עבור צומת הקלט הלוגו מגיע לפני הטקסט, ואילו עבור צומת הפלט הלוגו מגיע אחרי הטקסט כפי שמוצג בתמונה למטה.
לצורך הדרכה זו נשתמש בצומת הפלט, גרור אותו לחלק הזרימה של הממשק. שלב זה דומה להכריז על סיכה מסוימת של הארדואינו שלך כפלט באמצעות הפקודה pinMode () . לחץ פעמיים על צומת הפלט וחלון מוקפץ ייפתח כמוצג להלן כדי לאפשר לך לערוך את מאפייני הצומת.
תחת סעיף מאפיין הסיכה, בחר GPIO17 (סיכה 11). לאחר מכן הגדר את מאפיין הסוג ל"פלט דיגיטלי "וסמן את" אתחל את מצב הסיכה? " תיבת הסימון משאירה את האפשרות " רמת סיכה ראשונית " נמוכה (0). תן לצומת את השם שאתה אוהב ולחץ על הלחצן 'סיום'.
שם הצומת אמור להשתנות באופן אוטומטי לזה שהזנת תחת הגדרת המאפיינים. לדוגמא שמתי אותו כ- LED ומכאן ששם הצומת שונה גם כ- LED כמוצג להלן.
כדי להדליק / לכבות את הנורית, עלינו להשתמש בקלט, משהו שיניע את הפעולה. אמנם נוכל להשתמש בלחצן כפתור, אך ברצוני להשתמש בזה בכדי להציג את התכונה ב- Node-RED המאפשרת הזרקת מסרים לזרמים. תכונה זו נקראת צומת הזריקה. נשתמש בשני צמתים מזריקים. האחד יהיה להדליק את ה- LED ואילו השני יהיה לכבות אותו.
עבור אל לוח הצמתים וגרור את צומת ההזרקה לזרימה. זהו הצומת הראשון בפלטה עם חץ, צומת ההזרקה מודגש בתמונה למטה.
לחץ עליו פעמיים כדי לערוך את המאפיינים שלו. שנה את סוג הנתונים למחרוזת על ידי לחיצה על התפריט הנפתח מול המטען והזן 1 בתיבה מטען. הערך בתיבת המטען הוא זה שיוזרק לזרימה בעת לחיצה על הצומת. הגדר את שם הצומת ל- "ON" לחץ על כפתור "Done" כדי לשמור.
חזור על האמור לעיל עבור הצומת השני, והגדר את ערך המטען ל "0" ואת שמו כ- "כבוי" כמוצג להלן.
תחת פונקצית המאפיינים, החוזרים נפתחים ניתן להשתמש כדי להפוך את הזריקה כך נלחצו במרווחים. בעזרת זה ניתן ליצור את אפקט ההבהוב. הצטרף לצמתים יחד כפי שמוצג להלן, על ידי גרירת הנקודה האפורה על אחד הצמתים לשני כדי ליצור את הזרימה.
עם זאת, סיימנו כעת את זרימת הצומת האדומה הראשונה שלנו.
השלב הבא הוא שנפרוס את הזרימה על פטל הפטל. לחץ על כפתור הפריסה האדום. אתה אמור לראות פלאש "נפרס בהצלחה" בחלקו העליון של המסך, כמוצג להלן.
לחץ על הכפתור האפור שמאחורי צמתי ההזרקה כדי להפעיל כל אחד מהצמתים.
על ידי לחיצה על צומת ההזרקה "on", אתה אמור לראות שהוזרק בהצלחה "on" והנורית תידלק. נורת ה- LED אמורה לכבות כאשר לוחצים על צומת ההזרקה "כבוי".
זהו זה. את העבודה המלאה של מערך זה תוכלו למצוא בסרטון המקושר בתחתית עמוד זה.
הוספת לחצן / מתג בממשק Node-RED עם Raspberry Pi
כדי להסביר כיצד לחבר / להוסיף אלמנט קלט לזרימה שלך, ניקח את הזרימה לעיל הלאה על ידי הוספת כפתור לחצן להחלפת צמתי ההזרקה.
חבר את כפתור הלחצן לפטל הפטל, כך שרגל אחת של הלחצן מחוברת לקרקע והשנייה מחוברת לסיכה GPIO 4 (סיכה 11) של פטל הפטל, כפי שמוצג בתרשימים שלמטה.
עם זאת, חזור ל- Node-Red ומחק את שני צמתי ההזרקה שהשתמשנו בהם קודם, על ידי לחיצה על הצמתים ולחיצה על delete במקלדת שלך או לחיצה כפולה על הצמתים ולחיצה על delete בחלון הקופץ. עם סיום זה, גלול למטה מחלונית הצמתים לקטע פטל פטל ובחר את צומת הקלט. זה אחד עם סמל פטל פטל משמאל, לפני שם הצומת.
גרור את הצומת לזרימה ולחץ עליו פעמיים כדי לערוך מאפיינים. הגדר את הסיכה ל- GPIO 4 (סיכה 11) והגדר את התפריט הנפתח מול הנגד למשיכה. זה "יעלה" את GPIO 4 ל- HIGH. לחץ על הכפתור נעשה לאחר הגדרת המאפיינים.
כדי לאפשר לנו לקבל החלטות הגיוניות כאשר לוחצים על המתג ולא רק לקצר את GPIO4 לקרקע, נשתמש בצומת המתג. חפש אותו בלוח הצמתים, מתחת לקטע הפונקציות וגרור לזרימה.
צומת המתג מאפשר לך לקבל החלטות באופן דומה להצהרות "אם". ניתן להגדיר כך שיהיו יציאות שונות בהתאם לערך הקלט. עבור הדרכה זו, נקבע את תצורתו עם שני נתיבי פלט, כך שכאשר המאפיין msg.payload שווה ל- 1 (לא נלחץ על המתג) הוא צריך לעקוב אחר הנתיב הראשון ונתיב שני יעקוב אחר קלט אחר מלבד 1 נצפה בקלט (לוחצים על המתג). נתיבים מתווספים באמצעות כפתור "+ הוסף". לחץ פעמיים על הצומת והגדר כמתואר לעיל. לחץ על סיום בסיום.
ברגע שתלחץ על כפתור סיום, אתה אמור לראות את שני הנתיבים משתקפים במבט הצומת של המתג, מכיוון שכעת יהיו לו שני צמתים בפלט.
לאחר מכן, עלינו להביא צומת "שינוי". צומת השינוי ישמש להגדרת מצב ה- LED בהתבסס על התוצאה של צומת הארגומנט.
נשתמש בשניים מצמתי השינוי. המטען של הראשון יוגדר ל- 0 כפי שמוצג בתמונה למטה והמטען של השני מוגדר לאחד. לחץ על סיום לאחר עריכת מאפיינים עבור שניהם.
כדי להסביר טוב יותר, זוכר שהשתמשנו בנגד הנפתח? לפיכך, כאשר הלחצן לא נלחץ, הפלט באותו סיכה יהיה HIGH (1), כלומר אם נעביר אותו דרך צומת המתג, ה- LED יהיה "דולק", מכיוון שזה לא אמור להיות כך, אנו השתמש בצומת "שינוי" כדי להגדיר אותו כ LOW (0). הצומת "שינוי" השני משמש להגדרת הערך לכזה שכאשר מתגלה כל דבר אחר מלבד מצב HIGH של סיכה GPIO 4, עליו להדליק את הנורית "מכיוון שזה אומר שהלחצן נלחץ. חבר את צמתי השינוי ושאר הצמתים ביחד, כפי שמוצג בתמונה למטה.
עם זאת, אנו מוכנים כעת לפרוס את הפרויקט. עבור על החיבור כדי להבטיח שהכל יהיה כמו שצריך, ואז לחץ על כפתור הפריסה. כרגיל, אם יצליח אתה אמור לראות את פריסת הקופץ המוצלח וכעת תוכל לשלוט על ה- LED באמצעות המתג.
בעוד ש- Node-Red מקל על הפרוטוטייפ לבנות אתכם בקלות ובמהירות מבלי לדאוג לקוד, יתכן שהוא לא יהיה הכי מתאים, במיוחד עבור מפתחים מנוסים שירצו גמישות ושליטה בתוכנית. עם זאת, זה כלי נהדר שמאפשר לך לבנות אב טיפוס תוך מספר דקות.
עד הפעם הבאה!