Node-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.
It provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.
Node-Red เครื่องมือที่ใช้เชื่อมต่อระหว่าง อุปกรณ์ API และ บริการอื่นๆ เข้าด้วยกัน การใช้งาน Node-Red เป็นโปรแกรมแบบลากวาง,ลากเส้นเชื่อมเข้าหากัน และสามารถ deploy พร้อมใช้งานได้ใน คลิ๊กเดียว !
วันนี้เราจะมาทำความรู้จักกับ Node-Red กัน อธิบายแบบง่าย Node-Red เป็นเครื่องมือในการสร้าง Back-end ที่ง่ายและ แทบไม่ต้องเขียนโค้ดเลย เหมาะมาสำหรับมือใหม่ที่จะเริ่มเรียนรู้
อันนี้คือหน้าตาของ Node-red หรือ เราจะเรียกมันว่า Node-red work space ก็ได้ การใช้งาน node-red เพียงค่าลาก node ทางด้านขวามา แล้ว ลากเส้นต่อกัน กด deploy ก็ใช้งานได้แล้ว เห้ยง่ายมากเวอร์ !
จากรูปด้านบน เป็นการ insert หรือ เพิ่ม ข้อมูลเข้าไปเก็บไว้ใน database ได้เลย เป็นวิธีที่ง่ายกว่าการเขียนโค้ดเป็นหลายเท่าแน่ๆ ต่อไปเรามาเริ่มการติดตั้ง node-red กัน!
ขั้นตอนการติดตั้ง
- ติดตั้ง NodeJS จาก https://nodejs.org/en/download/
2. เปิดหน้า CMD แล้วพิมพ์คำสั่ง
- Mac/Linux
sudo npm install -g --unsafe-perm node-red
- Window
npm install -g --unsafe-perm node-red
3. พิมพ์ node-red ใน CMD ได้เลย
4. เข้า browser แล้วพิมพ์ http://127.0.0.1:1880/ แค่นี้ก็พร้อมใช้งาน Node-red แล้ว!
ทำความรู้จักกับ Node-red กัน
คำศัพท์น่ารู้ ของ Node-red
- Flow : พื้นที่สำหรับทำงานของเรา
- Node : คำสั่งต่างๆที่เราจะนำมาใช้ บน Flow
- Deploy : กดทุกครั้งที่เปลี่ยนแปลงอะไร
ก่อนใช้งานเราต้องทำความรู้จักกับ Node ที่เราจจะใช้กันก่อน
- Input : มีจุดด้านขวาเท่านั่น ทำหน้าที่นำข้อมูลเข้า Node-red
- Output : มีจุดทางซ้ายเท่านั่น ทำหน้าที่ส่งข้อมูลออกจาก Node-red
- Function : มีจุดทั้งสองฝั่ง ใช้ในการจัดการข้อมูลที่เข้ามา และส่งออกไป
Node สามารถวางตรงไหนก็ได้ บน Flow เรา
ข้อควรระวัง
Input ,Output ต้องตั้งค่าก่อนใช้งาน
Functions ไม่ต้องตั้งค่าก็ใช้งานได้เลย
Node-red จะส่งข้อมูลระหว่าง Node ด้วย Object ฉะนั้นควรรู้จัก Object ใน JavaScript มาก่อนนะครับ
หน้าตาของ Object ที่ส่งหากัน หรือเรียกว่า msg
_msgid : id ที่ระบบสร้างขึ้น
topic : ไว้กำหนดหัวข้อหรือประเภทของแต่ละข้อความ
payload : ข้อความหรือ ข้อมูลที่ส่งหากันระหว่าง Node ( ส่วนใหญ่ Node จะอ่านข้อมูจากตรงนี้ )
Node พื้นฐานที่น่ารู้จัก
- debug
debug เป็น node แบบ output ที่ใช้งานกันมาที่สุด เป็น node ที่จะแสดงข้อมูลต่างที่เราต้องการผ่าน หน้าต่าง debug
ลองลาก debug มาวางใน flow แล้ว double click ดูกัน
Output : กำหมดว่าข้อความที่ใช้แสดงผลมาจากไหน
To : แสดงผลที่ไหน
Name : ตั้งชื่อ Node ให้จำได้ง่ายๆ
2. inject
inject เปรียบเสมือนปุ่มกดมหัศจรรย์ เมื่อกด เราสามารถส่งค่าออกไปได้ เช่น ข้อความ, ตัวเลข, ตัวแปร, Boolean, Object
ลองลาก inject มาวางใน Flow แล้ว double click ดู
เราจะเห็นแท็บ และช่องมากมายเลย งงใช่ไหม จะอธิบายให้ฟัง แต่ละช่องมีหน้าที่ดังนี้
Payload : เป็นข้อมูลที่ถูกส่งออกมา
Topic : เป็นหัวข้อของข้อมูลที่ถูกส่งออกไป ( ยังไม่ต้องสนใจ )
Repeat : ตั้งให้ทำซ้ำแบบไหน
Name : ตั้งชื่อ Node ให้เข้าใจง่าย
มาลองเล่น inject กัน โดย ลาก injectและ debug มาวาง บน Flow แล้วลากเส้นเชื่อมกันเลย
Double click ที่ inject ตั้งค่าให้ส่ง String คำว่า“ Hello world ” ออกมา
กด deploy แล้วมากดที่ปุ้มสีฟ้าข้างขวาของ inject กัน
เรามาดู output กันในช่อง debug จะเห็นว่ามีคำว่า hello world ปรากฏอยู่
สำเร็จ ข้อความแรกออกมาแล้ว