Bagikan melalui


Tutorial: Berinteraksi dengan perangkat IoT Plug and Play yang tersambung ke solusi Anda

IoT Plug and Play menyederhanakan IoT dengan memungkinkan Anda berinteraksi dengan kemampuan perangkat tanpa mengetahui implementasi perangkat yang mendasarinya. Tutorial ini menunjukkan kepada Anda cara menggunakan C# untuk menyambungkan dan mengontrol perangkat IoT Plug and Play yang terhubung ke solusi Anda.

Prasyarat

Sebelum melanjutkan, pastikan Anda telah menyiapkan lingkungan Anda, termasuk hub IoT Anda.

Anda dapat menjalankan tutorial ini di Linux atau Windows. Perintah shell dalam tutorial ini mengikuti konvensi Linux untuk pemisah jalur '/', jika Anda mengikuti di Windows pastikan untuk menukar pemisah ini dengan '\'.

Mengkloning repositori SDK dengan kode sampel

Jika Anda menyelesaikan Tutorial: Menyambungkan sampel aplikasi perangkat IoT Plug and Play yang berjalan di Windows ke Azure IoT Hub (C#), Anda telah mengkloning repositori.

Kloning sampel dari repositori Azure IoT SDK for C# GitHub. Buka perintah di folder pilihan Anda. Jalankan perintah berikut untuk mengkloning repositori GitHub Microsoft Azure IoT SDK for .NET :

git clone https://github.com/Azure/azure-iot-sdk-csharp.git

Membangun kode perangkat

Anda sekarang dapat membuat sampel perangkat dan menjalankannya. Jalankan perintah berikut untuk membuat sampel:

cd azure-iot-sdk-csharp/iothub/device/samples/solutions/PnpDeviceSamples/Thermostat
dotnet build

Menjalankan sampel perangkat

Untuk menjalankan sampel, jalankan perintah berikut:

dotnet run

Sekarang perangkat siap untuk menerima perintah dan pembaruan properti, dan telah mulai mengirim data telemetri ke hub. Tetap jalankan sampel saat Anda menyelesaikan langkah-langkah berikutnya.

Menjalankan solusi sampel

Di Siapkan lingkungan Anda untuk mulai cepat dan tutorial IoT Plug and Play, Anda membuat dua variabel lingkungan untuk mengonfigurasi sampel untuk terhubung ke hub IoT Anda:

  • IOTHUB_CONNECTION_STRING: string koneksi IoT Hub yang Anda catat sebelumnya.
  • IOTHUB_DEVICE_ID: "my-pnp-device".

Dalam tutorial ini, Anda menggunakan contoh solusi IoT yang ditulis dalam C# untuk berinteraksi dengan perangkat sampel yang baru saja Anda siapkan dan jalankan.

  1. Di jendela terminal lain, navigasikan ke folder azure-iot-sdk-csharp/iothub/service/samples/solutions/PnpServiceSamples/Thermostat .

  2. Jalankan perintah berikut untuk membuat sampel layanan:

    dotnet build
    
  3. Jalankan perintah berikut untuk menjalankan sampel layanan:

    dotnet run
    

Dapatkan kembaran perangkat

Cuplikan kode berikut menunjukkan bagaimana aplikasi layanan mengambil perangkat kembar:

// Get a Twin and retrieves model Id set by Device client
Twin twin = await s_registryManager.GetTwinAsync(s_deviceId);
s_logger.LogDebug($"Model Id of this Twin is: {twin.ModelId}");

Catatan

Sampel ini menggunakan namespace layanan Microsoft.Azure.Devices.Client dari klien layanan IoT Hub. Untuk mempelajari selengkapnya tentang API, termasuk API kembar digital, lihat panduan pengembang layanan.

Kode ini menghasilkan output berikut:

[09/21/2020 11:26:04]dbug: Thermostat.Program[0]
      Model Id of this Twin is: dtmi:com:example:Thermostat;1

Cuplikan kode berikut menunjukkan cara menggunakan patch untuk memperbarui properti melalui perangkat kembar:

// Update the twin
var twinPatch = new Twin();
twinPatch.Properties.Desired[PropertyName] = PropertyValue;
await s_registryManager.UpdateTwinAsync(s_deviceId, twinPatch, twin.ETag);

Kode ini menghasilkan output berikut dari perangkat saat layanan memperbarui properti targetTemperature:

[09/21/2020 11:26:05]dbug: Thermostat.ThermostatSample[0]
      Property: Received - { "targetTemperature": 60°C }.
[09/21/2020 11:26:05]dbug: Thermostat.ThermostatSample[0]
      Property: Update - {"targetTemperature": 60°C } is InProgress.

...

[09/21/2020 11:26:17]dbug: Thermostat.ThermostatSample[0]
      Property: Update - {"targetTemperature": 60°C } is Completed.

Memanggil perintah

Cuplikan kode berikut menunjukkan cara memanggil perintah:

private static async Task InvokeCommandAsync()
{
    var commandInvocation = new CloudToDeviceMethod(CommandName) { ResponseTimeout = TimeSpan.FromSeconds(30) };

    // Set command payload
    string componentCommandPayload = JsonConvert.SerializeObject(s_dateTime);
    commandInvocation.SetPayloadJson(componentCommandPayload);

    CloudToDeviceMethodResult result = await s_serviceClient.InvokeDeviceMethodAsync(s_deviceId, commandInvocation);

    if (result == null)
    {
        throw new Exception($"Command {CommandName} invocation returned null");
    }

    s_logger.LogDebug($"Command {CommandName} invocation result status is: {result.Status}");
}

Kode ini menghasilkan output berikut dari perangkat saat layanan memanggil perintah getMaxMinReport:

[09/21/2020 11:26:05]dbug: Thermostat.ThermostatSample[0]
      Command: Received - Generating max, min and avg temperature report since 21/09/2020 11:25:58.
[09/21/2020 11:26:05]dbug: Thermostat.ThermostatSample[0]
      Command: MaxMinReport since 21/09/2020 11:25:58: maxTemp=32, minTemp=32, avgTemp=32, startTime=21/09/2020 11:25:59, endTime=21/09/2020 11:26:04

IoT Plug and Play menyederhanakan IoT dengan memungkinkan Anda berinteraksi dengan kemampuan perangkat tanpa mengetahui implementasi perangkat yang mendasarinya. Tutorial ini menunjukkan kepada Anda cara menggunakan Java untuk menyambungkan dan mengontrol perangkat IoT Plug and Play yang terhubung ke solusi Anda.

Prasyarat

Sebelum melanjutkan, pastikan Anda telah menyiapkan lingkungan Anda, termasuk hub IoT Anda.

Anda dapat menjalankan tutorial ini di Linux atau Windows. Perintah shell dalam tutorial ini mengikuti konvensi Linux untuk pemisah jalur '/', jika Anda mengikuti di Windows pastikan untuk menukar pemisah ini dengan '\'.

Untuk menyelesaikan tutorial ini, instal perangkat lunak berikut di lingkungan pengembangan lokal Anda:

Mengkloning repositori SDK dengan kode sampel

Jika Anda menyelesaikan Tutorial: Menyambungkan sampel aplikasi perangkat IoT Plug and Play yang berjalan di Windows ke IoT Hub (Java), Anda telah mengkloning repositori.

Buka perintah di direktori pilihan Anda. Jalankan perintah berikut untuk mengkloning repositori GitHub SDK Microsoft Azure IoT untuk Java ke lokasi ini:

git clone https://github.com/Azure/azure-iot-sdk-java.git

Membuat dan menjalankan perangkat sampel

Navigasikan ke folder akar sampel termostat di repositori Java SDK kloning dan buat:

cd azure-iot-sdk-java/device/iot-device-samples/pnp-device-sample/thermostat-device-sample
mvn clean package

Di Menyiapkan lingkungan Anda, Anda membuat empat variabel lingkungan guna mengonfigurasi sampel untuk menggunakan Device Provisioning Service (DPS) agar menyambungkan ke IoT Hub:

  • IOTHUB_DEVICE_SECURITY_TYPE dengan nilai DPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE dengan cakupan ID DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_ID dengan nilai my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY dengan kunci utama pendaftaran.
  • IOTHUB_DEVICE_DPS_ENDPOINT dengan nilai global.azure-devices-provisioning.net.

Untuk mempelajari selengkapnya tentang konfigurasi sampel, lihat sampel readme.

Dari folder /device/iot-device-samples/pnp-device-sample/thermostat-device-sample , jalankan aplikasi:

mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.device.Thermostat"

Sekarang perangkat siap untuk menerima perintah dan pembaruan properti, dan telah mulai mengirim data telemetri ke hub. Tetap jalankan sampel saat Anda menyelesaikan langkah-langkah berikutnya.

Menjalankan solusi sampel

Di Siapkan lingkungan Anda untuk mulai cepat dan tutorial IoT Plug and Play, Anda membuat dua variabel lingkungan untuk mengonfigurasi sampel untuk terhubung ke hub IoT Anda:

  • IOTHUB_CONNECTION_STRING: string koneksi IoT Hub yang Anda catat sebelumnya.
  • IOTHUB_DEVICE_ID: "my-pnp-device".

Dalam tutorial ini, Anda menggunakan contoh solusi IoT yang ditulis di Java untuk berinteraksi dengan perangkat sampel yang baru saja Anda siapkan.

Catatan

Sampel ini menggunakan namespace layanan com.microsoft.azure.sdk.iot.service dari klien layanan IoT Hub. Untuk mempelajari selengkapnya tentang API, termasuk API kembar digital, lihat panduan pengembang layanan.

  1. Buka jendela terminal lain untuk digunakan sebagai terminal layanan Anda.

  2. Di repositori Java SDK yang dikloning, navigasikan ke folder service/iot-service-samples/pnp-service-sample/thermostat-service-sample .

  3. Untuk membangun dan menjalankan aplikasi layanan sampel, jalankan perintah berikut:

    mvn clean package
    mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.service.Thermostat"
    

Dapatkan kembaran perangkat

Cuplikan kode berikut menunjukkan cara mengambil perangkat kembar dalam layanan:

 // Get the twin and retrieve model Id set by Device client.
DeviceTwinDevice twin = new DeviceTwinDevice(deviceId);
twinClient.getTwin(twin);
System.out.println("Model Id of this Twin is: " + twin.getModelId());

Memperbarui perangkat kembar

Cuplikan kode berikut menunjukkan cara menggunakan patch untuk memperbarui properti melalui perangkat kembar:

String propertyName = "targetTemperature";
double propertyValue = 60.2;
twin.setDesiredProperties(Collections.singleton(new Pair(propertyName, propertyValue)));
twinClient.updateTwin(twin);

Output perangkat memperlihatkan bagaimana perangkat merespons pembaruan properti ini.

Memanggil perintah

Cuplikan kode berikut menunjukkan bagaimana memanggil perintah pada perangkat:

// The method to invoke for a device without components should be "methodName" as defined in the DTDL.
String methodToInvoke = "getMaxMinReport";
System.out.println("Invoking method: " + methodToInvoke);

Long responseTimeout = TimeUnit.SECONDS.toSeconds(200);
Long connectTimeout = TimeUnit.SECONDS.toSeconds(5);

// Invoke the command.
String commandInput = ZonedDateTime.now(ZoneOffset.UTC).minusMinutes(5).format(DateTimeFormatter.ISO_DATE_TIME);
MethodResult result = methodClient.invoke(deviceId, methodToInvoke, responseTimeout, connectTimeout, commandInput);
if(result == null)
{
    throw new IOException("Method result is null");
}

System.out.println("Method result status is: " + result.getStatus());

Output perangkat memperlihatkan bagaimana perangkat merespons perintah ini.

IoT Plug and Play menyederhanakan IoT dengan memungkinkan Anda berinteraksi dengan kemampuan perangkat tanpa mengetahui implementasi perangkat yang mendasarinya. Tutorial ini menunjukkan cara menggunakan Node.js untuk menyambungkan dan mengontrol perangkat IoT Plug and Play yang terhubung ke solusi Anda.

Prasyarat

Sebelum melanjutkan, pastikan Anda telah menyiapkan lingkungan Anda, termasuk hub IoT Anda.

Untuk menyelesaikan tutorial ini, Anda memerlukan Node.js di komputer pengembangan Anda. Anda dapat mengunduh versi terbaru yang direkomendasikan untuk beberapa platform dari nodejs.org.

Anda dapat memverifikasi versi Node.js saat ini di komputer pengembangan Anda menggunakan perintah berikut:

node --version

Mengkloning repositori SDK dengan kode sampel

Kloning sampel dari repositori Node SDK. Buka jendela terminal di folder pilihan Anda. Jalankan perintah berikut untuk mengkloning repositori GitHub Microsoft Azure IoT SDK untuk Node.js:

git clone https://github.com/Azure/azure-iot-sdk-node

Menjalankan perangkat sampel

Di Menyiapkan lingkungan Anda, Anda membuat empat variabel lingkungan guna mengonfigurasi sampel untuk menggunakan Device Provisioning Service (DPS) agar menyambungkan ke IoT Hub:

  • IOTHUB_DEVICE_SECURITY_TYPE dengan nilai DPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE dengan cakupan ID DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_ID dengan nilai my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY dengan kunci utama pendaftaran.
  • IOTHUB_DEVICE_DPS_ENDPOINT dengan nilai global.azure-devices-provisioning.net.

Untuk mempelajari selengkapnya tentang konfigurasi sampel, lihat sampel readme.

Dalam tutorial ini, Anda menggunakan contoh perangkat termostat yang ditulis dalam Node.js sebagai perangkat IoT Plug and Play. Untuk menjalankan perangkat sampel:

  1. Buka jendela terminal dan navigasikan ke folder lokal yang berisi Microsoft Azure IoT SDK untuk repositori Node.js yang Anda kloning dari GitHub.

  2. Jendela terminal ini digunakan sebagai terminal perangkat Anda. Buka folder repositori kloning Anda, dan navigasikan ke folder /azure-iot-sdk-node/device/samples/javascript . Pasang semua dependensi dengan menjalankan perintah berikut:

    npm install
    
  3. Jalankan sampel perangkat termostat dengan perintah berikut:

    node pnp_simple_thermostat.js
    
  4. Anda melihat pesan yang mengatakan bahwa perangkat telah mengirim beberapa informasi dan melaporkan dirinya sendiri secara online. Pesan-pesan ini menunjukkan bahwa perangkat telah mulai mengirim data telemetri ke hub, dan sekarang siap untuk menerima perintah dan pembaruan properti. Jangan tutup terminal ini, Anda memerlukannya untuk mengonfirmasi bahwa sampel layanan berfungsi.

Menjalankan solusi sampel

Di Siapkan lingkungan Anda untuk mulai cepat dan tutorial IoT Plug and Play, Anda membuat dua variabel lingkungan untuk mengonfigurasi sampel untuk terhubung ke hub IoT Anda:

  • IOTHUB_CONNECTION_STRING: string koneksi IoT Hub yang Anda catat sebelumnya.
  • IOTHUB_DEVICE_ID: "my-pnp-device".

Dalam tutorial ini, Anda menggunakan sampel Node.js solusi IoT untuk berinteraksi dengan perangkat sampel yang baru saja Anda siapkan dan jalankan.

  1. Buka jendela terminal lain untuk digunakan sebagai terminal layanan Anda.

  2. Di repositori Node SDK yang dikloning, navigasikan ke folder azure-iot-sdk-node/service/samples/javascript . Pasang semua dependensi dengan menjalankan perintah berikut:

    npm install
    

Membaca properti

  1. Saat Anda menjalankan perangkat termostat sampel di terminal perangkat, Anda melihat pesan berikut yang menunjukkan status online-nya:

    properties have been reported for component
    sending telemetry message 0...
    
  2. Buka terminal layanan dan gunakan perintah berikut untuk menjalankan sampel untuk membaca informasi perangkat:

    node twin.js
    
  3. Di output terminal layanan, perhatikan respons dari perangkat kembar. Anda melihat ID model perangkat dan properti terkait yang dilaporkan:

    Model Id: dtmi:com:example:Thermostat;1
    {
      "deviceId": "my-pnp-device",
      "etag": "AAAAAAAAAAE=",
      "deviceEtag": "Njc3MDMxNDcy",
      "status": "enabled",
      "statusUpdateTime": "0001-01-01T00:00:00Z",
      "connectionState": "Connected",
      "lastActivityTime": "0001-01-01T00:00:00Z",
      "cloudToDeviceMessageCount": 0,
      "authenticationType": "sas",
      "x509Thumbprint": {
        "primaryThumbprint": null,
        "secondaryThumbprint": null
      },
      "modelId": "dtmi:com:example:Thermostat;1",
      "version": 4,
      "properties": {
        "desired": {
          "$metadata": {
            "$lastUpdated": "2020-10-05T11:35:19.4574755Z"
          },
          "$version": 1
        },
        "reported": {
          "maxTempSinceLastReboot": 31.343640523762232,
          "serialNumber": "123abc",
          "$metadata": {
            "$lastUpdated": "2020-10-05T11:35:23.7339042Z",
            "maxTempSinceLastReboot": {
              "$lastUpdated": "2020-10-05T11:35:23.7339042Z"
            },
            "serialNumber": {
              "$lastUpdated": "2020-10-05T11:35:23.7339042Z"
            }
          },
          "$version": 3
        }
      },
      "capabilities": {
        "iotEdge": false
      },
      "tags": {}
    }
    
  4. Cuplikan berikut menunjukkan kode dalam twin.js yang mengambil ID model kembar perangkat:

    var registry = Registry.fromConnectionString(connectionString);
    registry.getTwin(deviceId, function(err, twin) {
      if (err) {
        console.error(err.message);
      } else {
        console.log('Model Id: ' + twin.modelId);
        //...
      }
      //...
    }
    

Dalam skenario ini, ini menghasilkan Model Id: dtmi:com:example:Thermostat;1.

Catatan

Sampel layanan ini menggunakan kelas Registri dari klien layanan IoT Hub. Untuk mempelajari selengkapnya tentang API, termasuk API kembar digital, lihat panduan pengembang layanan.

Memperbarui properti bisa-tulis

  1. Buka file twin.js di editor kode.

  2. Tinjau kode sampel, ini menunjukkan dua cara untuk memperbarui perangkat kembar. Untuk menggunakan cara pertama, ubah variabel twinPatch sebagai berikut:

    var twinPatch = {
      tags: {
        city: "Redmond"
      },
      properties: {
        desired: {
          targetTemperature: 42
        }
      }
    };
    

    Properti targetTemperature didefinisikan sebagai properti bisa-tulis dalam model perangkat Termostat.

  3. Di terminal service, gunakan perintah berikut untuk menjalankan sampel pembaruan properti:

    node twin.js
    
  4. Di terminal perangkat Anda, Anda melihat perangkat telah menerima pembaruan:

    The following properties will be updated for the default component:
    {
      targetTemperature: {
        value: 42,
        ac: 200,
        ad: 'Successfully executed patch for targetTemperature',
        av: 2
      }
    }
    updated the property
    
  5. Di terminal layanan Anda, jalankan perintah berikut untuk mengonfirmasi bahwa properti telah diperbarui:

    node twin.js
    
  6. Di output terminal layanan, di bagian reported properti, Anda melihat suhu target yang diperbarui dilaporkan. Mungkin perlu beberapa saat agar perangkat menyelesaikan pembaruan. Ulangi langkah ini hingga perangkat telah memproses pembaruan properti:

    "reported": {
      //...
      "targetTemperature": {
        "value": 42,
        "ac": 200,
        "ad": "Successfully executed patch for targetTemperature",
        "av": 4
      },
      //...
    }
    

Memanggil perintah

  1. Buka file device_method.js dan tinjau kode.

  2. Buka terminal layanan. Gunakan perintah berikut untuk menjalankan sampel untuk menjalankan perintah:

    set IOTHUB_METHOD_NAME=getMaxMinReport
    set IOTHUB_METHOD_PAYLOAD=commandpayload
    node device_method.js
    
  3. Output di terminal layanan menunjukkan konfirmasi berikut:

    getMaxMinReport on my-pnp-device:
    {
      "status": 200,
      "payload": {
        "maxTemp": 23.460596940801928,
        "minTemp": 23.460596940801928,
        "avgTemp": 23.460596940801928,
        "endTime": "2020-10-05T12:48:08.562Z",
        "startTime": "2020-10-05T12:47:54.450Z"
      }
    }
    
  4. Di terminal perangkat, Anda melihat perintah diakui:

    MaxMinReport commandpayload
    Response to method 'getMaxMinReport' sent successfully.
    

IoT Plug and Play menyederhanakan IoT dengan memungkinkan Anda berinteraksi dengan model perangkat tanpa mengetahui implementasi perangkat yang mendasarinya. Tutorial ini menunjukkan kepada Anda cara menggunakan Python untuk menyambungkan dan mengontrol perangkat IoT Plug and Play yang terhubung ke solusi Anda.

Prasyarat

Sebelum melanjutkan, pastikan Anda telah menyiapkan lingkungan Anda, termasuk hub IoT Anda.

Untuk menyelesaikan tutorial ini, Anda memerlukan Python yang diinstal pada komputer pengembangan Anda. Periksa Azure IoT Python SDK untuk persyaratan versi Python saat ini. Anda dapat memeriksa versi Python Anda dengan perintah berikut:

python --version

Anda dapat mengunduh versi terbaru yang disarankan untuk berbagai platform dari python.org.

Di lingkungan Python lokal Anda, instal paket azure-iot-device sebagai berikut:

pip install azure-iot-device

Instal paket azure-iot-hub dengan menjalankan perintah berikut ini:

pip install azure-iot-hub

Menjalankan perangkat sampel

Di Menyiapkan lingkungan Anda, Anda membuat empat variabel lingkungan guna mengonfigurasi sampel untuk menggunakan Device Provisioning Service (DPS) agar menyambungkan ke IoT Hub:

  • IOTHUB_DEVICE_SECURITY_TYPE dengan nilai DPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE dengan cakupan ID DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_ID dengan nilai my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY dengan kunci utama pendaftaran.
  • IOTHUB_DEVICE_DPS_ENDPOINT dengan nilai global.azure-devices-provisioning.net.

Untuk mempelajari selengkapnya tentang konfigurasi sampel, lihat sampel readme.

Dalam tutorial ini, Anda menggunakan perangkat termostat sampel, yang ditulis dalam Python, sebagai perangkat IoT Plug and Play. Untuk menjalankan perangkat sampel:

  1. Buka jendela terminal di folder pilihan Anda. Jalankan perintah berikut untuk mengkloning repositori GitHub Azure IoT Device Python SDK ke lokasi ini:

    git clone --branch v2 https://github.com/Azure/azure-iot-sdk-python
    
  2. Jendela terminal ini digunakan sebagai terminal perangkat Anda. Buka folder repositori kloning Anda, dan navigasikan ke folder azure-iot-sdk-python/samples/pnp .

  3. Jalankan sampel perangkat termostat dengan perintah berikut:

    python simple_thermostat.py
    
  4. Anda melihat pesan yang mengatakan bahwa perangkat telah mengirim beberapa informasi dan melaporkan dirinya sendiri secara online. Pesan-pesan ini menunjukkan bahwa perangkat telah mulai mengirim data telemetri ke hub, dan sekarang siap untuk menerima perintah dan pembaruan properti. Jangan tutup terminal ini, Anda memerlukannya untuk mengonfirmasi bahwa sampel layanan berfungsi.

Menjalankan solusi sampel

Dalam tutorial ini, Anda menggunakan contoh solusi IoT di Python untuk berinteraksi dengan perangkat sampel yang baru saja Anda siapkan.

  1. Buka jendela terminal lain untuk digunakan sebagai terminal layanan Anda. Jalankan perintah berikut untuk mengkloning repositori GitHub Azure IoT Hub Python SDK ke lokasi ini:

    git clone https://github.com/Azure/azure-iot-hub-python
    
  2. Instal

  3. Navigasikan ke folder /azure-iot-hub-python/samples dari repositori Python SDK kloning.

  4. Buka file registry_manager_pnp_sample.py dan tinjau kodenya. Sampel ini menunjukkan cara menggunakan kelas IoTHubRegistryManager untuk berinteraksi dengan perangkat IoT Plug and Play Anda.

Catatan

Sampel layanan ini menggunakan kelas IoTHubRegistryManager dari Klien layanan IoT Hub. Untuk mempelajari selengkapnya tentang API, termasuk API kembar digital, lihat panduan pengembang layanan.

Dapatkan perangkat kembar

Di Siapkan lingkungan Anda untuk mulai cepat dan tutorial IoT Plug and Play, Anda membuat dua variabel lingkungan untuk mengonfigurasi sampel untuk terhubung ke hub IoT Anda:

  • IOTHUB_CONNECTION_STRING: string koneksi IoT Hub yang Anda catat sebelumnya.
  • IOTHUB_DEVICE_ID: "my-pnp-device".

Gunakan perintah berikut di terminal layanan untuk menjalankan sampel ini:

set IOTHUB_METHOD_NAME="getMaxMinReport"
set IOTHUB_METHOD_PAYLOAD="hello world"
python registry_manager_pnp_sample.py

Catatan

Jika Anda menjalankan sampel ini di Linux, gunakan export untuk menggantikan set.

Output menunjukkan perangkat kembar dan mencetak ID modelnya:

The Model ID for this device is:
dtmi:com:example:Thermostat;1

Cuplikan berikut menunjukkan kode sampel dari registry_manager_pnp_sample.py:

    # Create IoTHubRegistryManager
    iothub_registry_manager = IoTHubRegistryManager(iothub_connection_str)

    # Get device twin
    twin = iothub_registry_manager.get_twin(device_id)
    print("The device twin is: ")
    print("")
    print(twin)
    print("")

    # Print the device's model ID
    additional_props = twin.additional_properties
    if "modelId" in additional_props:
        print("The Model ID for this device is:")
        print(additional_props["modelId"])
        print("")

Memperbarui perangkat kembar

Sampel ini memperlihatkan kepada Anda cara memperbarui targetTemperature properti bisa-tulis di perangkat:

    # Update twin
    twin_patch = Twin()
    twin_patch.properties = TwinProperties(
        desired={"targetTemperature": 42}
    )  # this is relevant for the thermostat device sample
    updated_twin = iothub_registry_manager.update_twin(device_id, twin_patch, twin.etag)
    print("The twin patch has been successfully applied")
    print("")

Anda dapat memverifikasi bahwa pembaruan diterapkan di terminal perangkat yang menunjukkan output berikut:

the data in the desired properties patch was: {'targetTemperature': 42, '$version': 2}

Terminal layanan mengonfirmasi bahwa patch berhasil:

The twin patch has been successfully applied

Memanggil perintah

Sampel kemudian memanggil perintah:

Terminal layanan memperlihatkan pesan konfirmasi dari perangkat:

The device method has been successfully invoked

Di terminal perangkat, Anda melihat perangkat menerima perintah:

Command request received with payload
hello world
Will return the max, min and average temperature from the specified time hello to the current time
Done generating
{"tempReport": {"avgTemp": 34.2, "endTime": "09/07/2020 09:58:11", "maxTemp": 49, "minTemp": 10, "startTime": "09/07/2020 09:56:51"}}

Membersihkan sumber daya

Jika Anda sudah selesai dengan mulai cepat dan tutorial, lihat Membersihkan sumber daya.

Langkah berikutnya

Dalam tutorial ini, Anda telah mempelajari cara menyambungkan perangkat IoT Plug and Play ke solusi IoT. Untuk mempelajari selengkapnya model perangkat IoT Plug and Play, lihat: