概述
Azure Event Hub集成可从Azure Event Hub向ThingsBoard流式传输数据,并将设备负载转换为ThingsBoard格式。
使用Azure门户创建IoT Hub
首先,登录Azure门户。
在Azure中创建IoT Hub
现在,您需要创建IoT Hub。您将在这里创建设备并执行一些其他操作。让我们按步骤进行:
- 在Azure门户中,点击”Create a resource“按钮;
- 在搜索字段中输入”IoT Hub“,并从列表中选择匹配项;
- 点击”Create“;
- 在配置页面中,点击”Create new“,指定资源组和IoT Hub名称,然后点击”Review + create“;
- 在下一页中,点击”Create“;
- 等待部署过程完成,然后点击”Go to resource“;
在IoT Hub中创建设备
完成第一步后,按照以下说明创建新设备:
- 从上下文菜单导航到”IoT devices“页面;
- 点击”+ New“按钮;
- 在弹出窗口中,输入”Device ID“并点击”Save“。
很好!您已成功创建新设备。
添加Azure Event Hub集成
1. 基本设置。
转到”Integrations center“部分的”Integrations“页面。点击”plus“按钮开始添加新的集成。选择”Azure Event Hub“集成类型并点击”Next“;

2. 上行数据转换器。
上行转换器用于将设备传入的数据转换为ThingsBoard所需的显示格式。
在函数解码器字段中,指定用于解析和转换数据的脚本。在本示例中,使用默认的解码器函数(或使用您自己的配置)。然后,点击”Next“;

您可以在创建后随时更改解码器函数。
3. 下行数据转换器。
在添加下行转换器的步骤中,您也可以选择之前创建的或创建新的下行转换器。但目前,将”Downlink data converter”字段留空。点击”Skip“;

4. 连接。
在Azure门户中获取Event Hub兼容端点:
- 导航到”IoT Hub“资源;
- 从上下文菜单打开”Built-in endpoints“页面;
- 找到并复制”Event Hub-compatible endpoint“值。
该值将用于与ThingsBoard服务进行集成。
要查找container name:
- 在Azure门户中,点击”Storage account“;
- 转到”Data storage“部分的”Containers“页面。
在这里您可以找到container。保存其名称。
要查找存储connection string值,请导航到”Security + networking“部分的”Access keys“页面。
在ThingsBoard中:
- 在”Connection String“字段中粘贴已复制的”Event Hub-compatible endpoint“;
- 启用持久检查点,以便在集成重启后从上次检查点恢复处理,并在”Storage connection string“和”Container name“字段中填入相应的值。禁用此选项则始终从最新事件开始;
- [可选] 点击”Check connection”按钮检查连接,以验证连接字符串是否正确复制;
- 最后,点击”Add“按钮创建集成。

测试集成!
现在,我们准备好测试集成了。请按照以下步骤操作:
1) 转到”Rule chains“页面并选择一个规则链。在搜索节点字段中输入'gen',在菜单中找到generator节点。将其拖到画布上。在弹出窗口中,指定生成器的名称、消息数量和生成函数(可以使用我们的示例)。最后,点击”Add“;
1
2
3
4
5
6
7
8
9
10
11
var msg = {
"devName": "TB-D-01",
"msg": {
"temp": 42,
"humidity": 77
}
};
var metadata = { data: 40 };
var msgType = "POST_TELEMETRY_REQUEST";
return { msg: msg, metadata: metadata, msgType: msgType };
2) 现在,查找设备的Primary key。转到Azure门户,导航到IoT devices选项卡,选择您的设备,找到”Primary key“字段。复制并保存以备后用;
3) 返回您的ThingsBoard实例。我们需要找到另一个规则节点。在搜索节点字段中输入'iot',选择azure iot hub节点。将其拖到画布上。在弹出窗口中,指定节点名称,将Topic中的<device_id>替换为您的设备名称,并从Azure门户的”IoT Hub“资源中获取Hostname。输入设备名称作为Device ID,并添加之前从设备凭据中复制的SAS Key(Primary Key)。如果需要监控事件,请启用Debug模式;
4) 将generator连接到azure iot hub。点击”generator“节点右侧的灰色圆圈,将其拖到azure iot hub节点的左侧。选择”Success“链接并点击”Add“。保存规则链,然后转到集成页面;
转到”Integrations“页面并选择您的Azure Event Hub集成。如果您在集成的”Events”部分看到类型为”Uplink”的消息,说明一切工作正常。
高级用法:创建下行数据转换器
下行转换器用于向设备发送消息。例如,通知设备其消息已被接收。
1) 首先,查找IoT Hub name:
- 打开Azure门户并导航到”IoT Hub“资源;
- 从上下文菜单转到”Built-in endpoints“页面;
- 找到并复制”Event Hub-compatible name“的值——这就是IoT Hub name。
2) 要将下行数据转换器添加到Azure Event Hub集成中,请按以下步骤操作:
- 导航到”Integrations“页面,选择Azure Event Hub集成以打开其详情,然后点击”pencil“图标进入编辑模式;
- 为下行数据转换器提供名称并点击”Create new converter“;
- 将所需脚本粘贴到Encoder function部分。点击”Add”;
- 在高级设置中,在相应字段中添加”IoT Hub name“;
- 点击”Apply changes“保存配置。
本示例中使用的下行转换器:
1
2
3
4
5
6
7
8
9
10
11
12
13
var result = {
contentType: "JSON",
data: JSON.stringify(msg),
metadata: {
deviceId: 'TB-D-01'
}
};
return result;
好的,下行转换器已就绪,集成已就绪,让我们测试一下:
1) 上行测试完成后,集成已在ThingsBoard中创建了设备,我们需要了解它连接到哪个规则链。 只需转到ThingsBoard菜单中的Device groups,选择All,找到我们在上行中使用的设备名称。
2) 在ThingsBoard菜单的”Rule Chains”页面中找到所需规则链的名称。
3) 在”Search nodes”字段中输入’down’,在菜单中选择integration downlink节点,将其拖到画布上。在弹出窗口中,您需要指定规则节点的名称并选择我们的集成。
4) 点击message type switch节点左侧的灰色圆圈,将其拖到我们”downlink”节点的灰色圆圈上。选择Attributes update并点击”Add”。
5) 很好。保存画布,然后转到”Device groups” -> “All”并选择我们的设备。切换到Attributes,在’Entity attributes scope’列表中选择Shared attributes。 点击’plus’创建新属性。在弹出窗口中指定属性的键、值类型和值。
6) 点击”Add”,然后转到集成页面检查下行结果。
如您所见,我们收到了一条消息,表明下行数据已被集成成功接收并发送到Azure Event Hub。 要在Azure IoT Hub中验证,请转到Azure门户,选择IoT devices菜单选项卡,查看Cloud to Device Message Count数值。
高级用法:使用Azure IoT Hub集成检查下行数据
以下是如何在Azure IoT Hub集成中查看下行数据的简要说明。 请查看下面的图片,了解我们如何对Azure Event Hub进行简单的下行检查
您可以通过以下链接了解Azure IoT Hub:Azure IoT Hub集成。
总结
以上就是全部内容!祝您在配置IoT设备和仪表板时一切顺利!