2015年對於物聯網(IoT,萬物互聯)而言無疑是非常重要的一年。我們看到了很多物聯網設備在設備的尺寸和設備能力方面都有著非常大的進步。 包括像微軟、三星這樣的巨頭公司也先後正式進入了這個領域,物聯網社區在2015年整體上在朝著更加壯大的方向發展。 因此本文將會探討與總結物聯網和JavaScript技術在2015年的發展現狀。雖然在物聯網設備中使用JavaScript已經經歷了一段時間的炒作與興奮期, 這一年物聯網社區對待JavaScript的態度也在整體上更為冷靜。但JavaScript依然不失為物聯網設備的開發者的一項重要的選擇, 依然非常值得開發者嘗試與考慮。本文將會介紹那些能夠使用JavaScript進行開發的物聯網設備,並介紹這些技術的相關發展現狀。
Tessel 2
Tessel 2(圖片來源:Tessel)
Tessel是個類似於Arduino的微控制器,不過它運行的是JavaScript而不是像C語言這樣的傳統語言。 Tessel對JavaScript開發者而言是一個最佳的入門物聯網技術的設備。從去年Tessel被發布以來, 開發者們已經用它實現了很多有趣的工作[1]。 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[2]:你可以在它們的網站上提前預定Tessel 2,然後儘快開始你的創作。 Tessel 2將於2016年1月份正式發貨。
2. Tessel的官方文檔[3]:你可以參考相關的文檔來開始你的工作(Tessel 2的文檔和Tesse 1的文檔非常相似)。
Open Hybrid
Open Hybrid(圖片來源:OpenHybrid)
增強現實技術為控制我們身邊的物聯網設備提供了一種令人著迷的替代方案。你可以通過一個類似於手機App的增強現實界面來觀察結果, 或者是基於該界面通過直觀的、無限制的方法去控制這些物聯網設備,而不是直接通過物理的方式去操控對象。 目前很多的公司都在探索增強現實方面的實現工作,MIT的媒體實驗室目前開發了一個非常有趣的被稱為Open Hybrid的設備, 它能夠允許物聯網開發者使用JavaScript來開發相關應用,使用JavaScript的開發者可能會對這項技術非常有興趣。 Open Hybrid允許使用Web技術進行開發,包括HTML和JavaScript。目前它仍處於增強現實技術的早期階段, 但這無疑讓我們看到了物聯網技術的未來潛力!
相關資料
1. 官方的Open Hybrid頁面[4]:你可以了解該技術,並觀看相關的演示視頻,或者是下載相關的材料。
2. 有關OpenHybrid的演講[5]:一個關於OpenHybrid背後相關的創意及構建過程的演講。
三星的IoT.js和JerryScript
Samsung IoT.js和JerryScript頁面
為了能夠在物聯網設備中使用 JavaScript[6],三星為此投入了非常多的資源。2015年,三星開源了開源了JerryScript, 它是一個能夠應用於物聯網設備的JavaScript引擎。JerryScript使得JavaScript能夠運行在小型的、資源有限的物聯網設備中, 例如物聯網中廣泛使用的微控制器。在我看來,它有點類似於Tessel所想要達到的目標,但JerryScript的目標不僅僅是單一的設備, 而是想將觸角延伸到更多更小的物聯網設備中。
IoT.js[7]是三星為了能夠在物聯網社區中使用JavaScript的另一項嘗試。 和JerryScript一樣,它也是開源的。IoT.js是一個使用JavaScript為物聯網設備創建可互操作的物聯網平臺的框架。 有人將它描述為一個輕量級的Node.js,但目前我還未能深入的去了解這項技術,因此不敢確信該描述是否準確。
目前IoT.js和JerryScript都處於早期開發階段,因此我很期待它們在2016年的繼續發展。我也非常希望三星能夠將它們應用到一些具體的設備中, 從而讓開發者們對它們有更深入的了解。
相關資料
1. 官方的JerryScript頁面[8]:包含相關的下載連結,以及相關的入門指導。
2. 官方的IoT.js頁面[9]:包含相關的下載連結,以及相關的入門指導。
從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有著一個非常壯大的社區。
相關資料
Windows10的IoT核心
包括一個樹莓派的Windows 10 IoT Core的開發者入門套裝(圖片來源:Microsoft and Adafruit)
微軟今年正式面向全世界發布了Windows 10,為包括物聯網設備在內的多種平臺提供了一個統一的Windows平臺。 微軟在這方面也考慮到了JavaScript開發者,在Windows 10 IoT生態系統內通過Chakra JavaScript[12]引擎 提供了對Node.js的支持。到目前為止,我所看到的使用Windows 10 IoT作業系統的主要物聯網設備均為樹莓派2。 MininowBoard Max和DragonBoard410c也支持Windows 10 IoT。經過一段事件,我們可能會發現更多的設備擁抱Windows 10 IoT這一生態。 有一點很重要,Windows 10 IoT Core使用的並不是一個完整功能的Windows 10作業系統,它是一個面向物聯網設備的閹割版作業系統。
相關資料
Evothings
運行在Mac OSX和行動裝置上的Evothings Studio
Evothings是一組用於開發移動端的物聯網Web應用的開發工具,在2015年它們有了較為顯著的發展,並且功能上也越來越強大。 我是在今年的下半年才偶然發現了這組工具,並且深深的被它們所提供的功能所吸引。目前這組工具已經被集成到了一個稱為Evothings Studio的應用中。 Evothings Studio允許你開發能夠實時重載和調試的移動端的HTML5和JavaScript應用。 當我在我尋找合適的Estimote藍牙信標[16]時發現了它, 在這個場景下,它提供了完美的解決方案,因為桌面端的模擬器無法模擬藍牙的連接信標。 通過在我的行動裝置中運行Evothings,使得軟體的測試過程變得非常的簡單。
對於JavaScript開發者而言,這個平臺也非常的令人興奮,因為Evothings團隊提供了 一套相關的示例文檔[17]用於展示如何在大量的物聯網設備中使用JavaScript。
相關資料
The IFTTT Maker Channel
IFTTT製作者頻道
今年IFTTT發布了一個能夠製作和接收自定義的HTTP請求的頻道——IFTTT製作者頻道,這個功能是物聯網社區一直夢寐以求的。 這為用戶通過IFTTT接入多種服務提供了可能,它允許用戶通過自定義它們的製作者頻道的方式來接收HTTP請求。
這項服務尤其適合Node.js開發者,因為HTTP請求可以輕易的通過Node.js來生成或接收。這意味著, 所有能夠接入到Node.js的物聯網設備都能夠連接到IFTTT。
相關資料
Johnny-Five Revamped!
Johnny-Five新版網站
Johnny-Five是一個常用於Arduino NodeBot開發的JavaScript編程框架。Johnny-Five的新版網站新增了大量的文檔。 它所支持的設備也得到了不斷的增加,並且基於它們的平臺能夠幫助開發者更好的通過JavaScript編寫物聯網應用。
相關資料
Paspberry Pi Zero (樹莓派)
Raspberry Pi Zero(圖片來源:Raspberry Pi Foundation)
最後,介紹一個較為新的也是目前比較流行的物聯網設備,它提供了一些令JavaScript開發者興奮的功能,它就是樹莓派zero。 它只有Mdel A+ Pi的一半大小,但仍然擁有難以置信的速度和功率。由於樹莓派設備普遍運行Linux,因此在它們上面運行Node伺服器也就非常的常見。 樹莓派zero提供了一個儘可能小的可以運行JavaScript的設備,在未來的幾個月我敢肯定會帶來更多令人印象深刻的創造。
相關資料
總結
2015年對於JavaScript開發者而言有著非常多令人印象深刻的物聯網設備,包括像Tessel這樣直接使用JavaScript的設備, 以及像樹莓派Zero這樣可以間接使用JavaScript編程的設備。我想在2016年JavaScript開發者將會有更多的選擇。 如果你是個JavaScript開發者,並且對於物聯網社區並沒有太深入的了解,你可以參考上面的技術。我相信, JavaScript將會比我們所能意識到的做到更多。最後,擁抱JavaScript社區吧!
編譯自:http://www.sitepoint.com/javascript-beyond-the-web-in-2015/[1]: https://tessel.hackster.io/zaccolley/thermal-printer-module-for-tessel-74293b
[2]: https://tessel.io/
[3]: https://tessel.io/docs/home
[4]: http://openhybrid.org/index.html
[5]: http://openhybrid.org/solid.html
[6]: https://samsung.github.io/jerryscript/
[7]: https://samsung.github.io/iotjs/
[8]: https://samsung.github.io/jerryscript/
[9]: https://samsung.github.io/iotjs/
[10]: https://www.particle.io/prototype
[11]: https://docs.particle.io/reference/javascript/
[12]: https://blogs.windows.com/buildingapps/2015/05/12/bringing-node-js-to-windows-10-iot-core/
[13]: http://www.sitepoint.com/running-windows-10-iot-core-on-a-raspberry-pi/
[14]: https://blogs.windows.com/buildingapps/2015/05/12/bringing-node-js-to-windows-10-iot-core/
[15]: http://ms-iot.github.io/content/en-US/win10/StartCoding.htm
[16]: http://www.sitepoint.com/how-to-prototype-beacon-apps-with-estimote-and-evothings/
[17]: https://evothings.com/tutorials/
[18]: https://evothings.com/getting-started-with-evothings-studio-in-90-seconds/
[19]: https://evothings.com/tutorials/
[20]: http://www.sitepoint.com/how-to-prototype-beacon-apps-with-estimote-and-evothings/
[21]: https://ifttt.com/maker
[22]: http://www.sitepoint.com/connecting-the-iot-and-node-js-to-ifttt/
[23]: http://www.sitepoint.com/automating-lifx-lights-with-the-lightblue-bean-and-ifttt/
[24]: http://johnny-five.io/
[25]: http://www.amazon.com/Make-JavaScript-Robotics-Raspberry-BeagleBone/dp/1457186950
[26]: https://www.raspberrypi.org/products/pi-zero/
[27]: http://www.sitepoint.com/streaming-a-raspberry-pi-camera-into-vr-with-javascript/
[28]: http://www.amazon.com/Make-JavaScript-Robotics-Raspberry-BeagleBone/dp/1457186950
推薦文章
將文章分享給朋友是對我們最好的讚賞!