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

כיצד לעבוד עם JSON בצומת אדום: 13 שלבים
כיצד לעבוד עם JSON בצומת אדום: 13 שלבים

וִידֵאוֹ: כיצד לעבוד עם JSON בצומת אדום: 13 שלבים

וִידֵאוֹ: כיצד לעבוד עם JSON בצומת אדום: 13 שלבים
וִידֵאוֹ: CS50 2015 - Week 9, continued 2024, נוֹבֶמבֶּר
Anonim
כיצד לעבוד עם JSON ב- Node-RED
כיצד לעבוד עם JSON ב- Node-RED

מדריך זה ילמד אותך כיצד לעבוד עם JSON ב- node-RED. אני אראה לך כיצד לשלוט בשקעי חשמל ברשת באמצעות העברת קבצי json באמצעות http get and post. ותוכל להשתמש בידע זה מאוחר יותר כדי לשלוט בכל מכשיר התומך בפרוטוקול JSON.

למטרות הוראה אשתמש בשקע חשמל ברשת NETIO 4All, אל תדאג, אינך צריך לקנות דבר. ל- NETIO יש הדגמה מקוונת מדהימה של 4 אתה יכול להשתמש בה.

אספקה

NETIO 4 כל PowerSocket ברשת או 4 הדגמה מקוונת:

צומת אדום

שלב 1: REST JSON Http (s) פרוטוקול

פרוטוקול REST JSON Http (s)
פרוטוקול REST JSON Http (s)

החלק הזה הוא קצת טכני אבל אנא תשאירו אותי. אם לא הייתי מסביר את החלק הזה, תהיה לך בעיה להבין את הערכים בקבצי json שנשלח ב- node-RED.

פעולות החלות על כל פלט (שקע חשמל):

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

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

אלה פעולות שאתה יכול ליישם על כל פלט:

0 = הפלט כבוי (כבוי)

1 = פלט מופעל (מופעל)

2 = הפלט כבוי לזמן קצר (כיבוי קצר)

3 = הפלט מופעל לזמן קצר (קצר מופעל)

4 = הפלט עבר ממצב אחד למשנהו (החלפה)

5 = מצב הפלט ללא שינוי (ללא שינוי)

6 = התעלם

דוגמה - קובץ JSON להחלפת מספר הפלט. 1:

{

"יציאות": [{

"תעודת זהות": 1, "פעולה": 4

}]

}

מזהה - מספר זה מציין באיזה פלט נשתמש

פעולה - החלק הזה הוא הפעולה שהפלט יבצע (למשל 1 (הפעל פלט))

שלב 2: זרימה

זְרִימָה
זְרִימָה

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

ייבאנו זרימת API של URL (הפרויקט שאתה רואה. מאוחר יותר אראה לך כיצד לייבא זרימות ופרויקט זה) פרויקט זה מורכב משני חלקים:

  1. זרימת NETIO AN30 (JSON REST API)
  2. לוח מחוונים (ממשק גרפי שבאמצעותו תוכל להפעיל את התוכנית שלך)

שלב 3: לוח מחוונים

לוּחַ מַחווָנִים
לוּחַ מַחווָנִים

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

לוח המחוונים לפרויקט זה מחולק ל -4 חלקים:

  1. סטטוס המכשיר - מציג מידע על המכשיר כגון דגם, כתובת Mac או גירסת קושחה.
  2. פלט בקרה (POST) 1 - מכיל 5 כפתורים השולטים בפלט 1. כל כפתור מבצע פעולה שונה
  3. (GET) O1 - O4 מצבי פלט - חלק זה מציג את המצב הנוכחי של כל פלט מהמכשיר שלך.
  4. ניהול מכשירים - בחלק זה תוכלו למצוא כל מיני גרפים ומדידים המציגים ערכים נמדדים נוכחיים ממכשיר NETIO 4Aall

