ชื่อโปรเจกต์: Getting Started with Johnny Five for IoT (Part 2)
บทนำ
ในวิดีโอนี้ เราจะสร้างเครือข่ายสมาร์ทโฮมที่ต่อยอดจากตัวอย่างก่อนหน้าของเรา เราจะ "แฮก" Arduino Uno โดยใช้ JavaScript อีกครั้ง แต่คราวนี้เพื่อสร้างหลอดไฟอัจฉริยะที่ง่ายที่สุด เพราะเมื่อพูดถึง "หลอดไฟอัจฉริยะ" เราหมายถึงเพียงแค่ LED นั่นเอง
บทช่วยสอนนี้พัฒนาโดย Tomomi จาก PubNub และยังใช้ Johnny-Five ไม่ใช่หุ่นยนต์จากภาพยนตร์ Short Circuit นะ แต่มันคือเฟรมเวิร์กหุ่นยนต์ JavaScript แบบ open-source ที่ช่วยให้คุณสามารถโปรแกรม Arduino ด้วย Node.js ได้อย่างง่ายดาย ตัวหลอดไฟเองสามารถควบคุมจากระยะไกลผ่านเว็บพอร์ทัล
เพื่อสร้างการสื่อสารแบบ real time ระหว่าง Arduino กับเว็บเบราว์เซอร์ เราใช้ PubNub Data Stream Network (DSN) PubNub มีโครงสร้างพื้นฐานระดับโลกและช่วยให้คุณสร้างและปรับขนาดแอปพลิเคชัน real-time และอุปกรณ์ IoT ได้อย่างง่ายดาย

ตัวควบคุมระยะไกล (web app) เขียนด้วย JavaScript นี่คือ user interface อย่างง่ายที่มีเพียงปุ่มเดียว แม้ว่าจะมีตัวอย่างโค้ดที่สมบูรณ์อยู่บน CodePen, แต่เราจะใช้ เวอร์ชันที่ง่ายกว่า ในบทช่วยสอนนี้ เพื่อให้ง่ายต่อการทำตาม
ขอให้สนุกกับบทช่วยสอน!
หมายเหตุ: ที่เวลา 5:40 ซึ่งฉันกำลังติดตั้ง PubNub ด้วย npm โปรดติดตั้ง v3.x.x เพื่อให้บทช่วยสอนนี้ใช้งานได้ รุ่นนี้ไม่สามารถใช้ร่วมกับ PubNub Node SDK v4 ซึ่งจะเปิดตัวในเร็วๆ นี้!
$ npm install pubnub@3.15.2 --save
รายละเอียดทางเทคนิคเพิ่มเติม
การควบคุม Hardware ด้วย JavaScript
ส่วนที่ 2 ของซีรีส์นี้จะเจาะลึกรูปแบบ IoT ขั้นสูงโดยใช้เฟรมเวิร์ก Johnny-Five และ Node.js เพื่อควบคุม Arduino ผ่านเว็บ
- PubNub Real-Time Bridge: Arduino (ที่รัน Firmata) ถูกควบคุมโดย Node.js server โดย server จะใช้ PubNub API เพื่อสร้างช่องทาง Publish/Subscribe ทำให้ผู้ใช้สามารถสลับการทำงานของ hardware จาก web-browser ได้จากทุกที่ในโลก
- การสำรวจ Sensor แบบ Event-Driven: แทนที่จะใช้การวนลูปแบบ manual, Johnny-Five ใช้รูปแบบ event-emitter (เช่น
sensor.on("change", ...)) เพื่อส่งข้อมูลไปยัง web UI เฉพาะเมื่อมีการเปลี่ยนแปลงที่สำคัญเกิดขึ้น ซึ่งช่วยลดปริมาณการรับส่งข้อมูลเครือข่ายได้อย่างมาก
ประสิทธิภาพ
- การเชื่อมต่อ Firmata ความเร็วสูง: ปรับแต่งมาสำหรับการสื่อสารแบบ serial ที่ 115200 baud ทำให้ได้การตอบสนองแบบ "Cloud-to-Hardware" ที่มี low-latency ซึ่งผู้ใช้จะรู้สึกได้ถึงความรวดเร็วทันที