บทความจากคุณ AorJoa เข้าได้ทดลองเกี่ยวกับ WebSocket ส่งค่าไปควบคุมบน Raspberry Pi ครับ อันนี้ใช้ Node.js ติดต่อกับ GPIO ของ RPI ด้วย ใครสนใจลองไอเดียใหม่ๆ เข้าไปดูกันได้เลย เนื้อหา อาจจะยังน้อยไปนิดนะครับ
วันนี้ขอเสนอเอา Webcam มาสั่ง Raspberry Pi เปิดไฟ โดยผมใช้เว็บแคมจากโน๊ตบุ๊ค (เพื่อประหยัดค่าอุปกรณ์ >.<“) แล้วส่งข้อมูลผ่าน WebSocket ไปเปิดไฟผ่านพอร์ต GPIO ของ Raspberry Pi วันนี้คงไม่ลงรายละเอียดอะไรมากครับ ขออธิบายโค้ดส่วนของ Business Logic หน่อยหล่ะกันครับ เพราะนานแล้วที่ไม่ได้อธิบายโค้ด
=====> Source code : https://github.com/Aorjoa/RaspberryPi_GPIO_NodeJS <=====
- ทางฝั่ง Client ผมใช้ JavaScript + HTML5(WebRTC) รับข้อมูลจากกล้อง ซึ่ง Library ก็ดูตามเว็บทั่วๆไปครับ หลักการก็เป็นหลักการของ Computer graphic ทั่วไปครับ หากมี พื้นที่ A – พื้นที่ B ถ้าต่างกันแสดงว่ามีการกระทำบริเวณนั้น หาก พื้นที่ A- พื้นที่ B แล้วได้ใกล้เคียงของเดิมแสดงว่ายังไม่มีการกระทำอะไรบริเวณนั้น โค้ดผมอัพไว้บน Github เผื่อใครสนใจครับ https://github.com/Aorjoa/RaspberryPi_GPIO_NodeJS/blob/master/Client/index.html
- ฝั่ง Client แม้เป็นไฟล์ HTML ธรรมดาแต่ต้องเปิด Server เพื่อใช้งานไฟล์นี้เพราะโดยทั่วไป Browser จะปิดการเรียกใช้งานผ่านไฟล์โดยตรงไว้ เพื่อความปลอดภัยครับ (สามารถแก้ไขให้เปิดจากไฟล์โดยตรงได้ แต่ไม่แนะนำ) แนะนำให้เปิดผ่าน WebServer ครับ
- ทางฝั่ง Server ผมใช้ JavaScript เขียนโค้ดที่รันบน Raspberry Pi ครับ มาดูโค้ดกัน ต้องลงโมดูล rpi-gpio ของ Node.js ก่อนด้วยนะครับ https://github.com/Aorjoa/RaspberryPi_GPIO_NodeJS/blob/master/Server/node_camera_gpio_server.js