100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 阿里云物联实现不同设备间的通信

阿里云物联实现不同设备间的通信

时间:2024-07-07 01:22:18

相关推荐

阿里云物联实现不同设备间的通信

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

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

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

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

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

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

定义后的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设备成功接收到了消息。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。