Patrick Catanzariti 是一名Web开发工程师,最近他在 sitepoint 发表了《JavaScript Beyond the Web in 2014》,介绍了JavaScript在物联网中的应用,很是有意思。作为JavaScript的爱好者和从业者,我在这里把它翻译了,以飨读者。 顺便说一下,就在上周,咱们团队的最新力做“真正的JavaScript控件集”----《新一代JavaScript控件Wijmo 5正式发布》啦。 javascript
近十年来Javascript的发展速度很是快,伴随着Ajax,Node.js等技术的出现,Javascript已经成为编程语言中的一等公民,在Web应用、移动应用以及Web Server端,均可以看见Javascript。在另一个领域:物联网(Internet of Things)、智能家居领域,Javascript也有很普遍的应用。最激动人心的是经过Javascript你能够用来控制移动电话、开关灯具、机器人等等。 html
去年我写了一篇文章《JavaScript Beyond the Web》介绍了Javascript在物联网内的应用。一年过去了,不少新的技术以及智能设备涌现,接下来咱们会回顾一下Javascript在这些智能设备上的应用,透过这些这能设备,也许你会有更多的发现。 java
过去的几个月内,具备Javascript交互能力的智能设备在逐渐增多。经过智能设备厂商公布的Javascript API文档,以及社区技术的推动力量,咱们确实能够发现愈来愈多的设备正在具备Javascript交互能力。 node
Ninja Sphere 是由来自澳大利亚的Ninja Blocks团队推出的下一代的智能家居控制器,这个智能设备能够把各类各样的电子设备加入物联网,而且经过它能够一一控制这些设备。Ninja Sphere可以远程操控已链接的设备,能够经过手势控制以及查看设备所在位置等等。目前Ninja Sphere能够支持包括具备Bluetooth,BLE,Wi-Fi,Zigbee链接的设备。 web
Javascript开发人员能够经过 Ninja Sphere Node.js library 来进行Ninja Sphere应用程序的开发,甚至经过Javascript能够在Ninja Sphere中编写设备驱动以及设备定义,这无疑是Javascript开发人员的梦想。 chrome
Leap Motion 是一个很是好玩的小装置,能够经过手势来控制设备以及应用程序。它能够感知双手在空气中的天然移动,精确跟踪手和手指的运动。以及手指的动做。 编程
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让咱们比以往任什么时候候都更加接近虚拟现实,今年他们发布新版机器:“Crescent Bay”,以及最新的开发工具包:The Developer Kit 2。与此同时Oculus 与三星联合发布了移动式虚拟现实头戴设备Gear VR,该设备可与三星手机配套使用,实现虚拟现实互动效果。
Cylon.js 是一个 JavaScript 框架,用来进行机器人以及物联网开发。Cylon.js 使得开发人员可使用一样的API来操纵不一样的设备,这些设备的名单正在逐渐扩大,包括Leap Motion,Pebble手表,Arduinos和Raspberry Pis等等。
Javascript交互能力
Installing Node.js on the Arduino YUN : 对于Javascript开发人员来说,Linux意味着能够安装 Node.js 到Arduino上,而后执行Javascript代码。
Cylon.js module:支持Arduino YUN的Cylon模块。
Spark OS 是一个基于云的,物联网操做系统。该团队还拥有Spark Core,Spark Core 是一款彻底兼容 Arduino的WiFi开发板,可让工程师开发出任意与网络链接的硬件设备。经过Spark OS云服务能够给Spark Core设备发送指令。
Javascript交互能力
Official Spark JavaScript SDK:官方的Javascript SDK。
spark-ii:用来与Spark设备交互的IO库。
Sparky:一个很是简单的 Node.js 库。
Cylon.js module:支持Spark OS的Cylon模块。
Tessel 是一款与 Arduino 和 Spark Core 很相似的板子,可是 Tessel能够直接运行Javascript代码,几乎专门为Javascript开发人员设计。它彻底兼容基于 Node.js 的各类 package包,能够很好的利用现有的不少资源。
Javascript交互能力
Official Tessel docs :官方文档,很是多的例子。
Cylon.js module:支持Tessel的Cylon模块。
Espruino是一个微处理器的JavaScript解释器,号称是全球第一款面向初学者或专家级玩家的Javascript单片机,能够实时的执行你的Javascript。
Javascript交互能力
Official Espruino docs :官方文档。
node-espruino :一个第三方的Node库,借助于它能够经过Node.js与Espruino进行交互。
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 I/O大会上最有趣的话题就是:Google Cardboard。一款虚拟现实的纸盒,它的外形虽不起眼,但在彻底组装完成后,Cardboard能够利用用户的智能手机和内置的一副镜片,为用户提供虚拟现实体验。官方的文章主要在讲述如何进行原生的Andriod开发,可是经过Javascript也能够在Chrome进行虚拟现实的体验。
Cardboard Chrome Experiments :包含了大量的演示程序,以及代码示例。
炫酷手势臂环 Myo Armband 容许用户戴在胳膊前臂上,能够经过动做命令来控制电脑,经过对动做和脑电活动的检测,Myo Armband能够识别出用户的手势活动。
MyoJS:一个非官方的Myo Armband Javascript 框架。
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开发人员还有不少能够作的事情,那么就先从你的设备开始吧!