相关文章推荐
伤情的野马  ·  《物联网“十二五”发展规划》发布·  6 月前    · 
伤情的野马  ·  在IoT/M2M ...·  6 月前    · 
伤情的野马  ·  如何基于物联网平台构建M2M设备间通信架构_ ...·  6 月前    · 
伤情的野马  ·  The Use of MQTT in ...·  6 月前    · 
伤情的野马  ·  如何实现基于规则引擎的M2M设备间通信_物联 ...·  6 月前    · 
小百科  ›  如何实现基于规则引擎的M2M设备间通信_物联网平台(IoT)-阿里云 ...
M2M(通信) 软件 阿里 通信 topic
伤情的野马
6 月前
大模型 产品 解决方案 文档与社区 权益中心 定价 云市场 合作伙伴 支持与服务 了解阿里云
AI 助理
备案 控制台
官方文档
有奖调研
输入文档关键字查找
物联网平台 基于消息转发的M2M设备间通信

基于消息转发的M2M设备间通信

更新时间:
产品详情
我的收藏

本文以使用手机 App 控制智能灯为例,介绍基于物联网平台的消息转发中数据流转功能,构建一个 M2M 设备间通信架构的完整流程。

背景信息

使用手机 App 控制智能灯的流程:

M2M设备间通信

创建产品和设备

  1. 在 物联网平台控制台 的对应实例下,为手机 App 注册产品和设备。具体操作,请参见 创建产品 、 单个创建设备 。

    本示例中,创建产品的 产品名称 为 手机 App , 所属品类 为 自定义品类 , 节点类型 为 直连设备 ,其他参数使用默认值。

    创建设备的 DeviceName 为 ControlApp 。

    本示例中,假设 手机 App 的 ProductKey 为 al987654321 。

    为手机 App 创建产品和设备后,手机 App 可以作为一个设备连接到物联网平台。

    当手机 App 用户注册登录时,您的服务器将 App 的设备信息发送给手机 App,手机 App 即可作为一个设备连接到物联网平台。

  2. 添加具有发布权限的自定义 Topic,用于发布控制指令。

    本示例添加 Topic: /al987654321/ControlApp/user/command 。具体操作,请参见 使用自定义 Topic 通信 。

  3. 开发手机 App 设备。

    本示例中,手机 App 与物联网平台间的通信协议使用 HTTPS。

    手机 App 通过自定义 Topic 发送给智能灯的控制指令 payload 数据格式如下:

    {
        "TargetDevice": "light", 
        "Switch": 0, 
        "Timestamp": 1557750407000
    }

    设备端 SDK 开发详情,请参见 设备接入 Link SDK 。

  4. 在 物联网平台控制台 的对应实例下,为智能灯设备创建产品和设备,定义功能等。具体操作,请参见 创建产品 、 批量创建设备 、 单个添加物模型 。

    本示例中,创建产品的 产品名称 为 智能灯 , 所属品类 为 自定义品类 , 节点类型 为 直连设备 ,其他参数使用默认值。

    创建设备的 DeviceName 为 light 。

    本示例中,假设 智能灯 的 ProductKey 为 al123456789 。

    您自行添加物模型功能,例如添加物模型属性 开关 (Switch),数据类型为布尔型(0 是关,1 是开),来控制智能灯开关。

  5. 添加具有订阅权限的自定义 Topic,用于接收手机 App 下发的控制指令。

    本示例添加 Topic: /al123456789/light/user/set 。具体操作,请参见 使用自定义 Topic 通信 。

  6. 开发智能灯设备端,实现智能灯设备连接物联网平台,接收并执行指令等功能。

    本示例中,设备与物联网平台间的通信协议使用 MQTT。智能灯设备需要订阅 Topic: /al123456789/light/user/set ,才能接收指令。接收指令后,需要开发执行指令的逻辑方法。

    设备端 SDK 开发详情,请参见 设备接入 Link SDK 。

配置消息转发解析器

设置消息转发解析器,将手机 App 发布的指令流转到智能灯的 Topic 中。

  1. 登录 物联网平台控制台 。

  2. 在 实例概览 页面,选择目标环境,找到对应的实例,单击实例 ID 或备注名称。

    重要

    目前仅开通企业版实例服务的地域下,执行此步骤。其他地域,请跳过此步骤。地域及实例的支持说明,请参见 实例概述 。

    实例概览
  3. 在左侧导航栏,选择 消息转发 > 云产品流转 ,依次执行以下操作,完成消息转发的解析器配置

添加数据源

以下操作中参数配置说明,请参见 添加待流转的数据源 。

  1. 单击 数据源 页签,执行以下步骤,添加数据源。

    重要

    若当前页面显示旧版功能,先单击右上角 体验新版 ,进入新版功能页面,再单击 数据源 页签。

    1. 单击 创建数据源 。

    2. 在弹出的 创建数据源 对话框,输入数据源名称,例如: AppData 。

    3. 单击 确定 。

  2. 在 AppData 页面,单击 添加 Topic 。

  3. 在 添加 Topic 对话框,选择需要处理的消息 Topic,然后单击 确定 。

    本示例中,选择手机 App 设备 ControlApp 的 Topic /al987654321/ControlApp/user/command ,获取消息中的目标设备的名称 TargetDevice ,消息时间戳 Timestamp 和 Switch 三个字段的值。

    image

