使用MQTT将真实设备连接到Azure IoT Central

使用MQTT将真实设备连接到Azure IoT Central,azure,iot,azure-iot-hub,azure-iot-central,Azure,Iot,Azure Iot Hub,Azure Iot Central,我正在摆弄Azure IoT central,我配置了一个设备。现在我想使用MQTT从实际设备(无代码)发送数据。 我似乎无法找到IoT central是否可以这样做的信息 对于物联网中心,我发现: 我想使用IoT Central,因为它有内置的仪表盘。对于物联网中心来说,这些似乎并不存在。 如果我无法直接向IoT central发送数据,是否有办法使用IoT central中的IoT hub设备?Azure IoT central在后台使用IoT hub,因此您仍然可以使用端口8883上的MQ

我正在摆弄Azure IoT central,我配置了一个设备。现在我想使用MQTT从实际设备(无代码)发送数据。 我似乎无法找到IoT central是否可以这样做的信息

对于物联网中心,我发现:

我想使用IoT Central,因为它有内置的仪表盘。对于物联网中心来说,这些似乎并不存在。
如果我无法直接向IoT central发送数据,是否有办法使用IoT central中的IoT hub设备?

Azure IoT central在后台使用IoT hub,因此您仍然可以使用端口8883上的MQTT协议连接到公共设备端点

要获取中心地址,您可以根据Azure IoT Central应用程序中的设备信息在任何机器上使用下面的脚本(请参阅)

//npm安装azure iot设备azure iot设备mqtt azure iot配置设备mqtt azure iot安全对称密钥--保存
“严格使用”;
//对于连接到Azure IoT Central的设备,请使用Azure IoT设备SDK。
var iotHubTransport=require('azure-iot-device-mqtt')。mqtt;
var Client=require('azure-iot-device')。客户端;
var Message=require('azure-iot-device')。消息;
var provisiongttransport=require('azure-iot-provisioning-device-mqtt')。mqtt;
var SymmetricKeySecurityClient=require('azure-iot-security-symmetrickeys-key')。SymmetricKeySecurityClient;
var ProvisioningDeviceClient=require('azure-iot-provisioning-device')。ProvisioningDeviceClient;
var provisionghost='global.azure devices provisioning.net';
var idScope='{your Scope ID}';
var registrationId='{your Device ID}';
var symmetricKey='{your Primary Key}';
var provisiongsecurityclient=新的SymmetricKeySecurityClient(注册ID,symmetricKey);
var provisioningClient=ProvisioningDeviceClient.create(ProvisioningGhost,idScope,new ProvisioningTransport(),provisioningSecurityClient);
provisioningClient.register((错误,结果)=>{
如果(错误){
console.log('错误注册设备:'+err);
}否则{
console.log(“注册成功”);
log('Assigned hub='+result.assignedHub);
log('DeviceId='+result.DeviceId);
var connectionString='HostName='+result.assignedHub+';DeviceId='+result.DeviceId+';SharedAccessKey='+symmetricKey;
console.log(connectionString);
}
});
输出:

注册成功
分配的集线器=iotc xxx.azure设备.net
DeviceId=xxx
HostName=xxx.azure-devices.net;DeviceId=xxx;SharedAccessKey=xxx=


此外,如Matthijs van der Veer所述,请注意物联网中心使用使您的设备能够连接到物联网集线器。注册时,它会为设备分配一个物联网集线器,但如果设备被重新分配到另一个集线器,设备将失去连接。

嗨,Sebastian,当你说“真实设备(无代码)”时,你的确切意思是什么?就像彼得的回答一样,你可以编程一个设备连接到物联网中心的内置集线器。这是一个你无法编程的设备。您只能配置MQTT设置。我的设备在使用IoT hub时工作,我认为IoT central也可以这样做。我提到的页面中的一句话“如果设备不能使用设备SDK,它仍然可以使用端口8883上的MQTT协议连接到公共设备端点”,这对于IoT来说是可能的。我将给出与我给@mathijs van der veer相同的答案,因为我不知道您是否收到通知:这是一个无法编程的设备。您只能配置MQTT设置。我的设备在使用IoT hub时工作,我认为IoT central也可以这样做。引用我提到的页面“如果设备不能使用设备SDK,它仍然可以使用端口8883上的MQTT协议连接到公共设备端点”,这对于IoT是可能的hub@SebastianS我懂了。更新了我的答案很好的答案!我认为这是一个免责声明,因为IoT Central Microsoft提倡在设备上使用DPS。虽然这对Sebastian的设备可能不起作用,但如果该设备被重新分配到另一个集线器,该设备将失去连接。@MatthijsvanderVeer说得好,谢谢您指出这一点。我已经把它添加到了答案中