树莓派和Mozilla的组合:新物联网电路设计方案

2019年07月18日 作者:Teardown

网关设备使得云服务与物联网 (IoT) 终端设备的关系变得更加紧密,加快了处理速度、减少了延时并能保持高利用率。但是,在设计网关时,开发人员很快就发现,他们需要厘清一系列容易混淆的硬件和软件选项,才能将各种物联网外设连接到云。

现在,使用来自 Mozilla 的 Raspberry Pi 和开源软件,开发人员可以快速、高效地实现基于新兴物联网标准的网关。

为指导设计人员了解整个过程,本文首先简要回顾网关在物联网网络中的作用、关键要求及相关实现挑战,然后介绍标准的作用,重点说明万维网联盟 (World Wide Web Consortium) 描述物联网中实体的方法。

最后重点向开发人员介绍如何使用 Mozilla 的 Raspberry Pi 3、无线插件和开源软件快速部署网关。同时本文将特别介绍开发人员如何使用 Mozilla 软件框架轻松扩展其网关,以支持任意数量的外设插件,从而满足特定连接要求。

对网关的需求日益增长

在 Web 上,尽管浏览器平台与服务器平台的底层硬件和软件存在很大差异,但通过使用标准协议,用户能够利用多种浏览器来联系多种多样的服务器。物联网虽然是基于上述许多相同的标准协议而建立,但在实现可持续驱动 Web 的互操作性方面,面临的挑战要大得多。正如 Web 浏览器在请求标头中标识自身身份及其功能一样,物联网设备也需要标准方法来标识其功能及其所提供数据的性质。

然而,在典型的多层物联网架构中,实体的数量和类型可能非常复杂,特别是在包含传感器和致动器的最低层。为了满足这些设备的不同连接需求,网关设备已成为首选解决方案。凭借其支持多种有线和无线连接选项的能力,网关为复杂的物联网系统提供关键服务。物联网开发人员不仅利用网关多种多样的连接能力,而且还通过网关在复杂的物联网中提供更多实质性的服务,因此网关的作用得以显著扩展。

网关的角色

网关设备最简单的作用是缓冲高吞吐量云连接与成百上千的物联网外围设备之间的通信,这些外围设备产生的数据流速率彼此各不相同,甚至相差多个数量级。如果无法连接到云,网关就可以向物联网设备提供本地版本的云服务。相反,如果物联网设备出于任何原因离线,网关可以向云提供虚拟物联网设备,以模拟相应实体物联网设备的基本功能和已知最新状态。在任何一种情况下,即使连接中断,较高级别的物联网应用也能够继续正常运行。

物联网边缘设备通常不受物联网外围设备的实时和功率限制,因此可以利用高性能处理器架构,提供接近物联网数据源的强大处理能力。物联网专家通过将更加先进的云服务甚至是高级机器学习算法迁移到这些设备上,进一步利用这种本地处理能力,为本地进程提供更快的响应循环,或者减少上游流向云应用的数据流的大小。

Amazon Web Services IoT、IBM Watson IoT 和 Microsoft Azure IoT 等商用物联网平台在其端到端服务产品中都提供自己的专有接口和协议(图 1)。然而,由于诸多原因,包括担心被套牢或基于更广泛的需求,物联网应用开发人员继续寻找能够简化更多不同物联网设备和服务之应用的解决方案。

尽管其他机构也在定义标准物联网架构的元素,但万维网联盟 (W3C) 是定义物联网标准的领导者。在其不断演进的规范中,W3C 万维物联网 (WoT) 确立了一些关键接口,允许单个设备与网关、云服务器、Web 客户端甚至另一个物联网设备进行通信(图 2)。

虽然 W3C 架构的细节超出本文范畴,但有几个关键定义值得一提。最重要的其中一项是事物,它同时包含了一个物理设备及其元数据(或事物描述),在图 2 中用小三角形表示。

事物描述不仅列出名称和人类可读描述等基本元数据,还可以凭借各种功能直接支持应用,包括数据分类、验证以及其他实体可以调用的特定端点以执行该特定事物的独特功能。

使用标准通信方法(图 2 中的“WoT 绑定模板 (WoT Binding Templates)”),同一物联网应用中的不同参与者只需要使用新设备或网关的事物描述,即可了解其使用方法及数据功能。借助其数据模型和应用编程接口 (API) 定义,Mozilla 为开发人员提供了用于构建此类互操作网关的首批可用框架之一。

Mozilla 网关

作为其 W3C WoT 工作的一部分,Mozilla 的事物网关规范包括针对事物描述的数据模型、相关事物类型,以及使用 WebSockets 或基本 REST 机制的简单 API。Mozilla 的事物描述指定了基本元数据,包括名称、类型、描述以及各种属性,例如连网 LED 灯的“开”和“亮度”。

事物描述中的其他条目包含用于封装不同操作(例如让灯变暗)的更复杂对象。通过访问事物描述中的“渐淡”操作,网关或其他实体就可以找到函数的入口点,以根据指定属性(例如渐淡级别和持续时间)执行“渐淡”操作。因此,事物描述为识别物联网设备和执行其设计的各种操作提供了一种标准方法。

为了与事物进行交互,开发人员可以使用熟悉的 REST Web 协议来读取 (GET) 或写入(PUT 或 POST)事物描述中定义的事物属性。正常的 REST 响应进而将为请求的数据提供读取或写入操作的状态。

例如,要在两秒钟的过渡时间内使 LED 亮度变淡至 50%,开发人员会将相应的 JSON 主体 POST 到关联的渐淡端点,进而接收 201 响应和 JSON 主体,确认设备排队的请求操作的属性和状态。

尽管 Mozilla 说明文档提供了其数据模型和 API 的详细描述,但要将此理论转化为实际运作的网关,开发人员仍要编写大量软件包。幸运的是,Mozilla 通过提供设计用于 Raspberry Pi 系列的完整实现方案,解决了其规范在理论方面的问题。

1 2

相关文章

tracer