JavaScript在90年代DHTML网站中的作用已远远超出其作用。 它正迅速成为物联网(IoT)通用语言的主要竞争者。 尽管现在说JavaScript是否能真正获得冠军还为时过早,但我相信JavaScript在这个不断扩展的物联网领域确实可以发挥作用。
去年,我写了关于JavaScript开发人员可以使用的技术的概述– JavaScript Beyond the Web 。 从那时起,出现了许多新设备和可能性,所以我想写一篇跟进内容,涵盖2014年JavaScript和互连设备领域的变化。
可以通过JavaScript进行通信的设备列表会逐月增加。 我们既有设备制造商发布的官方JavaScript API,也有社区推动将JavaScript功能带给他人的努力。
忍者领域
照片来源:Ninja Blocks Inc
Ninja Sphere是带来世界忍者块的团队的下一代家庭自动化。 Ninja Sphere取代了原来的Ninja Blocks套件,并具有一系列新功能,现在支持Bluetooth Smart设备和ZigBee框架 。 它基本上与大量新设备兼容,看起来像是科幻电影中光滑的发光科技球,甚至还具有手势控制功能。
通过JavaScript参与
- Ninja Sphere Node.js库 – Ninja Sphere的应用程序均使用其官方Node.js库进行编程。 甚至Sphere的驱动程序和设备定义都在JavaScript文件中。 这是JavaScript和IoT爱好者的梦想。
跳跃运动
图片来源:Leap Motion Inc
Leap Motion是一项很棒的技术,可让您使用手势控制应用程序和设备。 它可以跟踪双手和所有十个手指,从而为开发人员提供了一种替代典型键盘和鼠标的未来派选择。
从去年开始,Leap Motion的世界中出现了一些激动人心的新可能性。 他们已经在Beta版中进行了V2的手部跟踪,它可以对跟踪进行微调,从而使其更加可靠。 现在,他们可以跟踪每个手指中的各个骨骼!
V2还为Leap Motion(虚拟现实)提供了令人兴奋的新用途。 尽管虚拟现实令人兴奋,但您看不到自己的双手有点令人讨厌。 引入Leap Motion的新Oculus支架后 ,您就可以将Leap Motion连接到Oculus VR头戴式耳机,从而可以用手与虚拟世界进行交互。
从JavaScript的角度来看,Leap Motion团队提供了一个相当高标准的JavaScript SDK,其中包含出色的文档和示例-已使用许多V2功能进行了更新。
通过JavaScript参与
- Leap Motion JavaScript框架 –这将Leap Motion的几乎所有功能带到了Web应用程序和Node。 您已经可以使用JavaScript开发大量的V2 Beta,我们正等待VR的头戴式跟踪功能,希望不久后就会出现。
卵石手表
照片来源:Pebble
哦, Pebble手表 ……不要让我开始了解这款设备的出色之处。 我是一位直言不讳的Pebble爱好者,并且就人们为什么要获得一个人进行了完整的演讲! 在Apple Watch和Android Wear出现之前的那个时代,Pebble团队率先开发了功能强大,易于使用的智能手表,该手表通过蓝牙与iPhone和Android设备配对。 它使用电子纸显示屏,可以很容易地在直射的阳光下阅读,并且两次充电之间的电池寿命大约持续一周。
今年是Pebble SDK 2.0版的发布,其中包括Pebble Appstore,一系列新功能以及最令人兴奋的PebbleKit JavaScript框架。
通过JavaScript参与
- PebbleKit JavaScript框架 –该框架允许您在电话上运行JavaScript,以从网络中提取数据,从而在表盘和应用程序上构建丰富的Web增强体验。 它还可以从您的手机访问位置数据,因此可以创建基于位置的Web API应用程序。 应用开发仍然需要对手表应用本身进行一些C编码,但是对于那些没有太多C经验的人,您可以作为样例,进行不需要太多C知识的微小更改,然后使用JavaScript构建大多数令人兴奋的功能! 如果您热衷于进行Pebble开发,我将在下面的两个SitePoint文章中从JavaScript的角度介绍如何开始Pebble应用程序开发。
- 用JavaScript进行Pebble Watch开发 –我的第一篇文章涵盖了所有基础知识。
- 高级Pebble Watch配置 –如何使用JavaScript框架向Pebble应用添加配置选项。
- Pebble.js –虽然仍处于测试阶段,但这是一个完全用JavaScript构建Pebble应用程序的正式框架! 在接下来的几个月中,请留意这一点。
Oculus裂谷
图片来源:Oculus VR,LLC
Oculus Rift耳机使我们比以往任何时候都更容易获得易于访问的虚拟现实。 开发人员工具包2最近在今年发货,即将面世的新耳机包括“ Crescent Bay”原型和使用Samsung Galaxy Note 4的Samsung Gear VR耳机 。
虽然目前还没有用于Oculus Rift的官方JavaScript API,但是有一些选项可用于创建JavaScript驱动的Oculus体验。
通过JavaScript参与
- OculusBridge –一个桌面应用程序和JavaScript库,允许基于Three.js的Oculus Rift Web体验。 它同时安装了Windows和Mac OSX,并且可以在Chrome 28,Safari 6和Firefox 22上运行。它没有提到IE,因此不确定是否支持IE。 这是我可以在Macbook上相对轻松地工作的JS库。
- vr.js –适用于Chrome和Firefox的插件,可访问Oculus Rift头戴设备,但是它使用NPAPI( Chrome浏览器正在贬值)运行 ,因此它可能不是一个好的长期解决方案。 我一直在尝试使用OculusBridge。
- Babylon.js和IE11 –如果您有一台装有IE11的PC,则可以使用Babylon.js创建3D环境,然后使用一行代码和一个驱动程序来选择设备方向。 由此,您将获得Oculus Rift VR体验! 显然,它目前尚不适用于Chrome,但很快就会实现。
赛昂
图片来源:Hybrid Group
Cylon.js是一个非常有用的JavaScript API,它今年已大步发展 ,它是用于机器人技术和物联网的JavaScript框架。 通过允许您使用相同的API结构对一系列设备进行编程,它在使JavaScript弥合设备之间的差距方面取得了巨大的进步。 它以易于理解的方式完成所有这些工作,从而使设备编程变得非常简单。 Cylon.js通过提供多个可用模块来支持不断扩大的设备列表,包括Leap Motion,Pebble手表,Arduino,Raspberry Pis等。
Arduino云
照片来源:Arduino
一段时间以来,我们已经能够通过Node通过多种方式从远程Node服务器向Arduino发布命令。 他们一直依赖Arduino运行自己的C代码,该C代码了解如何与Node服务器通信。 今年,引入了新的Arduino – Arduino YUN 。 该Arduino是第一个在板上运行Linux的安装程序,因此您可以在Arduino上设置并运行与Arduino本身通信的Web服务器,从而无需在其他地方发布主服务器。
通过JavaScript参与
- 在Arduino YUN上安装Node.js –对于JS开发人员,此Linux安装意味着您可以在Arduino本身上安装Node.js,并在板上保留大量正在运行的代码。 基本上,您的Arduino可以运行JavaScript!
- Cylon.js模块 –它还具有自己的Cylon.js模块,可以将其安装在YUN上。
Spark操作系统
照片来源:Spark
Spark OS是云中的操作系统,允许启用Internet的设备进行通信。 它们具有Spark Core,它们是具有Wi-Fi功能的微控制器板,类似于Arduino(但比Arduino Uno小得多)。 您将它们连接到WiFi网络,并可以通过其云平台将命令发送到Spark Core板。 这是我为IoT设备经历的最简单的设置过程,并且是每次连接和使用时最可靠的过程。
通过JavaScript参与
- 官方的Spark JavaScript SDK – Spark拥有自己的JavaScript SDK,该SDK非常简单,下面还有各种第三方库。
- spark-io –由voodootikigod开发的模块,他也做了Johnny-Five Arduino Node模块。
- Sparky –一个非常简单的Node.js库。
- Cylon.js模块
特塞尔
照片来源:Tessel
今年也是Tessel销往世界的一年。 Tessel是像Arduino和Spark Core这样的微控制器,但由于开发板本身运行JavaScript,因此专门为JavaScript开发人员构建。 它与成千上万个Node.js包兼容(但不运行Node本身),其最终目的是利用JavaScript生态系统和JavaScript开发人员中的所有现有潜力。
通过JavaScript参与
- Tessel官方文档 – 文档的模块部分中包含大量示例,以展示如何通过JavaScript与每种类型的模块进行通信。
- Cylon.js模块
Espruino
照片来源:Pur3 Ltd
今年早些时候,另一款同时运行JavaScript的微控制器被交付使用-Espruino 。 该电路板很小,可以在单个芯片上运行,并且具有很高的能源效率,因此可以依靠电池供电多年。 它实际上并没有运行Node模块等,而是通过基于事件的系统运行,在该系统中,设备可以实时运行JavaScript命令。 您可以从计算机上的设备上运行代码,然后对它满意时在Espruino上运行一个命令,以保存当前的功能和配置。 与在Arduino和Tessel上进行每次更改的代码上传相比,这是一个完全不同的模型。
通过JavaScript参与
- Espruino官方文档 –快速入门指南,然后再进行更深入的介绍。
- node-espruino –第三方Node库,用于通过Node.js与Espruino接口。
英特尔伽利略
图片来源:英特尔公司
英特尔Galileo板是使用英特尔自有组件但遵循Arduino Uno引脚结构的微控制器板,因此可以使用现有的Arduino屏蔽板。 就像Arduino YUN一样,Galileo在板载Linux上运行。 但是,使用的Linux映像显然非常有限,因此可以通过插入SD卡来安装更大的Linux映像。 这个成熟的Linux包含Node.js及其所有JavaScript功能(以及许多其他非JS功能)。
通过JavaScript参与
- Node.js上的“更大” Linux映像 – SparkFun的SD卡Linux选件入门指南。 绝对是最具潜力的最强大的选择。 它不涉及如何使用Node.js服务器,因为它具有Python焦点,但这是起点。
- 使用JavaScript和Node.js的英特尔Galileo编程 –本文更详细地介绍了如何参与板上的Node,展示了如何将Johnny-Five模块安装到板上。
- Cylon –如果您安装了具有完整功能的Linux的SD卡,则Cylon的模块可以工作。
- 用于Johnny-Five的Galileo-IO模块 –就像使用Johnny-Five模块来控制Arduino一样,JavaScript控制是通过Galileo板外部的Node服务器进行的,而不是安装在板上。
Google Cardboard
图片来源:Google Inc
在今年的Google I / O中,引入了一个非常奇怪但功能强大的概念-Google Cardboard 。 它们是一副用纸板制成的DIY虚拟现实眼镜,您将它们连接到Android设备即可获得相当便宜的VR体验。 他们的文档着重于本机Android开发,但是也有Chrome实验证明了基于JavaScript的基于Web的虚拟现实的潜力。
通过JavaScript参与
- 硬纸板Chrome实验 -包含大量演示和代码示例。 在演示中查看源代码以查看其工作原理。
Myo臂章
图片来源:Thalmic Labs Inc
Myo Armband可以利用肌肉中的电活动完全无线地通过手势控制应用程序。 它是一个相对较新的产品,仅在当前才发货。 我们将有很多新开发人员在一年中全力以赴,并会看到这种新设备的运行情况。 我热切地等待着我。 这项技术绝对具有巨大的潜力。
通过JavaScript参与
- MyoJS – Myo的非官方JavaScript框架。 可悲的是,目前尚无官方支持。
巢
图片来源:Nest Labs
Nest团队目前拥有两种智能设备,Nest恒温器和Nest Protect(烟雾和一氧化碳警报器)。 今年,他们向公众开放了Nest Developer计划和Nest API。 尽管他们没有特定的JavaScript API,但在两个示例中提供了有关如何通过JavaScript访问Nest API的示例。
通过JavaScript参与
- Nest Thermostat的官方JS样本
- Nest Protect的官方样本JS
- Cylon.js模块 –到目前为止似乎似乎专注于恒温器功能。
结论
如您所见,以某种方式支持JavaScript的设备数量正在增加。 在合理大小的文章中,我无法列出更多的东西! 尚未尝试使用IoT设备的世界JavaScript开发人员,您的技能范围中有许多尚未开发的潜力–为您自己准备一个设备并开始实验!