Patrick Catanzariti 是一名Web開發工程師,最近他在 sitepoint 發表了《JavaScript Beyond the Web in 2014》,介紹了JavaScript在物聯網中的應用,很是有意思。作爲JavaScript的愛好者和從業者,我在這裏把它翻譯了,以饗讀者。 順便說一下,就在上週,咱們團隊的最新力做「真正的JavaScript控件集」----《新一代JavaScript控件Wijmo 5正式發佈》啦。 javascript
近十年來Javascript的發展速度很是快,伴隨着Ajax,Node.js等技術的出現,Javascript已經成爲編程語言中的一等公民,在Web應用、移動應用以及Web Server端,均可以看見Javascript。在另一個領域:物聯網(Internet of Things)、智能家居領域,Javascript也有很普遍的應用。最激動人心的是經過Javascript你能夠用來控制移動電話、開關燈具、機器人等等。 html
去年我寫了一篇文章《JavaScript Beyond the Web》介紹了Javascript在物聯網內的應用。一年過去了,不少新的技術以及智能設備涌現,接下來咱們會回顧一下Javascript在這些智能設備上的應用,透過這些這能設備,也許你會有更多的發現。 java
過去的幾個月內,具備Javascript交互能力的智能設備在逐漸增多。經過智能設備廠商公佈的Javascript API文檔,以及社區技術的推動力量,咱們確實能夠發現愈來愈多的設備正在具備Javascript交互能力。 node
Ninja Sphere 是由來自澳大利亞的Ninja Blocks團隊推出的下一代的智能家居控制器,這個智能設備能夠把各類各樣的電子設備加入物聯網,而且經過它能夠一一控制這些設備。Ninja Sphere可以遠程操控已鏈接的設備,能夠經過手勢控制以及查看設備所在位置等等。目前Ninja Sphere能夠支持包括具備Bluetooth,BLE,Wi-Fi,Zigbee鏈接的設備。 web
Javascript開發人員能夠經過 Ninja Sphere Node.js library 來進行Ninja Sphere應用程序的開發,甚至經過Javascript能夠在Ninja Sphere中編寫設備驅動以及設備定義,這無疑是Javascript開發人員的夢想。 chrome
Leap Motion 是一個很是好玩的小裝置,能夠經過手勢來控制設備以及應用程序。它能夠感知雙手在空氣中的天然移動,精確跟蹤手和手指的運動。以及手指的動做。 編程
PebbleKit JavaScript framework :這個框架容許開發人員從雲上獲取數據,獲取設備的物理位置信息等等,爲Pebble Watch來構建用戶體驗很是好的應用程序。手錶端的App開發須要一些C代碼,可是無需太多的C代碼程序編寫經驗,你能夠從官方的例子出發,經過Javascript來構建功能很是強大的手錶應用。下面的幾篇文章介紹瞭如何經過Javascript來編寫Pebble Watch應用: 瀏覽器
Pebble Watch Development with JavaScript – Pebble手錶Javascript編程入門。 網絡
Advanced Pebble Watch Configuration – 如何配置Pebble Javascript手錶應用。 架構
Pebble.js – Pebble官方發佈的Javascript框架,目前仍是beta版本,將來幾個月會發布正式版本。
虛擬現實頭盔Oculus Rift讓咱們比以往任什麼時候候都更加接近虛擬現實,今年他們發佈新版機器:「Crescent Bay」,以及最新的開發工具包:The Developer Kit 2。與此同時Oculus 與三星聯合發佈了移動式虛擬現實頭戴設備Gear VR,該設備可與三星手機配套使用,實現虛擬現實互動效果。
Cylon.js 是一個 JavaScript 框架,用來進行機器人以及物聯網開發。Cylon.js 使得開發人員可使用一樣的API來操縱不一樣的設備,這些設備的名單正在逐漸擴大,包括Leap Motion,Pebble手錶,Arduinos和Raspberry Pis等等。
Javascript交互能力
Installing Node.js on the Arduino YUN : 對於Javascript開發人員來說,Linux意味着能夠安裝 Node.js 到Arduino上,而後執行Javascript代碼。
Cylon.js module:支持Arduino YUN的Cylon模塊。
Spark OS 是一個基於雲的,物聯網操做系統。該團隊還擁有Spark Core,Spark Core 是一款徹底兼容 Arduino的WiFi開發板,可讓工程師開發出任意與網絡鏈接的硬件設備。經過Spark OS雲服務能夠給Spark Core設備發送指令。
Javascript交互能力
Official Spark JavaScript SDK:官方的Javascript SDK。
spark-ii:用來與Spark設備交互的IO庫。
Sparky:一個很是簡單的 Node.js 庫。
Cylon.js module:支持Spark OS的Cylon模塊。
Tessel 是一款與 Arduino 和 Spark Core 很相似的板子,可是 Tessel能夠直接運行Javascript代碼,幾乎專門爲Javascript開發人員設計。它徹底兼容基於 Node.js 的各類 package包,能夠很好的利用現有的不少資源。
Javascript交互能力
Official Tessel docs :官方文檔,很是多的例子。
Cylon.js module:支持Tessel的Cylon模塊。
Espruino是一個微處理器的JavaScript解釋器,號稱是全球第一款面向初學者或專家級玩家的Javascript單片機,能夠實時的執行你的Javascript。
Javascript交互能力
Official Espruino docs :官方文檔。
node-espruino :一個第三方的Node庫,藉助於它能夠經過Node.js與Espruino進行交互。
Intel Galileo是Intel推出的採用x86 構架的 Arduino 開發板,與Arduino YUN同樣,Galileo在板子上也運行着Linux。
Javascript交互能力
The 「bigger」 Linux image with Node.js:來自SparkFun的文章,介紹了Intel Galileo如何使用SD卡啓動Linux。
Intel Galileo Programming with JavaScript and Node.js :很是好的參考文章關於Intel Galileo,Javascript以及Node.js。
Cylon:支持Intel Galileo的Cylon模塊。
Galileo-IO module for Johnny-Five:Javascript IO交互模塊。
今年的Google I/O大會上最有趣的話題就是:Google Cardboard。一款虛擬現實的紙盒,它的外形雖不起眼,但在徹底組裝完成後,Cardboard能夠利用用戶的智能手機和內置的一副鏡片,爲用戶提供虛擬現實體驗。官方的文章主要在講述如何進行原生的Andriod開發,可是經過Javascript也能夠在Chrome進行虛擬現實的體驗。
Cardboard Chrome Experiments :包含了大量的演示程序,以及代碼示例。
炫酷手勢臂環 Myo Armband 容許用戶戴在胳膊前臂上,能夠經過動做命令來控制電腦,經過對動做和腦電活動的檢測,Myo Armband能夠識別出用戶的手勢活動。
MyoJS:一個非官方的Myo Armband Javascript 框架。
Nest 團隊如今有兩種智能設備,智能溫控器(Nest thermostat)和煙霧報警器(Nest Protect)。今年他們推出了Nest開發者計劃,而且公佈了Nest API。儘管並無Javascript API的說明文檔,可是提供了Javascript操做Nest API的兩個示例程序。
Javascript交互能力
Official sample JS for the Nest Thermostat:智能溫控器官方示例。
Official sample JS for the Nest Protect:煙霧報警器官方示例。
Cylon.js 模塊:支持Nest的Cylon模塊。
如同你看到的,大量的具備Javascript交互能力的智能設備正在快速增加,限於篇幅本文只列舉了上面的設備。在物聯網領域Javascript開發人員還有不少能夠作的事情,那麼就先從你的設備開始吧!