LAB1 — [M2.2] — Node-RED GPIO Control Raspberry Pi3 Model B+
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
- ตรวจสอบว่า 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 ติด