Arduino、安卓、ESB

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 63w+ 字,讲解图 2808+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2200+ 小伙伴加入学习 ,欢迎点击围观

在谈论 物联网 时,我们指的是一组连接在一起并可以交换信息的智能对象。例如,通过这种方式可以创建一组传感器,我们可以通过智能手机使用它们。在这个世界上, 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,你可以到 这里 安装应用程序。

相关文章