Node-RED เป็นเครื่องมือที่ใช้สร้างและจัดการกระบวนการการทำงานแบบกราฟิก (graphical programming) ซึ่งเป็นพื้นฐานที่ใช้ในการพัฒนา Internet of Things (IoT) และแอปพลิเคชันที่มีการเชื่อมต่อข้อมูลต่าง ๆ ระหว่างอุปกรณ์หรือแอปพลิเคชันต่าง ๆ โดยสามารถทำงานได้ง่ายและรวดเร็ว โดยมีการเชื่อมต่อและการทำงานร่วมกับ Node.js มีความยืดหยุ่นและปรับแต่งได้ตามต้องการของผู้ใช้งาน

โดย Node-RED มีโครงสร้างของกระบวนการการทำงานแบบไหล (flow-based programming) ที่ช่วยให้ผู้ใช้สามารถสร้างและกำหนดการทำงานของโปรแกรมได้อย่างง่ายดาย โดยมีองค์ประกอบหลักดังนี้

  1. โหนด (Node): เป็นบล็อกพื้นฐานที่ประกอบด้วยโค้ดหรือการกระทำที่นำมาใช้ในกระบวนการการทำงาน
  2. กระบวนการทำงาน (Flow): เป็นโครงสร้างที่สามารถเชื่อมโหนดกันเพื่อสร้างกระบวนการการทำงานตามที่ผู้ใช้ต้องการโดยมีลักษณะเป็นกล่อง
    • กล่องแสดงถึงกระบวนการ การประมวลผลกล่องถูกกำหนดโดยทีมงาน Emerging Technology Services ของ IBM เมื่อไหร่ที่ไหนและใช้สิ่งใด โดยมีข้อมูลเท่าใด
  3. เครื่องมือและอินเทอร์เฟซ: มีเครื่องมือและอินเทอร์เฟซต่าง ๆ เช่น Dashboard UI, Debugging Tools, HTTP Request เป็นต้น Node-RED ไม่เพียงแต่เป็นเครื่องมือในการเขียนโปรแกรมเท่านั้น แต่ยังเป็นเครื่องมือที่มีความสามารถในการปรับปรุงและขยายตัวได้ตามความต้องการ ที่ปรับปรุงและใช้อธิบายเกี่ยวกับกลไกใน Flow Editor ของ Node-RED โดยประกอบด้วย
  • Node-RED มีสองส่วนหลักทางตรรกะ: ส่วนการพัฒนาที่เรียกว่า Flow Editor และส่วนการดำเนินการสำหรับการดำเนินการแอปพลิเคชันที่สร้างขึ้นจากนั้น
    • Runtime: ส่วนนี้ประกอบด้วย Runtime ของแอปพลิเคชัน Node.js ซึ่งมีหน้าที่ในการเรียกใช้กระบวนการการทำงานที่ถูกสร้างขึ้นแล้ว
    • Editor: เป็นเว็บแอปพลิเคชันที่ผู้ใช้สามารถแก้ไขไหลของข้อมูลของตนได้ โดยสามารถทำการสร้างและแก้ไขการเชื่อมต่อและการทำงานของโปรแกรมได้ในส่วนนี้

และนี่คือการใช้ Flow Editor ใน Node-RED:

  • Node: เป็นบล็อกหลักในแอปพลิเคชัน Node-RED ซึ่งแทนฟังก์ชันที่กำหนดไว้อย่างชัดเจน
  • Flow: เป็นชุดของโหนดที่ถูกเชื่อมต่อกันเพื่อแทนลำดับของขั้นตอนที่ข้อความผ่านไปในแอปพลิเคชัน
  • The panel on the left is the palette: เป็นคลังของโหนดที่ใช้ใน Flow Editor ที่คุณสามารถนำมาใช้ในการสร้างแอปพลิเคชันของคุณ
  • Deploy button: กดปุ่มนี้เพื่อนำแอปพลิเคชันของคุณออกไปใช้งานหลังจากที่คุณได้ทำการแก้ไข
  • Sidebar: เป็น panal ที่ใช้แสดงฟังก์ชันต่าง ๆ เช่นการตั้งค่าพารามิเตอร์การประมวลผล สเปกการ์ และการแสดงผลข้อความของ Debugger
  • Sidebar tabs: การตั้งค่าสำหรับแต่ละโหนด การแสดงผลข้อความมาตรฐาน การจัดการการเปลี่ยนแปลง และอื่น ๆ
  • Main Menu: การลบ Flow, การนำเข้า/การส่งออกโปรเจค, การจัดการโปรเจกต์ เป็นต้น

สรุปได้ว่า

Node-RED เป็นเครื่องมือที่ใช้สร้างและจัดการกระบวนการการทำงานแบบกราฟิก (graphical programming) ที่มีโครงสร้างของกระบวนการการทำงานแบบไหล (flow-based programming) โดยมีโหนดและกระบวนการทำงาน (Flow) เป็นส่วนหลัก โดยสามารถใช้ในการพัฒนา Internet of Things (IoT) และแอปพลิเคชันที่มีการเชื่อมต่อข้อมูลต่าง ๆ ระหว่างอุปกรณ์หรือแอปพลิเคชันต่าง ๆ อย่างง่ายดาย ด้วยการเชื่อมต่อและการทำงานร่วมกับ Node.js เป็นแพลตฟอร์มที่ยืดหยุ่นและสามารถปรับแต่งได้ตามต้องการของผู้ใช้งาน ใน Flow Editor ผู้ใช้สามารถสร้างและแก้ไขโปรแกรมได้อย่างสะดวก และมีเครื่องมือและอินเทอร์เฟซที่ช่วยให้การทำงานเป็นไปอย่างรวดเร็วและมีประสิทธิภาพ เช่น palette, Deploy button, Sidebar, และ Main Menu.