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


引子

Patrick Catanzariti 是一名Web開發工程師,最近他在 sitepoint 發表了《JavaScript Beyond the Web in 2014》,介紹了JavaScript在物聯網中的應用,非常有意思。做為JavaScript的愛好者和從業者,我在這里把它翻譯了,以饗讀者。 順便說一下,就在上周,我們團隊的最新力作“真正的JavaScript控件集”----《新一代JavaScript控件Wijmo 5正式發布》啦。

前言

近十年來Javascript的發展速度非常快,伴隨着Ajax,Node.js等技術的出現,Javascript已經成為編程語言中的一等公民,在Web應用、移動應用以及Web Server端,都可以看見Javascript。在另外一個領域:物聯網(Internet of Things)、智能家居領域,Javascript也有很廣泛的應用。最激動人心的是通過Javascript你可以用來控制移動電話、開關燈具、機器人等等。

去年我寫了一篇文章《JavaScript Beyond the Web》介紹了Javascript在物聯網內的應用。一年過去了,很多新的技術以及智能設備涌現,接下來我們會回顧一下Javascript在這些智能設備上的應用,透過這些這能設備,也許你會有更多的發現。

過去的幾個月內,具有Javascript交互能力的智能設備在逐漸增多。通過智能設備廠商公布的Javascript API文檔,以及社區技術的推進力量,我們確實可以發現越來越多的設備正在具有Javascript交互能力。

智能家居產品

Ninja Sphere

image

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

JavaScript交互能力

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

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開發人員還有很多可以做的事情,那么就先從你的設備開始吧!

 

相關閱讀:

開放才能進步!Angular和Wijmo一起走過的日子

Angular vs React 最全面深入對比

Wijmo已率先支持Angular4 & TypeScript 2.2

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM