物联网(IoT)是最新兴的话题之一,也是最近讨论最多的话题之一。 当谈到物联网时 ,我们指的是一组连接在一起并可以交换信息的智能对象。 这样,例如,可以创建一组传感器,然后我们可以通过智能手机使用它。 在这个世界上, Arduino扮演着重要的角色,因为它是一种低成本的系统,可以在多种环境中使用并且可以连接到互联网。
在上一篇文章中,我们讨论了一个使用Arduino和Android控制远程led的简单项目。 这篇文章展示了一种不同的方法, Android智能手机没有直接连接到Arduino及其传感器,而是使用了将Android客户端与信息源(Arduino)分离的组件。
物联网架构
最近,我碰到一篇有趣的文章,解释了IoT架构 。 这种架构非常复杂且通用,我想仅使用某些组件来简化它。
下图显示了简化的体系结构:
我没有直接将Android智能手机连接到Arduino ,而是使用了一个名为ESB(企业服务总线)的组件。 在这种情况下,我更喜欢WSO2 ESB,因为它是一个完整的开源项目,并且非常适合IoT生态系统。 此外,WSO2提出了参考架构。
为什么我们应该在物联网中使用ESB
首先,如果您不了解ESB功能,建议您在这里看看。 我们应该使用企业服务总线的原因有几个:
- 我们可以连接到多个Arduino开发板,我们希望有一个入口点可以将请求路由到正确的开发板上。
- 我们可能需要将数据从Arduino数据转换为其他格式,以便我们可以连接智能手机以外的其他设备
- 我们要实现一些身份验证逻辑,以便只有经过身份验证的客户端才能访问数据
- 我们想要在将数据从Arduino发送回客户端之前实现一些业务逻辑
- 我们不想直接在互联网上公开Arduino开发板
ESB ,我们可以将一些逻辑从Arduino板转移到ESB
项目:具有ESB的Android和Arduino
Android智能手机连接到ESB并请求当前温度
在图中,在ESB内部实现了一个自定义代理 。 代理是驻留在ESB内部并处理来自外部资源的传入请求的组件。
使用代理,可以转换传入的请求,将其发送到目的地,然后读取响应并将其转换回。
Android智能手机
在下一篇文章中,我们将开始分析如何创建所有组件以及如何使它们交谈。
现在,如果您要设置WSO2 ESB,则可以转到此处并安装该应用程序。
翻译自: https://www.javacodegeeks.com/2015/07/internet-of-things-arduino-android-esb.html