超越Web,Javascript在物联网的应用

简介: 引子 Patrick Catanzariti 是一名Web开发工程师,最近他在 sitepoint 发表了《JavaScript Beyond the Web in 2014》,介绍了JavaScript在物联网中的应用,非常有意思。

引子

Patrick Catanzariti 是一名Web开发工程师,最近他在 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

image

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

image

Leap Motion 是一个非常好玩的小装置,可以通过手势来控制设备以及应用程序。它可以感知双手在空气中的自然移动,精确跟踪手和手指的运动。以及手指的动作。

在V2版本他们提高了手指追踪的稳定性,现在甚至可以单独追踪手指上的每一个手骨。另外V2版本还提供了另外一个激动人心的特性:虚拟现实,把你的双手带进虚拟的3D世界。更多参见:Leap Motion + 虚拟现实
Leap Motion为Javascript开发人员提供了一个Javascript SDK,并且提供了详尽的文档以及大量的例子,更多参见Leap Motion JavaScript framework

Pebble Watch

image

我个人是一个非常狂热的Pebble watch爱好者,在Apple Watch和Google Wear出现之前,Prebble watch就是一款真正的智能手表,易于使用,但是有着难以置信的功能,同时支持iOS和Android平台。采用了E-Paper显示屏,即便在阳光直射下也容易读取,耗电量也很低,每周需要冲一次。

JavaScript交互能力

PebbleKit JavaScript framework :这个框架允许开发人员从云上获取数据,获取设备的物理位置信息等等,为Pebble Watch来构建用户体验非常好的应用程序。手表端的App开发需要一些C代码,但是无需太多的C代码程序编写经验,你可以从官方的例子出发,通过Javascript来构建功能非常强大的手表应用。下面的几篇文章介绍了如何通过Javascript来编写Pebble Watch应用:

Oculus Rift

image

虚拟现实头盔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

image

Cylon.js 是一个 JavaScript 框架,用来进行机器人以及物联网开发。Cylon.js 使得开发人员可以使用同样的API来操纵不同的设备,这些设备的名单正在逐渐扩大,包括Leap Motion,Pebble手表,Arduinos和Raspberry Pis等等。

Arduino YUN

image

Arduino YUN 是Arduino发布的最新新列的无线产品,合并了 Arduino 架构和 Linux 系统,Arduino 希望借此产品整合 Linux 强大的功能和 Arduino 的易用性。

Javascript交互能力

Spark OS

image

Spark OS 是一个基于云的,物联网操作系统。该团队还拥有Spark Core,Spark Core 是一款完全兼容 Arduino的WiFi开发板,可以让工程师开发出任意与网络连接的硬件设备。通过Spark OS云服务可以给Spark Core设备发送指令。

Javascript交互能力

Tessel

image

Tessel 是一款与 Arduino 和 Spark Core 很类似的板子,但是 Tessel可以直接运行Javascript代码,几乎专门为Javascript开发人员设计。它完全兼容基于 Node.js 的各种 package包,可以很好的利用现有的很多资源。

Javascript交互能力

  • Official Tessel docs :官方文档,非常多的例子。
  • Cylon.js module:支持Tessel的Cylon模块。

Espruino

image

Espruino是一个微处理器的JavaScript解释器,号称是全球第一款面向初学者或专家级玩家的Javascript单片机,可以实时的执行你的Javascript。

Javascript交互能力

  • Official Espruino docs :官方文档。
  • node-espruino :一个第三方的Node库,借助于它可以通过Node.js与Espruino进行交互。

Intel Galileo

image

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

image

今年的Google I/O大会上最有趣的话题就是:Google Cardboard。一款虚拟现实的纸盒,它的外形虽不起眼,但在完全组装完成后,Cardboard可以利用用户的智能手机和内置的一副镜片,为用户提供虚拟现实体验。官方的文章主要在讲述如何进行原生的Andriod开发,但是通过Javascript也可以在Chrome进行虚拟现实的体验。

JavaScript交互能力

Myo Armband

image

炫酷手势臂环 Myo Armband 允许用户戴在胳膊前臂上,可以通过动作命令来控制电脑,通过对动作和脑电活动的检测,Myo Armband可以识别出用户的手势活动。

JavaScript交互能力
  • MyoJS:一个非官方的Myo Armband Javascript 框架。

Nest

image

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开发人员还有很多可以做的事情,那么就先从你的设备开始吧!

 

相关阅读:

开放才能进步!Angular和Wijmo一起走过的日子

Angular vs React 最全面深入对比

