超越Web,Javascript在物聯網的應用

引子

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

image

Ninja Sphere 是由來自澳大利亞的Ninja Blocks團隊推出的下一代的智能家居控制器,這個智能設備能夠把各類各樣的電子設備加入物聯網,而且經過它能夠一一控制這些設備。Ninja Sphere可以遠程操控已鏈接的設備,能夠經過手勢控制以及查看設備所在位置等等。目前Ninja Sphere能夠支持包括具備Bluetooth,BLE,Wi-Fi,Zigbee鏈接的設備。 web

JavaScript交互能力

Javascript開發人員能夠經過 Ninja Sphere Node.js library 來進行Ninja Sphere應用程序的開發,甚至經過Javascript能夠在Ninja Sphere中編寫設備驅動以及設備定義,這無疑是Javascript開發人員的夢想。 chrome

Leap Motion

image

Leap Motion 是一個很是好玩的小裝置,能夠經過手勢來控制設備以及應用程序。它能夠感知雙手在空氣中的天然移動,精確跟蹤手和手指的運動。以及手指的動做。 編程

在V2版本他們提升了手指追蹤的穩定性,如今甚至能夠單獨追蹤手指上的每個手骨。另外V2版本還提供了另一個激動人心的特性:虛擬現實,把你的雙手帶進虛擬的3D世界。更多參見:Leap Motion + 虛擬現實
Leap Motion爲Javascript開發人員提供了一個Javascript SDK,而且提供了詳盡的文檔以及大量的例子,更多參見Leap Motion JavaScript framework

Pebble Watch

image

我我的是一個很是狂熱的Pebble watch愛好者,在Apple Watch和Google Wear出現以前,Prebble watch就是一款真正的智能手錶,易於使用,可是有着難以置信的功能,同時支持iOS和Android平臺。採用了E-Paper顯示屏,即使在陽光直射下也容易讀取,耗電量也很低,每週須要衝一次。

JavaScript交互能力

PebbleKit JavaScript framework :這個框架容許開發人員從雲上獲取數據,獲取設備的物理位置信息等等,爲Pebble Watch來構建用戶體驗很是好的應用程序。手錶端的App開發須要一些C代碼,可是無需太多的C代碼程序編寫經驗,你能夠從官方的例子出發,經過Javascript來構建功能很是強大的手錶應用。下面的幾篇文章介紹瞭如何經過Javascript來編寫Pebble Watch應用: 瀏覽器

Oculus Rift

image

虛擬現實頭盔Oculus Rift讓咱們比以往任什麼時候候都更加接近虛擬現實,今年他們發佈新版機器:「Crescent Bay」,以及最新的開發工具包:The Developer Kit 2。與此同時Oculus 與三星聯合發佈了移動式虛擬現實頭戴設備Gear VR,該設備可與三星手機配套使用,實現虛擬現實互動效果。

JavaScript交互能力

OculusBridge :一個桌面應用程序,包含了一個Javascript庫,開發人員能夠基於 Three.js 來構建Oculus Rift Web體驗,支持Windows和Max OSX,能夠在Chrome 28,Safari 6以及Firefox 22以上的版本工做。它並無提到IE瀏覽器,我不能缺失它是否支持IE。

vr.js :一個Chrome和Firefox插件,能夠操做Oculus Rift虛擬現實頭盔,可是它須要NPAPI接口,而Google Chrome已經放棄對該標準的支持,建議使用OculusBridge代替。

Babylon.js and IE11 :若是你正在使用Windows以及IE 11,你能夠經過Babylon.js建立一個3D環境,能夠構建Oculus Rift虛擬現實體驗。

Cylon

image

Cylon.js 是一個 JavaScript 框架,用來進行機器人以及物聯網開發。Cylon.js 使得開發人員可使用一樣的API來操縱不一樣的設備,這些設備的名單正在逐漸擴大,包括Leap Motion,Pebble手錶,Arduinos和Raspberry Pis等等。

Arduino YUN

image

Arduino YUN 是Arduino發佈的最新新列的無線產品,合併了 Arduino 架構和 Linux 系統,Arduino 但願藉此產品整合 Linux 強大的功能和 Arduino 的易用性。

Javascript交互能力

Spark OS

image

Spark OS 是一個基於雲的,物聯網操做系統。該團隊還擁有Spark Core,Spark Core 是一款徹底兼容 Arduino的WiFi開發板,可讓工程師開發出任意與網絡鏈接的硬件設備。經過Spark OS雲服務能夠給Spark Core設備發送指令。

Javascript交互能力

Tessel

image

Tessel 是一款與 Arduino 和 Spark Core 很相似的板子,可是 Tessel能夠直接運行Javascript代碼,幾乎專門爲Javascript開發人員設計。它徹底兼容基於 Node.js 的各類 package包,能夠很好的利用現有的不少資源。

Javascript交互能力

  • Official Tessel docs :官方文檔,很是多的例子。

  • Cylon.js module:支持Tessel的Cylon模塊。

Espruino

image

Espruino是一個微處理器的JavaScript解釋器,號稱是全球第一款面向初學者或專家級玩家的Javascript單片機,能夠實時的執行你的Javascript。

Javascript交互能力

  • Official Espruino docs :官方文檔。

  • node-espruino :一個第三方的Node庫,藉助於它能夠經過Node.js與Espruino進行交互。

Intel Galileo

image

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 Cardboard

image

今年的Google I/O大會上最有趣的話題就是:Google Cardboard。一款虛擬現實的紙盒,它的外形雖不起眼,但在徹底組裝完成後,Cardboard能夠利用用戶的智能手機和內置的一副鏡片,爲用戶提供虛擬現實體驗。官方的文章主要在講述如何進行原生的Andriod開發,可是經過Javascript也能夠在Chrome進行虛擬現實的體驗。

JavaScript交互能力

Myo Armband

image

炫酷手勢臂環 Myo Armband 容許用戶戴在胳膊前臂上,能夠經過動做命令來控制電腦,經過對動做和腦電活動的檢測,Myo Armband能夠識別出用戶的手勢活動。

JavaScript交互能力
  • MyoJS:一個非官方的Myo Armband Javascript 框架。

Nest

image

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開發人員還有不少能夠作的事情,那麼就先從你的設備開始吧!

相關文章
相關標籤/搜索