引子
Patrick Catanzariti 是一名Web开发project师,近期他在 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
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
Leap Motion 是一个很好玩的小装置,能够通过手势来控制设备以及应用程序。它能够感知双手在空气中的自然移动,精确跟踪手和手指的运动。以及手指的动作。
在V2版本号他们提高了手指追踪的稳定性,如今甚至能够单独追踪手指上的每个手骨。另外V2版本号还提供了另外一个激动人心的特性:虚拟现实,把你的双手带进虚拟的3D世界。许多其它參见:Leap Motion + 虚拟现实。
Leap Motion为Javascript开发者提供了一个Javascript SDK,而且提供了详尽的文档以及大量的样例,许多其它參见Leap Motion JavaScript framework 。
Pebble Watch
我个人是一个很狂热的Pebble watch爱好者,在Apple Watch和Google Wear出现之前,Prebble watch就是一款真正的智能手表,易于使用,可是有着难以置信的功能,同一时候支持iOS和Android平台。採用了E-Paper显示屏,即便在阳光直射下也easy读取,耗电量也很低,每周须要冲一次。
JavaScript交互能力
PebbleKit JavaScript framework :这个框架同意开发者从云上获取数据,获取设备的物理位置信息等等,为Pebble Watch来构建用户体验很好的应用程序。手表端的App开发须要一些C代码,可是无需太多的C代码程序编写经验,你能够从官方的样例出发,通过Javascript来构建功能很强大的手表应用。以下的几篇文章介绍了怎样通过Javascript来编写Pebble Watch应用:
- Pebble Watch Development with JavaScript – Pebble手表Javascript编程入门。
- Advanced Pebble Watch Configuration – 怎样配置Pebble Javascript手表应用。
- Pebble.js – Pebble官方公布的Javascript框架,眼下还是beta版本号,未来几个月会公布正式版本号。
Oculus Rift
虚拟现实头盔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
Cylon.js 是一个 JavaScript 框架,用来进行机器人以及物联网开发。Cylon.js 使得开发者能够使用相同的API来操纵不同的设备,这些设备的名单正在逐渐扩大,包括Leap Motion,Pebble手表,Arduinos和Raspberry Pis等等。
Arduino YUN
Arduino YUN 是Arduino公布的最新新列的无线产品,合并了 Arduino 架构和 Linux 系统,Arduino 希望借此产品整合 Linux 强大的功能和 Arduino 的易用性。
Javascript交互能力
- Installing Node.js on the Arduino YUN : 对于Javascript开发者来讲,Linux意味着能够安装 Node.js 到Arduino上,然后执行Javascript代码。
- Cylon.js module:支持Arduino YUN的Cylon模块。
Spark OS
Spark OS 是一个基于云的,物联网操作系统。该团队还拥有Spark Core,Spark Core 是一款全然兼容 Arduino的WiFi开发板,能够让project师开发出随意与网络连接的硬件设备。通过Spark OS云服务能够给Spark Core设备发送指令。
Javascript交互能力
- Official Spark JavaScript SDK:官方的Javascript SDK。
- spark-ii:用来与Spark设备交互的IO库。
- Sparky:一个很easy的 Node.js 库。
- Cylon.js module:支持Spark OS的Cylon模块。
Tessel
Tessel 是一款与 Arduino 和 Spark Core 很相似的板子,可是 Tessel能够直接执行Javascript代码,差点儿专门为Javascript开发者设计。它全然兼容基于 Node.js 的各种 package包,能够很好的利用现有的许多资源。
Javascript交互能力
- Official Tessel docs :官方文档,许多的样例。
- Cylon.js module:支持Tessel的Cylon模块。
Espruino
Espruino是一个微处理器的JavaScript解释器,号称是全球第一款面向刚開始学习的人或专家级玩家的Javascript单片机,能够实时的执行你的Javascript。
Javascript交互能力
- Official Espruino docs :官方文档。
- node-espruino :一个第三方的Node库,借助于它能够通过Node.js与Espruino进行交互。
Intel Galileo
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
今年的Google I/O大会上最有趣的话题就是:Google Cardboard。一款虚拟现实的纸盒,它的外形虽不起眼,但在全然组装完毕后,Cardboard能够利用用户的智能手机和内置的一副镜片,为用户提供虚拟现实体验。官方的文章主要在讲述怎样进行原生的Andriod开发,可是通过Javascript也能够在Chrome进行虚拟现实的体验。
JavaScript交互能力
- Cardboard Chrome Experiments :包括了大量的演示程序,以及代码演示样例。
Myo Armband
炫酷手势臂环 Myo Armband 同意用户戴在胳膊前臂上,能够通过动作命令来控制电脑,通过对动作和脑电活动的检測,Myo Armband能够识别出用户的手势活动。
JavaScript交互能力
- MyoJS:一个非官方的Myo Armband Javascript 框架。
Nest
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开发者还有许多能够做的事情,那么就先从你的设备開始吧!