Wijmo已率先支持Angular4 & TypeScript 2.2

 

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
5天前
|
设计模式 安全 网络安全
安全风险在WEB应用中的排名变化
【7月更文挑战第16天】本文介绍OWASP的安全风险评估,一个国际非营利组织,专注于提升Web应用安全。其Top 10项目列出最严重的安全风险,如Broken Access Control(现最严重风险),加密故障,注射漏洞,不安全设计,配置错误等。2021版新增了不安全设计、软件完整性故障和服务器端请求伪造等类别。安全问题排名考虑了发生率,以反映攻击者只需一个实例即可造成损害的风险。**
29 2
安全风险在WEB应用中的排名变化
|
6天前
|
数据库 开发者 Python
实战指南:用Python协程与异步函数优化高性能Web应用
【7月更文挑战第15天】Python的协程与异步函数优化Web性能,通过非阻塞I/O提升并发处理能力。使用aiohttp库构建异步服务器,示例代码展示如何处理GET请求。异步处理减少资源消耗,提高响应速度和吞吐量,适用于高并发场景。掌握这项技术对提升Web应用性能至关重要。
29 10
|
4天前
|
JavaScript 前端开发 网络协议
从理论到实践:全面剖析Python Web应用中的WebSocket实时通信机制
【7月更文挑战第17天】WebSocket在实时Web应用中扮演重要角色,提供全双工通信,减少延迟。本文详述了Python中使用`websockets`库创建服务器的步骤,展示了一个简单的echo服务器示例,监听8765端口,接收并回显客户端消息。客户端通过JavaScript与服务器交互,实现双向通信。了解WebSocket的握手、传输和关闭阶段,有助于开发者有效利用WebSocket提升应用性能。随着实时需求增长,掌握WebSocket技术至关重要。
17 6
|
2天前
|
存储 数据库 开发者
Flask中的蓝图与插件应用:构建模块化Web应用的利器
【7月更文挑战第19天】Flask蓝图和插件是构建模块化、可扩展和可维护Web应用的强大工具。蓝图允许你将应用分割成多个独立的部分,提高了代码的组织性和可重用性;而插件则为Flask应用提供了丰富的功能和社区支持,简化了开发过程。通过合理地使用蓝图和插件,你可以更加高效地开发出高质量的Web应用。
|
2天前
|
前端开发 数据库 开发者
构建可维护的Web应用:Python模板引擎与ORM的协同工作
【7月更文挑战第19天】在Web开发中,可维护性至关重要。Python搭配Flask或Django框架,利用模板引擎(如Jinja2)和ORM(如SQLAlchemy或Django ORM)增强开发效率和代码质量。模板引擎桥接前后端,ORM简化数据库操作,两者协同提升可读性和可测试性。例如,Flask用Jinja2渲染动态HTML,Django通过ORM处理数据库模型。这种分离关注点的方法降低了耦合,增强了应用的可维护性。
10 1
|
5天前
|
前端开发 JavaScript UED
Python Web应用中的WebSocket实战:前后端分离时代的实时数据交换
【7月更文挑战第16天】在前后端分离的Web开发中,WebSocket解决了实时数据交换的问题。使用Python的Flask和Flask-SocketIO库,后端创建WebSocket服务,监听并广播消息。前端HTML通过JavaScript连接到服务器,发送并显示接收到的消息。WebSocket适用于实时通知、在线游戏等场景,提升应用的实时性和用户体验。通过实战案例,展示了如何实现这一功能。
|
5天前
|
物联网 区块链 vr&ar
新技术浪潮下的未来图景:区块链、物联网与虚拟现实的融合与应用
随着科技的飞速进步,新兴技术如区块链、物联网和虚拟现实正在逐步改变我们的生活和工作方式。本文将深入探讨这三种技术的发展趋势和应用场景,以及它们如何相互融合,共同构建一个更加智能、高效和沉浸式的未来世界。
7 1
|
5天前
|
JavaScript 前端开发 UED
WebSocket在Python Web开发中的革新应用:解锁实时通信的新可能
【7月更文挑战第16天】WebSocket是实现Web实时通信的协议,与HTTP不同,它提供持久双向连接,允许服务器主动推送数据。Python有多种库如websockets和Flask-SocketIO支持WebSocket开发。使用Flask-SocketIO的简单示例包括定义路由、监听消息事件,并在HTML中用JavaScript建立连接。WebSocket提高了实时性、减少了服务器压力,广泛应用于聊天、游戏等场景。
12 1
|
2天前
|
中间件 API 开发者
深入理解Python Web框架:中间件的工作原理与应用策略
【7月更文挑战第19天】Python Web中间件摘要:**中间件是扩展框架功能的关键组件,它拦截并处理请求与响应。在Flask中,通过`before_request`和`after_request`装饰器模拟中间件行为;Django则有官方中间件系统,需实现如`process_request`和`process_response`等方法。中间件用于日志、验证等场景,但应考虑性能、执行顺序、错误处理和代码可维护性。
7 0
|
5天前
|
安全 物联网 区块链
未来触手可及:探索区块链、物联网与虚拟现实的融合趋势与实践应用
随着科技的飞速发展,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正逐渐渗透至社会的各个领域。本文旨在探讨这些技术的发展趋势及其在现实世界中的应用场景。我们将通过实际案例分析,揭示这些技术如何相互促进,共同推动社会进步,并讨论它们面临的挑战与机遇。
11 0

热门文章

最新文章

相关产品

  • 物联网平台