Node-RED คืออะไร?
Node-RED คือเครื่องมือแบบ Visual Programming (ลากเส้นต่อกล่อง) สำหรับการทำงานกับ IoT, Automation, API และอื่นๆ โดยเขียนด้วย Node.js ใช้งานผ่านเว็บเบราว์เซอร์
เริ่มต้นใช้งาน Node-RED
1. ติดตั้ง Node.js
Node-RED ต้องการ Node.js ในระบบก่อน:
- ไปที่ https://nodejs.org และดาวน์โหลดเวอร์ชัน LTS
- ติดตั้งตามปกติ
2. ติดตั้ง Node-RED
เปิด Terminal หรือ Command Prompt แล้วพิมพ์:
npm install -g --unsafe-perm node-red
3. เปิด Node-RED
ใน Terminal พิมพ์:
node-red
จะเห็นข้อความประมาณว่า:
Server now running at http://127.0.0.1:1880/
เปิดเว็บเบราว์เซอร์ไปที่ http://localhost:1880
หน้าตา Node-RED
ส่วนประกอบหลัก:
- Nodes (กล่อง): ฟังก์ชันต่างๆ เช่น input, output, logic
- Flow (ผังงาน): หน้ากระดานที่เราลากกล่องมาต่อกัน
- Deploy: ปุ่มสำหรับบันทึกและเริ่มใช้งาน flow
ตัวอย่างแรก: เปิด-ปิดไฟด้วย Switch
ลาก Node ตามนี้:
-
[inject]
[debug]
-
ดับเบิ้ลคลิก inject แล้วตั้งค่าดังนี้:
-
Payload:
string
-
ค่า:
"เปิดไฟ"
-
-
ดับเบิ้ลคลิก debug แล้วเลือกแสดง msg.payload
กดปุ่ม Inject ดูค่าที่แสดงใน debug ด้านขวา
Tip: ลาก Node switch
, function
, mqtt
, http
มาใช้ต่อได้ เช่น เชื่อมกับไฟ LED หรือ API
ตัวอย่าง Nodes ยอดนิยม
Node | ใช้งานสำหรับ |
---|---|
inject |
ส่งค่าเริ่มต้นเข้า flow |
debug |
แสดงค่าที่ปลายทาง |
function |
เขียน JavaScript เพิ่มเติม |
mqtt |
เชื่อมต่อกับ IoT |
http |
ส่งหรือรับ API |
rpi gpio |
ควบคุม Raspberry Pi GPIO |
ตัวอย่าง
- Node-RED เชื่อมกับเซนเซอร์
- Node-RED อ่านค่าจาก MQTT
- Node-RED สั่ง Relay
- Node-RED เชื่อมกับ PLC หรือ SCADA
Node-RED เชื่อมกับเซนเซอร์
แนวทางการเชื่อม Node-RED กับเซนเซอร์
1. เซนเซอร์ต่อกับ Arduino / ESP32 / NodeMCU
เช่น:
- Arduino อ่านค่าจากเซนเซอร์
- ส่งค่าผ่าน Serial / MQTT / HTTP ไปยัง Node-RED
ตัวอย่าง 1: Arduino + DHT11 ส่งค่าอุณหภูมิผ่าน Serial มา Node-RED
อุปกรณ์:
- Arduino UNO
- เซนเซอร์ DHT11
- สาย USB ต่อกับคอม
Sketch ใน Arduino:
Node-RED ตั้งค่า:
1.เพิ่ม Node serial in
- พอร์ต: COMx (ตามที่ Arduino ต่อ)
- Baudrate: 9600
2.ต่อกับ Node function
(แปลงข้อมูล):
3. ต่อกับ Node debug
หรือ ui_gauge
หากทำ Dashboard
2. เซนเซอร์ต่อกับ Raspberry Pi
- ใช้ Node
rpi-gpio in/out
ใน Node-RED ควบคุมหรืออ่านค่า GPIO ได้เลย - ใช้ Python script หรือ Bash แล้วส่งค่าผ่าน MQTT หรือ exec
3. ใช้โปรโตคอล MQTT (นิยมมาก)
- ใช้ Node
mqtt in
เพื่อรับค่าจากเซนเซอร์ที่ publish มาผ่าน MQTT broker เช่น Mosquitto - Node-RED ฟังค่าผ่าน topic เช่น
sensor/temp