Saya mengutak-atik pusat Azure IoT dan saya mengonfigurasi perangkat. Sekarang saya ingin mengirim data menggunakan MQTT dari perangkat nyata (tanpa kode). Sepertinya saya tidak dapat menemukan informasi jika ini memungkinkan untuk pusat IoT.

Untuk hub IoT saya menemukan: Azure Iot Hub MQTT

Saya ingin menggunakan IoT Central karena dasbor bawaan. Itu sepertinya tidak ada untuk hub IoT. Jika saya tidak dapat mengirim data langsung ke pusat IoT, apakah ada cara untuk menggunakan perangkat hub IoT di pusat IoT?

1
Sebastian S 22 Juli 2020, 14:55

1 menjawab

Jawaban Terbaik

Azure IoT Central menggunakan IoT Hub di latar belakang, sehingga Anda masih dapat terhubung ke titik akhir perangkat publik menggunakan protokol MQTT pada port 8883.

Untuk mendapatkan alamat hub, Anda dapat menggunakan skrip di bawah ini pada mesin apa pun berdasarkan informasi perangkat di aplikasi Azure IoT Central (lihat dokumen)

enter image description here

// 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);
    }
  });

Keluaran:

Pendaftaran berhasil
Ditetapkan hub=iotc-xxx.azure-devices.net
DeviceId=xxx
HostName=xxx.azure-devices.net;DeviceId=xxx;SharedAccessKey=xxx=

Selain itu, seperti yang dinyatakan oleh Matthijs van der Veer, perhatikan bahwa IoT Central menggunakan rel Layanan Penyediaan Perangkat untuk memungkinkan perangkat Anda terhubung ke hub IoT. Ini menetapkan hub IoT ke perangkat saat mendaftar tetapi jika perangkat dipindahkan ke hub yang berbeda, perangkat akan kehilangan koneksi.

1
Peter Bons 23 Juli 2020, 12:09