在谈论 物联网 时,我们指的是一组连接在一起并可以交换信息的智能对象。例如,通过这种方式可以创建一组传感器,我们可以通过智能手机使用它们。在这个世界上, Arduino 扮演着重要的角色,因为它是一个低成本的系统,可以在多种情况下使用,并且可以连接到互联网。
在上一篇文章中,我们讨论了一个使用 Arduino 和 Android 来控制远程 LED 的 简单项目。这篇文章展示了一种不同的方法, Android 智能手机 不直接连接到 Arduino 及其传感器,而是使用一个组件来分离 Android 客户端和信息源 (Arduino)。
物联网架构
最近我看到一篇 解释物联网架构的有趣文章 。该架构非常复杂且用途广泛,我想仅使用一些组件来简化它。
此图显示了简化的架构:
我没有将 Android 智能手机直接连接到 Arduino ,而是使用了一个名为 ESB(企业服务总线) 的组件。在这种情况下,我更喜欢 WSO2 ESB ,因为它是一个完全开源的项目,并且非常适合 IoT 生态系统。此外,WSO2 还提出了参考架构。
为什么我们应该在物联网中使用 ESB
首先,如果您不了解 ESB 功能,我建议您看一下 这里 。我们应该使用企业服务总线有几个原因:
- 我们可以连接到多个 Arduino 板,我们希望有一个入口点可以将请求路由到正确的板。
- 我们可能需要将一些数据从 Arduino 数据转换为其他格式,以便我们可以连接智能手机以外的其他设备
- 我们想实现一些身份验证逻辑,以便只有经过身份验证的客户端才能访问数据
- 我们想在将数据从 Arduino 发送回客户端之前实现一些业务逻辑
- 我们不想直接在互联网上公开 Arduino 开发板
使用 ESB ,我们可以将一些逻辑从 Arduino 板转移到 ESB ,只将“电子”任务留给 Arduino。例如,我们可以使用 Arduino 来监控室内温度,但我们不想添加身份验证逻辑或其他一些控件。
项目:带有 ESB 的 Android 和 Arduino
作为测试项目,我们想使用连接到 Arduino 的传感器监测室内温度。在第一个示例中, Android 智能手机连接到 ESB 并请求当前温度 。一般的物联网上下文如下所示:
在图中,在 ESB 内部实现了一个 自定义代理 。代理是位于 ESB 内部并处理来自外部资源的传入请求的组件。
使用代理,可以转换传入的请求,将其发送到目的地,然后读取响应并将其转换回来。
在我们的例子中,创建请求的源是将请求发送到代理 (ESB) 的 Android 智能手机 ,目标是 Arduino 板。
在下一篇文章中,我们将开始分析如何创建所有组件以及如何让它们说话。
到目前为止,如果你想设置 WSO2 ESB,你可以到 这里 安装应用程序。