我正在摆弄 Azure IoT Central 并配置了一个设备。现在我想使用 MQTT 从真实设备(无代码)发送数据。如果物联网中心有可能,我似乎无法找到信息。
对于 IoT 中心,我发现:Azure IoT Hub MQTT
由于内置仪表板,我想使用 IoT Central。物联网中心似乎不存在这些。如果我不能直接将数据发送到 IoT Central,有没有办法在 IoT Central 中使用 IoT 中心设备?
我正在摆弄 Azure IoT Central 并配置了一个设备。现在我想使用 MQTT 从真实设备(无代码)发送数据。如果物联网中心有可能,我似乎无法找到信息。
对于 IoT 中心,我发现:Azure IoT Hub MQTT
由于内置仪表板,我想使用 IoT Central。物联网中心似乎不存在这些。如果我不能直接将数据发送到 IoT Central,有没有办法在 IoT Central 中使用 IoT 中心设备?
Azure IoT Central 在后台使用 IoT 中心,因此您仍然可以使用端口 8883 上的 MQTT 协议连接到公共设备端点。
要获取集线器的地址,您可以根据 Azure IoT Central 应用程序中的设备信息在任何机器上使用以下脚本(请参阅文档)
// npm install azure-iot-device azure-iot-device-mqtt azure-iot-provisioning-device-mqtt azure-iot-security-symmetric-key --save
"use strict";
// Use the Azure IoT device SDK for devices that connect to Azure IoT Central.
var iotHubTransport = require('azure-iot-device-mqtt').Mqtt;
var Client = require('azure-iot-device').Client;
var Message = require('azure-iot-device').Message;
var ProvisioningTransport = require('azure-iot-provisioning-device-mqtt').Mqtt;
var SymmetricKeySecurityClient = require('azure-iot-security-symmetric-key').SymmetricKeySecurityClient;
var ProvisioningDeviceClient = require('azure-iot-provisioning-device').ProvisioningDeviceClient;
var provisioningHost = 'global.azure-devices-provisioning.net';
var idScope = '{your Scope ID}';
var registrationId = '{your Device ID}';
var symmetricKey = ''{your Primary Key}';
var provisioningSecurityClient = new SymmetricKeySecurityClient(registrationId, symmetricKey);
var provisioningClient = ProvisioningDeviceClient.create(provisioningHost, idScope, new ProvisioningTransport(), provisioningSecurityClient);
provisioningClient.register((err, result) => {
if (err) {
console.log('Error registering device: ' + err);
} else {
console.log('Registration succeeded');
console.log('Assigned hub=' + result.assignedHub);
console.log('DeviceId=' + result.deviceId);
var connectionString = 'HostName=' + result.assignedHub + ';DeviceId=' + result.deviceId + ';SharedAccessKey=' + symmetricKey;
console.log(connectionString);
}
});
输出:
注册成功
分配 hub=iotc-xxx.azure-devices.net
DeviceId=xxx
HostName=xxx.azure-devices.net;DeviceId=xxx;SharedAccessKey=xxx=
此外,正如 Matthijs van der Veer 所述,请注意 IoT Central 使用设备配置服务使您的设备能够连接到 IoT 中心。它在注册时将 IoT 集线器分配给设备,但如果设备被重新分配给不同的集线器,则设备将失去连接。