LAB1 — [M2.2] — Node-RED GPIO Control Raspberry Pi3 Model B+

Puwanat Torcheewee
3 min readMar 29, 2020

--

Node-RED เป็นเครื่องมือสำหรับนักพัฒนาโปรแกรมในการเชื่อมต่ออุปกรณ์ฮาร์ดแวร์เข้ากับ APIs (Application Programming Interface) ซึ่งเป็นการพัฒนาโปรแกรมแบบ Flow-Based Programming ที่มีหน้า UI สำหรับนักพัฒนาให้ใช้งานผ่าน Web Browser ทำให้การเชื่อมต่อเส้นทางการไหลของข้อมูลนั้นเป็นเรื่องง่าย

เนื่องจาก Node-RED เป็น Flow-Based Programming นั้นทำให้เราแทบจะไม่ต้องเขียน Code ในการพัฒนาโปรแกรมเลย แค่เพียงเลือก Node มาวางแล้วเชื่อมต่อก็สามารถควบคุม I/O ได้โดย Node-RED จะมี Node ให้เลือกใช้งานอย่างหลากหลายสามารถสร้างฟังก์ชัน JavaScript ได้โดยใช้ Text Editor ที่มีอยู่ใน Node-RED และยังสามารถบันทึก Function, Templates, Flows เพื่อไปใช้งานกับงานอื่นต่อไป Node-RED นั้นทำงานบน Node.js ทำให้เหมาะสำหรับการใช้งานกับ Raspberry Pi เนื่องจากใช้ทรัพยากรน้อย ขนาดไฟล์ไม่ใหญ่และ Node.js ยังทำหน้าที่เป็นตัวกลางให้ Raspberry Pi สามารถติดต่อกับ Web Browser และอุปกรณ์อื่นๆ ได้

ทดสอบติดตั้งและใช้งาน Node-RED

  1. ตรวจสอบว่า Raspberry pi มี Node-RED โดยพิมพ์คำสั่งที่ terminal
$ node-red

ถ้ามีจะขึ้นดังรูป หากไม่มีให้ทำดังนี้ : คลิกที่นี่

2. เข้า Web browser โดยพิมพ์ IP Address ของ raspberry pi โดยใช้ port 1880 เช่น 192.168.1.49:1880

***หมายเหตุ เราสามารถเข้า IP Address เพื่อใช้ node-red ใน Browser ที่อยู่ใน windows ได้ หรือจะเข้า Browser ใน RPi ก็ได้

เริ่มการทดลอง

การทดลองที่ 1 LED output control

➽ ขั้นแรกต้องเตรียมโปรแกรมให้พร้อม

  • เข้า Node-RED
  • เลื่อนลงมาที่ Raspberry pi เลือก rpi gpio out แล้วลากออกมา
  • double click ที่ PIN เพื่อ Set ค่า (ในตัวอย่างเลือก PIN 13 (GPIO27))
  • เพิ่ม Trigger และ Set ค่า
  • เพิ่ม inject -> payload เลือก timestamp
  • ลากเส้นเชื่อมต่อกันทั้งหมด แล้วกด deploy ที่มุมขวา

➽ ต่อวงจรดังรูป

  • ใช้ PIN 6 (GND) ต่อขาลบของLEDและขาตัวต้านทาน
  • ใช้ PIN 13(เลือกไว้ตอนแรกในPIN) ต่อขาบวกของLED

➽ จะได้ผลลัพธ์ เมื่อกดปุ่มที่ inject ไฟจะติด

การทดลองที่ 2 Switch input/LED output

  • เลื่อนลงมาที่ Raspberry pi เลือก rpi gpio out แล้วลากออกมาแล้ว set ค่า PIN ในตัวอย่างเลือก PIN 11 (GPIO 17)
  • เลือก rpi gpio in ลากออกมา set ค่า ในตัวอย่างเลือก PIN 15 (GPIO 22) แล้ว Resister? = pullup
  • นำมาเชื่อมกัน แล้วกด deploy ด้านมุมขวามือ

➽ ต่อวงจร ดังรูป

➽ จะได้ผลลัพธ์เมื่อกดปุ่มไฟLED ดับ, ปล่อยไฟLED ติด

--

--