แนะนำ node-red ฉบับเริ่มต้น x DrZin

L Pasawee
Dr-Zin
4 min readAug 11, 2019

--

credit : https://images.app.goo.gl/5Cy2X7f9TEmtrNCr7

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 work space

อันนี้คือหน้าตาของ Node-red หรือ เราจะเรียกมันว่า Node-red work space ก็ได้ การใช้งาน node-red เพียงค่าลาก node ทางด้านขวามา แล้ว ลากเส้นต่อกัน กด deploy ก็ใช้งานได้แล้ว เห้ยง่ายมากเวอร์ !

insert data to mongoDB

จากรูปด้านบน เป็นการ insert หรือ เพิ่ม ข้อมูลเข้าไปเก็บไว้ใน database ได้เลย เป็นวิธีที่ง่ายกว่าการเขียนโค้ดเป็นหลายเท่าแน่ๆ ต่อไปเรามาเริ่มการติดตั้ง node-red กัน!

ขั้นตอนการติดตั้ง

  1. ติดตั้ง 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

  1. Flow : พื้นที่สำหรับทำงานของเรา
  2. Node : คำสั่งต่างๆที่เราจะนำมาใช้ บน Flow
  3. Deploy : กดทุกครั้งที่เปลี่ยนแปลงอะไร
กดทุกครั้ง ย้ำ !!!

ก่อนใช้งานเราต้องทำความรู้จักกับ Node ที่เราจจะใช้กันก่อน

  1. Input : มีจุดด้านขวาเท่านั่น ทำหน้าที่นำข้อมูลเข้า Node-red
  2. Output : มีจุดทางซ้ายเท่านั่น ทำหน้าที่ส่งข้อมูลออกจาก Node-red
  3. Function : มีจุดทั้งสองฝั่ง ใช้ในการจัดการข้อมูลที่เข้ามา และส่งออกไป

Node สามารถวางตรงไหนก็ได้ บน Flow เรา

วางตรงไหนก็ได้ ทำงานได้หมด !!!

ข้อควรระวัง

Input ,Output ต้องตั้งค่าก่อนใช้งาน

Functions ไม่ต้องตั้งค่าก็ใช้งานได้เลย

Node-red จะส่งข้อมูลระหว่าง Node ด้วย Object ฉะนั้นควรรู้จัก Object ใน JavaScript มาก่อนนะครับ

หน้าตาของ Object ที่ส่งหากัน หรือเรียกว่า msg

ข้อมูลที่ส่งกันระหว่าง Node

_msgid : id ที่ระบบสร้างขึ้น

topic : ไว้กำหนดหัวข้อหรือประเภทของแต่ละข้อความ

payload : ข้อความหรือ ข้อมูลที่ส่งหากันระหว่าง Node ( ส่วนใหญ่ Node จะอ่านข้อมูจากตรงนี้ )

Node พื้นฐานที่น่ารู้จัก

  1. debug

debug เป็น node แบบ output ที่ใช้งานกันมาที่สุด เป็น node ที่จะแสดงข้อมูลต่างที่เราต้องการผ่าน หน้าต่าง debug

หน้าต่าง debug

ลองลาก debug มาวางใน flow แล้ว double click ดูกัน

Output : กำหมดว่าข้อความที่ใช้แสดงผลมาจากไหน

To : แสดงผลที่ไหน

Name : ตั้งชื่อ Node ให้จำได้ง่ายๆ

2. inject

inject node

inject เปรียบเสมือนปุ่มกดมหัศจรรย์ เมื่อกด เราสามารถส่งค่าออกไปได้ เช่น ข้อความ, ตัวเลข, ตัวแปร, Boolean, Object

ลองลาก inject มาวางใน Flow แล้ว double click ดู

เราจะเห็นแท็บ และช่องมากมายเลย งงใช่ไหม จะอธิบายให้ฟัง แต่ละช่องมีหน้าที่ดังนี้

Payload : เป็นข้อมูลที่ถูกส่งออกมา

Topic : เป็นหัวข้อของข้อมูลที่ถูกส่งออกไป ( ยังไม่ต้องสนใจ )

Repeat : ตั้งให้ทำซ้ำแบบไหน

Name : ตั้งชื่อ Node ให้เข้าใจง่าย

มาลองเล่น inject กัน โดย ลาก injectและ debug มาวาง บน Flow แล้วลากเส้นเชื่อมกันเลย

ลาก inject มาเชื่อมกับ debug

Double click ที่ inject ตั้งค่าให้ส่ง String คำว่า“ Hello world ” ออกมา

ตั้งค่า payload เป็น String และคำว่า Hello world

กด deploy แล้วมากดที่ปุ้มสีฟ้าข้างขวาของ inject กัน

click ที่กรอบสีแดงเลย

เรามาดู output กันในช่อง debug จะเห็นว่ามีคำว่า hello world ปรากฏอยู่

สำเร็จ ข้อความแรกออกมาแล้ว

--

--