超越Web:2015年的JavaScript
感謝景莊對《JavaScript Beyond the Web in 2015 》一文的翻譯。
2015 年對于物聯網(IoT,萬物互聯)而言無疑是非常重要的一年。我們看到了很多物聯網設備在設備的尺寸和設備能力方面都有著非常大的進步。 包括像微軟、三星這樣的巨頭公司也先后正式進入了這個領域,物聯網社區在 2015 年整體上在朝著更加壯大的方向發展。 因此本文將會探討與總結物聯網和 JavaScript 技術在 2015 年的發展現狀。雖然在物聯網設備中使用 JavaScript 已經經歷了一段時間的炒作與興奮期, 這一年物聯網社區對待 JavaScript 的態度也在整體上更為冷靜。但 JavaScript 依然不失為物聯網設備的開發者的一項重要的選擇, 依然非常值得開發者嘗試與考慮。本文將會介紹那些能夠使用 JavaScript 進行開發的物聯網設備,并介紹這些技術的相關發展現狀。
Tessel 2
Tessel 2(圖片來源:Tessel)
Tessel 是個類似于 Arduino 的微控制器,不過它運行的是 JavaScript 而不是像C語言這樣的傳統語言。 Tessel 對 JavaScript 開發者而言是一個最佳的入門物聯網技術的設備。從去年 Tessel 被發布以來, 開發者們已經用它實現了很多有趣的工作。 Tessel 2 是今年發布的,相比 Tessel 的第一代版本,有著很多令人興奮的升級。
Tessel 能夠運行多種 npm 包,但是它本身不能運行 Node.js,因此 Tessel 經常需要對一些常用的包構建兼容版本。 Tessel 2 在這一點上有了很大的改建,它能夠直接運行 Node.js。基于這個原因,在它一發布我便提前預定了它。 Tessel 2 的最大優點在于能夠直接使用各種 npm 包,這為它帶來了極大的潛力。
Tessel 2 擁有兩個 USB 端口,可以通過它們訪問各種 USB 設備(例如攝像頭等),就像訪問 Tessel 的模塊一樣。 Tessel 2 還擁有一個 GPIO 端口,用于通過跳線到引腳的方式連接各種電子設備。
相關資料
1. 提前預定 Tessel 2:你可以在它們的網站上提前預定 Tessel 2,然后盡快開始你的創作。 Tessel 2 將于 2016 年 1 月份正式發貨。
2. Tessel 的官方文檔:你可以參考相關的文檔來開始你的工作(Tessel 2 的文檔和 Tesse 1 的文檔非常相似)。
Open Hybrid
Open Hybrid(圖片來源:OpenHybrid)
增強現實技術為控制我們身邊的物聯網設備提供了一種令人著迷的替代方案。你可以通過一個類似于手機 App 的增強現實界面來觀察結果, 或者是基于該界面通過直觀的、無限制的方法去控制這些物聯網設備,而不是直接通過物理的方式去操控對象。 目前很多的公司都在探索增強現實方面的實現工作,MIT 的媒體實驗室目前開發了一個非常有趣的被稱為 Open Hybrid 的設備, 它能夠允許物聯網開發者使用 JavaScript 來開發相關應用,使用 JavaScript 的開發者可能會對這項技術非常有興趣。 Open Hybrid 允許使用 Web 技術進行開發,包括 HTML 和 JavaScript。目前它仍處于增強現實技術的早期階段, 但這無疑讓我們看到了物聯網技術的未來潛力!
相關資料
1. 官方的 Open Hybrid 頁面:你可以了解該技術,并觀看相關的演示視頻,或者是下載相關的材料。
2. 有關 OpenHybrid 的演講:一個關于 OpenHybrid 背后相關的創意及構建過程的演講。
三星的 IoT.js 和 JerryScript
Samsung IoT.js 和 JerryScript 頁面
為了能夠在物聯網設備中使用 JavaScript,三星為此投入了非常多的資源。2015 年,三星開源了開源了 JerryScript, 它是一個能夠應用于物聯網設備的 JavaScript 引擎。JerryScript 使得 JavaScript 能夠運行在小型的、資源有限的物聯網設備中, 例如物聯網中廣泛使用的微控制器。在我看來,它有點類似于 Tessel 所想要達到的目標,但 JerryScript 的目標不僅僅是單一的設備, 而是想將觸角延伸到更多更小的物聯網設備中。
IoT.js 是三星為了能夠在物聯網社區中使用 JavaScript 的另一項嘗試。 和 JerryScript 一樣,它也是開源的。IoT.js 是一個使用 JavaScript 為物聯網設備創建可互操作的物聯網平臺的框架。 有人將它描述為一個輕量級的 Node.js,但目前我還未能深入的去了解這項技術,因此不敢確信該描述是否準確。
目前 IoT.js 和 JerryScript 都處于早期開發階段,因此我很期待它們在 2016 年的繼續發展。我也非常希望三星能夠將它們應用到一些具體的設備中, 從而讓開發者們對它們有更深入的了解。
相關資料
1. 官方的 JerryScript 頁面:包含相關的下載鏈接,以及相關的入門指導。
2. 官方的 IoT.js 頁面:包含相關的下載鏈接,以及相關的入門指導。
從 Spark 到 Particle
Particle Electron(圖片來源:Particle)
在 2015 年,Spark 更名為了 Particle。Spark 提供了一個 Wi-Fi 模塊,使得嵌入在物聯網設備中的微控制器能夠與它們的自有云端服務通進行流式通信。 從 JavaScript 開發者的角度來看,它們擁有一個 JavaScript SDK 和很多兼容的第三方 JavaScript 插件。 雖然今年 Spark 更名為 Particle,相關的設備的使用范圍也有了更大的發展。
目前該公司已經在著手發布一個更快更可靠的微控制器,它被稱為 Photon。 它通過在 Kickstarter 的基礎上增加了一個名為 Electron 的能夠進行 2G/3G 通信的微控制器(無需 Wi-Fi 連接即可實現設備一直在線)。 Electron 目前已經可以在它們的網站提前預定,并且預計在 2016 年 1 月份正式發貨。
最后,這些設備在發展過程中會繼續支持 JavaScript API,因此 JavaScript 在未來的一年將有更多的機會去接觸到更多的物聯網設備。 并且,Particle 有著一個非常壯大的社區。
相關資料
- Particle 原型設備:Particle 的官方頁面,展現了各種相關的原型設備及介紹。
- ParticleJS 官方文檔
Windows10 的 IoT 核心
包括一個樹莓派的 Windows 10 IoT Core 的開發者入門套裝(圖片來源:Microsoft and Adafruit)
微軟今年正式面向全世界發布了 Windows 10,為包括物聯網設備在內的多種平臺提供了一個統一的 Windows 平臺。 微軟在這方面也考慮到了 JavaScript 開發者,在 Windows 10 IoT 生態系統內通過 Chakra JavaScript 引擎提供了對 Node.js 的支持。到目前為止,我所看到的使用 Windows 10 IoT 操作系統的主要物聯網設備均為樹莓派2。 MininowBoard Max 和 DragonBoard410c 也支持 Windows 10 IoT。經過一段事件,我們可能會發現更多的設備擁抱 Windows 10 IoT 這一生態。 有一點很重要,Windows 10 IoT Core 使用的并不是一個完整功能的 Windows 10 操作系統,它是一個面向物聯網設備的閹割版操作系統。
相關資料:
- 在 Raspberry Pi 2 中運行 Windows 10 IoT:包含一個相關的系列,幫你使用樹莓派 2 來入門和使用 Windows 10 IoT。
- 在 Windows IoT 平臺中運行 Node.js:微軟提供的一個官方示例,用于幫助開發者入門 Windows 10 IoT 的核心以及 Node.js。
- Windows 10 IoT 的核心文檔和示例:文檔和例子,包括 Node.js。
Evothings
運行在 Mac OSX 和移動設備上的 Evothings Studio
Evothings 是一組用于開發移動端的物聯網 Web 應用的開發工具,在 2015 年它們有了較為顯著的發展,并且功能上也越來越強大。 我是在今年的下半年才偶然發現了這組工具,并且深深的被它們所提供的功能所吸引。目前這組工具已經被集成到了一個稱為 Evothings Studio 的應用中。 Evothings Studio 允許你開發能夠實時重載和調試的移動端的 HTML5 和 JavaScript 應用。 當我在我尋找合適的 Estimote 藍牙信標時發現了它, 在這個場景下,它提供了完美的解決方案,因為桌面端的模擬器無法模擬藍牙的連接信標。 通過在我的移動設備中運行 Evothings,使得軟件的測試過程變得非常的簡單。
對于 JavaScript 開發者而言,這個平臺也非常的令人興奮,因為 Evothings 團隊提供了 一套相關的示例文檔用于展示如何在大量的物聯網設備中使用 JavaScript。
相關資料:
- 官方入門文檔:包括相關的示例內容
- Evothings Tutorials:具體的項目實戰
- 使用 Estimote 和 Evothings 來構建信標 APP 的原型
The IFTTT Maker Channel
IFTTT 制作者頻道
今年 IFTTT 發布了一個能夠制作和接收自定義的 HTTP 請求的頻道——IFTTT 制作者頻道,這個功能是物聯網社區一直夢寐以求的。 這為用戶通過 IFTTT 接入多種服務提供了可能,它允許用戶通過自定義它們的制作者頻道的方式來接收 HTTP 請求。
這項服務尤其適合 Node.js 開發者,因為 HTTP 請求可以輕易的通過 Node.js 來生成或接收。這意味著, 所有能夠接入到 Node.js 的物聯網設備都能夠連接到 IFTTT。
相關資料
- IFTTT 制作者頻道:IFTTT 制作者頻道的官方頁面。
- 將 IoT 和 Node.js 接入到 IFTTT:一些開發樣例。
- 通過 LightBlue Bean 和 IFTTT 自動化 LIFX Lights。
Johnny-Five Revamped!
Johnny-Five 新版網站
Johnny-Five 是一個常用于 Arduino NodeBot 開發的 JavaScript 編程框架。Johnny-Five 的新版網站新增了大量的文檔。 它所支持的設備也得到了不斷的增加,并且基于它們的平臺能夠幫助開發者更好的通過 JavaScript 編寫物聯網應用。
相關資料
- Johnny-Five 官方網站:新版網站
- JavaScript Robotic Book :一本關于如何使用 JavaScript 編寫機器人的書,作者主要來源于 NodeBots 社區,非常值得一讀。
Paspberry Pi Zero (樹莓派)
Raspberry Pi Zero(圖片來源:Raspberry Pi Foundation)
最后,介紹一個較為新的也是目前比較流行的物聯網設備,它提供了一些令 JavaScript 開發者興奮的功能,它就是樹莓派 zero。 它只有 Mdel A+ Pi 的一半大小,但仍然擁有難以置信的速度和功率。由于樹莓派設備普遍運行 Linux,因此在它們上面運行 Node 服務器也就非常的常見。 樹莓派 zero 提供了一個盡可能小的可以運行 JavaScript 的設備,在未來的幾個月我敢肯定會帶來更多令人印象深刻的創造。
相關資料
- 樹莓派 zero 的產品頁面:官方的產品頁,你可以查看相關的說明或者購買該產品。
- 使用 JavaScript 來將樹莓派的攝像頭通過流傳輸到 VR。
- JavaScript Robotics Book。
總結
2015 年對于 JavaScript 開發者而言有著非常多令人印象深刻的物聯網設備,包括像 Tessel 這樣直接使用 JavaScript 的設備, 以及像樹莓派 Zero 這樣可以間接使用 JavaScript 編程的設備。我想在 2016 年 JavaScript 開發者將會有更多的選擇。 如果你是個 JavaScript 開發者,并且對于物聯網社區并沒有太深入的了解,你可以參考上面的技術。我相信, JavaScript 將會比我們所能意識到的做到更多。最后,擁抱 JavaScript 社區吧!
來自: CSDN