- หลักๆจะมีอยู่ทั้งหมดอยู่ 3 ส่วนได้แก่
- Node palette โหนดทางซ้าย
- ในตอนแรก จะมีเฉพาะโหนดหลักเท่านั้น
- โหนดจะ ถูกจัดเรียงตามหมวดหมู่
- Work space ตรงกลาง
- สร้าง Flow การทำงาน
- สร้างเงื่อนไขการทำงานต่างๆ
- Output pane ทางขวา
- มีประโยชน์สำหรับการดึงข้อมูลเกี่ยวกับโหนดที่เลือก
- ที่นี่คุณสามารถหา debug section ได้
- Node palette โหนดทางซ้าย
การใช้งาน Inject Node
- Inject Node ใน Node-RED เป็นโหนดที่ใช้เริ่มต้นการไหล (flow) ของข้อมูลในโปรแกรม คุณสามารถใช้มันเพื่อสร้าง “message” object (หรือ
msg
object) ที่สามารถถูกส่งผ่านไปยังโหนดอื่นๆ ใน flow นั้นได้ - เมื่อคุณวางเมาส์ (mouse over) ไว้บนโหนดใดโหนดหนึ่งใน Node-RED, จะมีกล่องข้อความปรากฏขึ้นเพื่ออธิบายว่าโหนดนั้นทำงานอย่างไร สำหรับ Inject Node, ข้อความที่ปรากฏจะอธิบายว่าโหนดนี้สร้าง
msg
object ขึ้นมาเพื่อใช้ในการเริ่มต้น flow คุณสามารถกำหนดค่าในmsg
object นี้ได้ ไม่ว่าจะเป็นสตริง, อ็อบเจ็กต์ JavaScript, หรือเวลาที่สร้าง (timestamp) ซึ่งเป็นค่าเริ่มต้น (default) ของโหนดนี้
ใน Node-RED, **msg
**object ใช้ในการนำข้อมูลต่างๆ ไปยังโหนดต่างๆ อีกนัยหนึ่งคือ msg
object เป็นตัวแปรที่มีความหมายในระดับ flow เพื่อให้ข้อมูลสามารถถูกส่งต่อและประมวลผลไปยังโหนดต่อไป
ในการตั้งค่า Inject Node ใน Node-RED, คุณสามารถกำหนดค่าต่างๆ มากมายเพื่อควบคุมว่า **msg
**object จะถูกสร้างขึ้นมาอย่างไรเมื่อมีการ inject หรือเริ่มต้น flow:
-
กำหนด attributes (attr): คุณสามารถกำหนดค่าต่างๆ ที่จะถูกเพิ่มเข้าไปใน
msg
object ได้ เช่นmsg.payload
หรือmsg.topic
เป็นต้น คุณสามารถกำหนดข้อมูลเพิ่มเติมนอกเหนือจากค่าเริ่มต้นได้ -
กำหนดเวลาเริ่ม และความถี่ในการ inject: คุณสามารถตั้งค่าให้ Inject Node ทำงานที่ช่วงเวลาที่กำหนดหรือด้วยความถี่ที่กำหนด เช่น ทุกๆ 5 นาที, เมื่อเริ่มต้น deploy หรือแม้แต่ตั้งเวลาให้ทำงานเฉพาะเวลาที่กำหนด
เมื่อคุณดับเบิลคลิก (double click) บน Inject Node, จะมีหน้าต่างสำหรับการตั้งค่าเปิดขึ้นมา ที่นี่คุณสามารถเห็นและแก้ไขค่า attributes ที่ต้องการเพิ่มใน
msg
object โดยค่าเริ่มต้นจะมีสอง attributes คือpayload
และtopic
ซึ่งpayload
มักจะมีค่าเป็น timestamp หากไม่มีการเปลี่ยนแปลงใดๆ
ถ้าคุณต้องการเพิ่ม attributes ใหม่, คุณสามารถคลิกที่ปุ่ม “add” (+ add) ภายในหน้าต่างการตั้งค่าเพื่อกำหนดข้อมูลเพิ่มเติมที่คุณต้องการให้ msg
object มี หลังจากนั้นคุณสามารถกำหนดค่าเฉพาะสำหรับ attribute นั้นๆ ได้ตามต้องการ
โหนด Debug
โหนด Debug ใน Node-RED ทำหน้าที่คล้ายกับคำสั่ง print()
ในภาษาโปรแกรมอื่นๆ เพื่อแสดงค่าของข้อมูลในแผงข้อความ Debug (หรือที่เรียกว่า debug sidebar หรือ debug console) โหนดนี้ใช้สำหรับการดูข้อมูลที่ได้รับและส่งผ่านโหนดต่างๆ ใน flow เพื่อช่วยในการทดสอบและการแก้จุดบกพร่องในโปรแกรม
เมื่อตั้งค่า (configure) โหนด Debug, สามารถเลือกได้ว่าต้องการแสดงค่าอะไรบางอย่างจาก msg
object โดยค่าเริ่มต้น, โหนด Debug จะแสดงค่า msg.payload
, ซึ่งเป็นส่วนหลักที่ใช้ในการพาสิ่งที่เป็น “เนื้อหา” หรือ “ข้อมูล” ผ่านระบบ
และสามารถตั้งค่าให้โหนด Debug แสดงค่าอื่นๆ จาก msg
object ได้เช่นกัน, ไม่ว่าจะเป็น msg.topic
, ค่าเวลา, หรือ properties ใดๆ ที่คุณเพิ่มเข้าไปใน msg
object. การตั้งค่าสามารถทำได้โดยการเลือก “ค่าทั้งหมดของ object message” หรือ “ค่าที่เลือก” และการระบุ property ที่เฉพาะเจาะจงภายใน msg
object ที่คุณต้องการจะตรวจสอบ.
เมื่อสร้าง flow เสร็จแล้ว ให้สังเกตว่าที่ nodes จะมีจุดสีฟ้า เป็นการแสดงว่า flow นี้ยังไม่ถูก save หรือ Deploy
change node
function node
ทั้งสองไว้ transform เปลี่ยนค่า หรือเขียน function ให้เปลี่ยน สกัด วิเคราะห์ ค่าจาก msg
object บทเรียนนี้แสดงให้เห็นความต่างของ 2 nodes ตย.การใช้งานที่ให้ผลเหมือนกัน และตัวอย่างการใช้ function node ที่มีscope การใช้งานได้กว้าง หลากหลายมากขึ้น
การใช้งาน change node
- Set มอบหมายค่าใหม่หมด
- Change เปลี่ยนบางส่วนของค่า
- Delete ลบ
- Move ย้ายค่าจาก attr
สรุป
Node-RED เป็นเครื่องมือสำหรับสร้างโปรแกรมด้วยการลากโหนดลงในพื้นที่ทำงานและเชื่อมต่อข้อมูล หน้าจอประกอบด้วยพาเลทโหนดที่จัดเรียงตามหมวดหมู่ทางซ้าย, พื้นที่วางโหนดตรงกลาง, และพาเลทผลลัพธ์พร้อมส่วน debug ทางขวา. Inject Node ใช้สำหรับกำหนดและส่งข้อมูลเริ่มต้นใน flow, ในขณะที่ Debug Node ช่วยแสดงข้อมูลสำหรับการตรวจสอบปัญหา Change Node และ Function Node ให้ความสามารถในการแปลงหรือปรับเปลี่ยนข้อมูลที่ผ่าน msg.object ตามความต้องการ.