שלב 4: ייבוא זרימה (פרוייקט, סקריפט וכו ')

זרימת ייבוא (פרוייקט, סקריפט וכו ')
זרימת ייבוא (פרוייקט, סקריפט וכו ')

בתפריט (בפינה הימנית העליונה) בחר יבוא ולאחר מכן לוח.

לאחר מכן, העתק את הטקסט שלהלן לשדה המצוין ולחץ על ייבוא.

התקנת צמתים חסרים

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

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

ייבוא טקסט:

[{"id": "56b9510c.98c6f", "type": "tab", "label": "NETIO AN30 (REST JSON)", "disabled": false, "info": ""}, {"id ":" 6a66b637.da1558 "," type ":" בקשת http "," z ":" 56b9510c.98c6f "," name ":" בקשת HTTP (POST) "," method ":" POST "," ret ": "txt", "url": "https://netio-4All.netio-products.com:8080/netio.json", "tls": "", "x": 430, "y": 100, "wires":

שלב 5: איך הכל עובד ביחד

איך הכל עובד ביחד
איך הכל עובד ביחד

הזרימה בעצם מחולקת לשני חלקים: POST ו- GET.

פוסט: כתיבה ל- O1

  • חמישה לחצנים שנוצרו בלוח המחוונים בזרימה מוצגים בלוח המחוונים.
  • לאחר לחיצה על הלחצן פלט 1 = ON בלוח המחוונים, המטען מוגדר לקובץ netio.json המציין את הפלט ואת הפעולה (המוגדרת לכל אחד מהלחצנים).
  • בלוק HTTP Request (POST) שולח את הקובץ netio.json כבקשה לכתובת IP.
  • תגובת השרת (סטטוס) מוחזרת כפלט.
  • הבלוק Msg.payload מציג את התוצאה מבקשת HTTP (POST).

קבל: קריאה מ- O1 - O4

  • בלוק החזרה על שניה אחת מפעיל, תוך פרק זמן של שנייה אחת, את בלוק HTTP Request (GET), אשר בתורו שולח את netio.json כבקשת GET ומחזיר קובץ JSON מלא עם סטטוס השקע כפי שהתקבל מהשרת.
  • בלוק JSON Parse הופך את קובץ ה- JSON מגוש בקשת HTTP (GET) לאובייקט JSON כך שניתן לתפעל את המאפיינים בקובץ JSON.
  • בלוק הפונקציה לוקח חלקים בודדים של אובייקט JSON והופך אותם למאפיינים של אובייקט msg לשימוש מאוחר יותר.
  • בלוק התרשים הנוכחי מגדיר את התכונה msg.payload למאפיין msg. TotalCurrent של אובייקט ה- msg, מכיוון שבלוק התרשים הנוכחי (התקן) העוקב יכול להציג רק את הערך msg.payload.
  • לאחר מכן עוקבים אחר צמתי פלט שונים על מנת להציג מאפיינים נבחרים של אובייקט ה- msg, כפי שהם נלקחים מאובייקט JSON, בלוח המחוונים.

אובייקט msg ו- msg.payload

להסבר פשוט ותמציתי ראו כאן:

www.steves-internet-guide.com/node-red-mess…

שלב 6: פוסט HTTP וקבל

פוסט HTTP וקבל
פוסט HTTP וקבל
HTTP POST וקבל
HTTP POST וקבל

בקשת HTTP (POST)

צומת זה שולח קובץ פקודה netio.json כבקשת HTTP (POST) על מנת לשלוט בהתקן NETIO 4All.

בקשת HTTP (GET)

צומת זה שולח בקשת HTTP (GET) ומחזיר את תגובת הסטטוס.

הכתובת המלאה מצביעה על ההדגמה המקוונת של NETIO 4All, בה תוכל לבדוק את החיבור מבלי שיהיה לך מכשיר NETIO ליד שולחן העבודה.

netio-4all.netio-products.com

אפשר להגדיר כתובת IP משלך בצמתים אלה; עם זאת, יש לשנות את ה- IP הן בצמתים של בקשת HTTP, ב- POST והן ב- GET.

שלב 7: צמתים של לחצנים

צומת כפתורים
צומת כפתורים
צומת כפתורים
צומת כפתורים

לחיצה על צומת הכפתור יוצרת הודעה המכילה קובץ netio.json (תמונה ימנית) שנשלחת לאחר מכן באמצעות צומת http post לשקע החשמל החכם של netio.

שלב 8: צומת פונקציות

צומת פונקציה
צומת פונקציה
צומת פונקציה
צומת פונקציה

צומת פונקציות הוא צומת מיוחד המאפשר כתיבת פונקציית JavaScript מותאמת אישית.

במדריך זה, הפונקציה בוחרת ערכים מקובץ ה- JSON המנותח (כיום אובייקט JSON) ומקצה אותם למאפייני אובייקט ה- msg.

הקוד מחולק לארבעה חלקים:

  1. הקצאת ערכים מאובייקט JSON למאפיינים האישיים של אובייקט ה- msg
  2. טיפול בשגיאות במקרה ששקע החשמל ברשת אינו תומך במדידות גלובליות

    אם שקע החשמל ברשת אינו תומך במדידת ערכים גלובליים, Node-RED יציג שגיאות מכיוון שפונקציה זו לא תמצא את הנכס המתאים, למשל. msg.payload. GlobalMeasure. Voltage מכיוון שהוא לא יהיה קיים באובייקט JSON. במקרה זה, המאפיין של אובייקט msg, למשל. msg. Voltage, מוגדר ל- 0 והשגיאה נתפסת ומטופלת.

  3. הקצאת ערכי מצב פלט
  4. הגדרת הצבעים של ערכי מצב הפלט המוצגים בהתאם למצבי הפלט

שלב 9: צומת JSON וצומת הזרקה

צומת JSON וצומת הזרקה
צומת JSON וצומת הזרקה
צומת JSON וצומת הזרקה
צומת JSON וצומת הזרקה

צומת JSON

צומת JSON מנתח את קובץ JSON והופך אותו לאובייקט JSON.

כתגובה מהשרת לבקשת GET, צומת בקשת HTTP מחזיר קובץ JSON המכיל את המצב הנוכחי של התקן NETIO 4x, אך הוא פשוט קובץ טקסט, כך שכדי לעבוד עם הנתונים, קובץ JSON צריך כדי לנתח לאובייקט JSON.

צומת הזרקה

כל שנייה, צומת זה מפעיל את צומת בקשת HTTP ששולח בקשת GET.

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

שלב 10: צומת טקסט וצומת ניפוי באגים

צומת טקסט וצומת ניפוי באגים
צומת טקסט וצומת ניפוי באגים
צומת טקסט וצומת ניפוי באגים
צומת טקסט וצומת ניפוי באגים

צומת טקסט

מציג שדה טקסט במרכז השליטה. במדריך זה, צמתי הטקסט מציגים את הזרם, המתח, הדגם, גרסת הקושחה או גירסת JSON.

התווית מוצגת בלוח המחוונים, והשם הוא שם הצומת המוצג בזרימה ב- Node-RED.

צומת באגים

מציג את הטעינה במסר.

שלב 11: צומת תרשים

צומת תרשים
צומת תרשים
צומת תרשים
צומת תרשים

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

צומת זה יכול לשרטט תרשימים רק לפי ערך המטען.

מסיבה זו, צומת פונקציה משמש להגדרת הטעינה של msg לערך שצריך להציג.

msg.payload = msg. TotalCurrent;

שלב 12: צומת מד וצמת קישור

צומת מד וצמת קישור
צומת מד וצמת קישור
צומת מד וצמת קישור
צומת מד וצמת קישור

צומת מד

צומת זה מוסיף ווידג'ט מד למרכז השליטה.

במדריך זה, כל מד מדמיין מאפיין אחד של אובייקט ה- msg: מתח [V], זרם [A], תדר [Hz] ופקטור הכוח האמיתי הכולל (TPF).

צמתים של קישור

צמדי הקישור והקישור החוצה פועלים כמו מנהרה. Msg.payload מגיע לקישור בצומת ויוצא מהצומת החוצה.

השתמשתי בו כדי להפוך את הזרימה לקצת יותר ברורה וקלה יותר לקריאה.

שלב 13: תודה שקראת את ההוראה שלי

אני מקווה שנהנתם מההדרכה שלי ולמדתי אפוא משהו חדש.

גרסה מקובלת זו היא רק מקוצרת של מדריך אחר שהכנתי

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

אני מבטיח שלא תתאכזב

מקור:

כמו כן ישנם מדריכים דומים אודות שימושים שונים של node-RED, כך שאם אתה מעוניין אל תהסס לחקור:

עבודה עם ממשק API של REST URL בצומת אדום

www.netio-products.com/en/application-notes/an29-node-red-example-of-url-api-communication-with-netio-4x

עבודה עם XML REST בצומת אדום

www.netio-products.com/en/application-notes/an31-node-red-example-of-rest-xml-communication-with-netio-4x

עבודה עם TCP/Modbus בצומת אדום

מגיע בקרוב מאוד:)

מוּמלָץ: