数据从baetyl-broker上传至IoTCore
更新时间:2022-12-01
场景说明
数据已经采集到的边缘broker,还需要将采集到的数据上报至云端,本文讲解如何将边缘业务数据上传至远端MQTT Broker。
上传至百度IoT Core
一、前提准备
- 一个能获取设备数据的连网边缘节点(本demo采用应用案例中的modbus采集温湿度传感器demo节点为测试节点。)
- 百度IoT Core账户
二、整体流程
边缘端和iot core的消息流如下图所示。本demo中配置消息流从broker topic 到 iotcore topic。
三、iot core端配置
1、创建iot core实例
2、添加模版
选中实例,添加模版
对模版进行编辑,添加MQTT broker主题。
其中 {deviceName} 为变量,表示使用对应设备连接时,应替换为设备名称。如创建设备时名称为 device1,则根据配置,此设备对 $iot/device1/user/test 主题可进行订阅或发布操作。
3、添加设备
新增设备,命名为device1。选择密钥认证,模版选择刚刚配置的default模版
4、通过MQTT连接及收发消息
参考百度云文档获取MQTT连接信息,并生成用户名和密码。
设备连接信息示例
IoTCoreId: agwrbcp
DeviceKey: device1
DeviceSecret: wgXHpQsNBnAPQSwx
agwrbcp.iot.gz.baidubce.com #broker连接地址
thingidp@agwrbcp|device1|0|MD5 #用户名
facd01cc28f85cf3d223b2529f479a38 #密码
四、边缘端配置
数据的流转规则配置在 baetyl-rule 模块中。
1、新建 rule-conf 配置项
配置项代码
clients:
- name: iotcore
kind: mqtt
address: 'tcp://agwrbcp.iot.gz.baidubce.com:1883'
username: thingidp@agwrbcp|device1|0|MD5
password: facd01cc28f85cf3d223b2529f479a38
- name: broker
kind: mqtt
address: 'tcp://broker:1883' #边缘broker的service name
rules:
- name: rule1
source: # 数据源
client: broker
topic: test
qos: 1
target: # 数据目的地
client: iotcore
topic: $iot/device1/user/test
qos: 1
2、创建容器服务,添加配置项
- 服务名称:baetyl-rule
- 镜像地址: baetyltech/rule:v2.0.0
- 容器目录:/etc/baetyl/
五、测试
在MQTT box中订阅iot core 的topic。可以接收到来自温湿度传感器的消息。