超越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