配置数据目的

以下操作中参数配置说明,请参见 添加转发到的数据目的 。

  1. 返回 云产品流转 页面,单击 数据目的 页签。

  2. 单击 创建数据目的 。

  3. 在弹出的对话框中,输入数据目的名称,例如: OtherTopic ,选择产品 智能灯 。

    image
  4. 单击 确定 。

配置并启动解析器

以下操作中参数配置说明,请参见 配置解析器 。

  1. 单击 解析器 页签,执行以下操作,添加解析器。

    1. 单击 创建解析器 。

    2. 在弹出的对话框中,输入解析器名称,例如: DataParser 。

    3. 单击 确定 。

  2. 在 DataParser 页面,关联数据源。

    1. 在配置向导的 数据源 下,单击 关联数据源 。

    2. 在弹出的对话框中,单击 数据源 下拉列表,选择已创建的数据源 AppData 。

    3. 单击 确定 。

  3. 在 DataParser 页面,单击配置向导的 数据目的 ,关联数据目的。

    1. 单击 数据目的 列表右上方的 关联数据目的 。

    2. 在弹出的对话框中,单击 数据目的 下拉列表,选择已创建的数据目的 OtherTopic 。

    3. 单击 确定 。

    4. 在数据目的列表,查看并保存 数据目的 ID ,例如为 1000 。

      后续解析脚本中,需使用此处的 数据目的 ID 。

  4. 在 DataParser 页面,单击配置向导的 解析器脚本 ,完成脚本配置。

    1. 在脚本输入框,输入解析脚本,将智能灯设备具有订阅权限的 Topic: /al123456789/light/user/set 作为接收手机 App 指令的 Topic。

      脚本配置说明,请参见 脚本语法 。流转数据的函数说明,请参见 writeIotTopic()函数 。

      //通过payload函数,获取设备上报的消息内容,并按照JSON格式转换。
      var data = payload("json");
      //指定设备时,需获取设备名称。本示例中TargetDevice值为智能灯设备light。
      var dn = data.TargetDevice;
      //智能灯设备接收手机App指令的Topic。
      var topic_set = "/al123456789/"+dn+"/user/set";
      //智能灯设备接收手机App设备的Topic数据。
      writeIotTopic(1000, topic_set, data)
    2. 单击脚本输入框下方 保存 。

    3. 单击 调试 ,在右侧面板,选择产品和设备,输入 Topic 和 Payload 数据,验证脚本可执行。

      本示例参数如下:

      image

      运行结果如下,表示脚本执行成功。

      action: 
          transmit to republish[destinationId=1000], data:{"Switch":0,"Timestamp":1557750407000,"TargetDevice":"light"}
      variables: 
          data : {"Switch":0,"Timestamp":1557750407000,"TargetDevice":"light"}
          topic_set : /al123456789/light/user/set
          dn : light
    4. 在右侧面板左下方,单击 关闭 。

    5. 单击脚本输入框下方 发布 。

  5. 返回 云产品流转 页面的 解析器 页签,单击解析器 DataParser 对应 操作 列的 启动 。

  6. 单击 确认 ,启动解析器。

设备间进行通信

  1. 手机 App 用户通过扫码将 App 与智能灯绑定。

    当 App 向您的服务器发送绑定某设备的请求后,您的服务器将返回绑定成功的智能灯设备名称(deviceName)。本示例中,智能灯设备名称为 light。

  2. 手机 App 用户通过 App 发送控制指令。

    1. 手机 App 通过自定义 Topic 发送指令,如本示例中,App 对应的发送指令 Topic: /al987654321/ControlApp/user/command 。

    2. 物联网平台再根据您定义的消息转发解析器,将指令信息发送给智能灯的 Topic,如本示例中定义的 Topic 为: /al123456789/light/user/set 。

    3. 智能灯接收到指令后,执行相关操作。

    说明

    手机 App 也可以向您的服务器发送解绑设备的请求。解绑后,该手机 App 将不再控制该智能灯。

上一篇:M2M设备间通信 下一篇:基于Topic消息路由的M2M设备间通信
该文章对您有帮助吗?
 
推荐文章
伤情的野马  ·  《物联网“十二五”发展规划》发布
6 月前
伤情的野马  ·  在IoT/M2M 標準架構上溶入OMA輕量級設備管理通信協定 ...
6 月前
伤情的野马  ·  如何基于物联网平台构建M2M设备间通信架构_物联网平台(IoT)-阿里 ...
6 月前
伤情的野马  ·  The Use of MQTT in M2M and IoT Systems: A Survey | IEEE ...
6 月前
伤情的野马  ·  如何实现基于规则引擎的M2M设备间通信_物联网平台(IoT)-阿里云 ...
6 月前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
小百科 - 百科知识指南
© 2024 ~ 沪ICP备11025650号