当前位置:   article > 正文

阿里云物联实现不同设备间的通信_阿里云物联网平台两个设备间主题不一致如何通讯

阿里云物联网平台两个设备间主题不一致如何通讯

        最近在做项目的时候,发现阿里云物联同一个产品下的设备只能订阅以其设备名命名的topic,无法实现设备之间的通讯,我捣鼓了许久,终于解决了这个问题。

        查看阿里云物联的官方文档,在topic的定义下发现了以下解释:

即指定设备的topic只能由它自己订阅和发布消息,但是如果要实现设备之间的通讯该怎么办呢?继续翻阅文档:此处发现了设备之间通讯的方法:基于规则引擎的M2M设备间通信 (aliyun.com)

        我们先在阿里云物联中创建一个产品。

        产品名称随机填写,连接方式选择以太网,点击确定。

         然后点击查看产品,再按照如下步骤:

        定义后的topic名为:

        再按照以下步骤添加两个设备:

        同理,再添加一个设备:

         这里要特别注意,每个设备的topic不一样,topic中的${deviceName}为每个设备自己的名称,例如,设备send的topic为:/hzsl4SSPkDb/send/user/senselong_test,设备receive的topic为:/hzsl4SSPkDb/receive/user/senselong_test,正常情况下设备send和receive只能订阅其本身的topic,为了实现他们之间的通信,我们可以采用以下办法:只需要将send设备topic中的内容发送至receive设备的topic中。

        即:

         我们需要在规则引擎的云产品流转里面进行设置,旧版更好用一些,这里我们点击右上角返回旧版本。

         点击创建规则。

         规则名称随便填写,数据格式这里我选择的json。

         创建好规则以后,界面如下,点击处理数据中的编写SQL。这里的设备选择send设备,我们需要将它的数据发送至receive设备。

         在转发数据界面,点击添加操作,操作选择为发布到另外一个topic,设备选择receive。

        最后点击启动云产品流转。

        

         为了验证当前两设备是否能通信,我这里采用MQTTX客户端软件进行验证,下载连接MQTT X:跨平台 MQTT 5.0 桌面客户端工具

        下载完成后,我们打开MQTTX。

         上图中的参数均能在新版的阿里云物联中找到。如下图。

         将连接参数依次复制到MQTTx客户端,点击连接。

         此时,设备成功连接。

         这时,我们查看阿里云物联,设备已在线。

         接下来,我们进行主题订阅。

         点击confirm,成功订阅

         同理,我们重新打开一个mqttx窗口,登录设备send,并订阅主题,主题名已经在上文叙述过了。

        添加完成以后,我们用send设备的客户端发送一个消息测试一下, 这时我们看到receive设备成功接收到了消息。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/659082
推荐阅读
相关标签
  

闽ICP备14008679号