概述
Azure IoT Hub集成可从Azure IoT Hub向ThingsBoard流式传输数据,并将设备负载转换为ThingsBoard格式。
创建并配置Azure IoT Hub账户
与ThingsBoard集成
我们已完成Azure IoT Hub端的所有必要步骤,现在可以开始配置ThingsBoard。
ThingsBoard上行数据转换器
首先,我们需要创建一个上行数据转换器,用于转换从Azure IoT Hub接收的消息。转换器应将传入的负载转换为所需的消息格式。 消息必须包含deviceName和deviceType字段,这些字段用于将数据提交到正确的设备。如果未找到对应设备,系统将自动创建新设备。 以下是来自Azure IoT Hub的示例负载格式:
1
2
3
4
5
6
7
{
"devName": "T1",
"msg": {
"temp": 42,
"humidity": 77
}
}
我们将提取devName并将其映射到deviceName,但您可以根据具体使用场景采用其他映射方式。 同时,我们将提取temperature和humidity字段的值,作为设备遥测数据。
进入Data Converters页面,使用以下函数创建新的uplink转换器:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var data = decodeToJson(payload);
var deviceName = data.devName;
var deviceType = 'thermostat';
var result = {
deviceName: deviceName,
deviceType: deviceType,
telemetry: {
temperature: data.msg.temp,
humidity: data.msg.humidity
}
};
function decodeToString(payload) {
return String.fromCharCode.apply(String, payload);
}
function decodeToJson(payload) {
var str = decodeToString(payload);
var data = JSON.parse(str);
return data;
}
return result;

Azure IoT Hub集成
接下来,我们将在ThingsBoard中创建与Azure IoT Hub的集成。打开Integrations部分,添加类型为Azure IoT Hub的新集成。
- Name:IoT Hub
- Type:Azure IoT Hub
- Uplink data converter:Thermostat Converter
- Hostname:AZURE_IOT_HUB_HOSTNAME
- Device ID:T1
- Credentials:Shared Access Signature
- SAS Key:DEVICE_SAS_KEY
- Topic filter:devices/T1/messages/devicebound/#

- Topic - 有关IoT Hub主题的更多信息,请参阅链接。
- Credentials - Azure IoT Hub的连接凭据,可以是Shared Access Signature或PEM。
Azure IoT Hub支持不同的身份验证凭据类型:
- Shared Access Signature - 使用SAS密钥进行身份验证
- PEM - 使用PEM证书进行身份验证
如果选择Shared Access Signature凭据类型,需要提供以下配置:
- SAS Key - 即Azure IoT Hub中设备的密钥
- CA证书文件,默认使用Baltimore证书。有关证书的更多信息请参阅此处
如果选择PEM凭据类型,需要提供以下配置:
- CA证书文件,默认使用Baltimore证书。有关证书的更多信息请参阅此处
- 证书文件
- 私钥文件
- 私钥密码
验证
验证上行消息
让我们来验证集成是否正常工作。首先,向上行数据流中发送一条消息,ThingsBoard将获取该消息。
打开您的设备页面,进入Message to Device。
向设备发送测试消息。

进入Device Group -> All -> T1,您可以看到:
- 新设备已在ThingsBoard中注册
- 在Latest Telemetry部分,可以看到最新提交的temperature = 42,humidity = 77。
