Bagikan melalui


Tutorial: Menyambungkan sampel aplikasi perangkat Plug and Play IoT yang berjalan di Linux atau Windows ke IoT Hub

Tutorial ini menunjukkan kepada Anda cara membuat sampel aplikasi perangkat IoT Plug and Play, menyambungkannya ke hub IoT Anda, dan menggunakan alat penjelajah Azure IoT untuk melihat telemetri yang dikirimnya. Aplikasi sampel ditulis dalam C dan disertakan dalam SDK perangkat Azure IoT untuk C. Penyusun solusi dapat menggunakan alat penjelajah Azure IoT untuk memahami kemampuan perangkat IoT Plug and Play tanpa perlu melihat kode perangkat apa pun.

Telusuri kode

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 '\'.

Prasyarat berbeda menurut sistem operasi:

Linux

Tutorial ini mengasumsikan Anda menggunakan Ubuntu Linux. Langkah-langkah dalam tutorial ini diuji menggunakan Ubuntu 18.04.

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

PasangGCC, Git, cmake, dan semua dependensi yang diperlukan menggunakan perintah apt-get:

sudo apt-get update
sudo apt-get install -y git cmake build-essential curl libcurl4-openssl-dev libssl-dev uuid-dev

Pastikan versi cmake di atas versi 2.8.12 dan versi GCC di atas versi 4.4.7.

cmake --version
gcc --version

Windows

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

Unduh kode

Dalam tutorial ini, Anda menyiapkan lingkungan pengembangan yang dapat Anda gunakan untuk mengkloning dan membangun Azure IoT Hub Device C SDK.

Buka perintah di direktori pilihan Anda. Jalankan perintah berikut untuk mengkloning repositori GitHub Azure IoT C SDKs dan Libraries ke lokasi ini:

git clone https://github.com/Azure/azure-iot-sdk-c.git
cd azure-iot-sdk-c
git submodule update --init

Diperlukan waktu beberapa menit untuk menyelesaikan operasi ini.

Bangun kode

Anda dapat membuat dan menjalankan kode menggunakan Visual Studio atau cmake di baris perintah.

Gunakan Visual Studio

  1. Masuk ke folder akar repositori kloning Anda. Setelah beberapa detik, dukungan CMake di Visual Studio menciptakan semua yang Anda butuhkan untuk menjalankan dan mendebug proyek.

  2. Saat Visual Studio siap, di Penjelajah Solusi, navigasikan ke sampel iothub_client/samples/pnp/pnp_simple_thermostat/.

  3. Klik kanan pada file pnp_simple_thermostat.c dan pilih Tambahkan Konfigurasi Debug. Pilih Default.

  4. Visual Studio membuka file launch.vs.json. Edit file ini seperti ditunjukkan dalam cuplikan berikut untuk mengatur variabel lingkungan yang diperlukan. Anda membuat catatan ID lingkup dan pendaftaran kunci primer ketika Anda menyelesaikan Pengaturan lingkungan Anda untuk IoT Plug and Play quickstarts dan tutorial:

    {
      "version": "0.2.1",
      "defaults": {},
      "configurations": [
        {
          "type": "default",
          "project": "iothub_client\\samples\\pnp\\pnp_simple_thermostat\\pnp_pnp_simple_thermostat.c",
          "projectTarget": "",
          "name": "pnp_simple_thermostat.c",
          "env": {
            "IOTHUB_DEVICE_SECURITY_TYPE": "DPS",
            "IOTHUB_DEVICE_DPS_ID_SCOPE": "<Your ID scope>",
            "IOTHUB_DEVICE_DPS_DEVICE_ID": "my-pnp-device",
            "IOTHUB_DEVICE_DPS_DEVICE_KEY": "<Your enrollment primary key>"
          }
        }
      ]
    }
    
  5. Klik kanan pada file pnp_simple_thermostat.c dan pilih Atur sebagai Item Startup.

  6. Untuk melacak eksekusi kode di Visual Studio, tambahkan titik henti ke main fungsi dalam file pnp_simple_thermostat.c .

  7. Anda sekarang dapat menjalankan dan mendebug sampel dari menu Debug.

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.

Menggunakan cmake untuk membangun kode

Anda menggunakan utilitas baris perintah cmake untuk membangun kode:

  1. Buat subdirektori cmake di folder akar SDK perangkat, dan navigasikan ke folder itu:

    cd azure-iot-sdk-c
    mkdir cmake
    cd cmake
    
  2. Jalankan perintah berikut untuk membuat SDK dan sampel:

    cmake -Duse_prov_client=ON -Dhsm_type_symm_key=ON -Drun_e2e_tests=OFF ..
    cmake --build .
    

Menjalankan sampel perangkat

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.

Untuk menjalankan aplikasi sampel di SDK yang menyimulasikan perangkat IoT Plug and Play yang mengirim telemetri ke hub IoT Anda:

Dari folder cmake, navigasikan ke folder yang berisi file yang dapat dieksekusi dan jalankan:

# Bash
cd iothub_client/samples/pnp/pnp_simple_thermostat/
./pnp_simple_thermostat
REM Windows
cd iothub_client\samples\pnp\pnp_simple_thermostat\Debug
.\pnp_simple_thermostat.exe

Tip

Untuk melacak eksekusi kode di Visual Studio pada Windows, tambahkan titik putus ke fungsi main di filepnp_simple_thermostat.c.

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.

Menggunakan penjelajah Azure IoT untuk memvalidasi kode

Setelah sampel perangkat klien dimulai, gunakan alat penjelajah Azure IoT untuk memverifikasi bahwa itu berfungsi.

  1. Buka explorer IoT Azure.

  2. Pada halaman hub IoT, jika Anda belum menambahkan koneksi ke hub IoT, pilih +Tambahkan koneksi. Masukkan string koneksi untuk hub IoT yang Anda buat sebelumnya dan pilih Simpan.

  3. Pada halaman Pengaturan IoT Plug and Play, pilih + Tambahkan > folder Lokal dan pilih folder model lokal tempat Anda menyimpan file model Anda.

  4. Pada halaman hub IoT, klik nama hub yang ingin Anda gunakan. Anda melihat daftar perangkat yang didaftarkan di hub IoT.

  5. Klik ID Perangkat dari perangkat yang Anda buat sebelumnya.

  6. Menu di sebelah kiri menunjukkan berbagai jenis informasi yang tersedia untuk perangkat.

  7. Pilih Komponen IoT Plug and Play untuk melihat informasi model perangkat Anda.

  8. Anda dapat melihat berbagai komponen perangkat. Komponen default dan komponen tambahan apa pun. Pilih komponen untuk digunakan.

  9. Pilih halaman Telemetri lalu pilih Mulai untuk melihat data telemetri yang dikirim perangkat untuk komponen ini.

  10. Pilih halaman Properti (baca-saja) guna melihat properti baca-saja yang dilaporkan untuk komponen ini.

  11. Pilih halaman Properti (bisa-tulis) guna melihat properti bisa-tulis yang dapat Anda perbarui untuk komponen ini.

  12. Pilih properti dengan nama, masukkan nilai baru untuk properti, dan pilih Perbarui nilai yang diinginkan.

  13. Untuk melihat nilai baru muncul pilih tombol Refresh.

  14. Pilih halaman Perintah guna melihat semua perintah untuk komponen ini.

  15. Pilih perintah yang ingin Anda uji, atur parameternya jika ada. Pilih Kirim perintah untuk memanggil perintah di perangkat. Anda dapat melihat perangkat merespons perintah di jendela wantian perintah tempat kode sampel berjalan.

Mengulas kode

Sampel ini mengimplementasikan perangkat termostat IoT Plug and Play sederhana. Model termostat tidak menggunakan komponen IoT Plug and Play. File model DTDL untuk perangkat termostat menentukan telemetri, properti, dan perintah yang diterapkan perangkat.

Kode perangkat menggunakan fungsi standar untuk dapat terhubung ke hub IoT Anda:

deviceHandle = IoTHubDeviceClient_CreateFromConnectionString(connectionString, MQTT_Protocol)

Perangkat mengirimkan ID model dari model DTDL yang diterapkannya dalam permintaan koneksi. Perangkat yang mengirim ID model adalah perangkat IoT Plug and Play:

static const char g_ModelId[] = "dtmi:com:example:Thermostat;1";

...

IoTHubDeviceClient_SetOption(deviceHandle, OPTION_MODEL_ID, modelId)

Kode yang memperbarui properti, menangani perintah, dan mengirim telemetri, mirip dengan kode untuk perangkat yang tidak menggunakan konvensi IoT Plug and Play.

Kode ini menggunakan pustaka Parson untuk mengurai objek JSON dalam payload yang dikirim dari hub IoT Anda:

// JSON parser
#include "parson.h"

Membersihkan sumber daya

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

Tutorial ini menunjukkan kepada Anda cara membuat sampel aplikasi perangkat IoT Plug and Play, menyambungkannya ke hub IoT Anda, dan menggunakan alat penjelajah Azure IoT untuk melihat telemetri yang dikirimnya. Aplikasi sampel ditulis dalam C# dan disertakan dalam Azure IoT SDK untuk C#. Penyusun solusi dapat menggunakan alat penjelajah Azure IoT untuk memahami kemampuan perangkat IoT Plug and Play tanpa perlu melihat kode perangkat apa pun.

Telusuri kode

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 '\'.

Unduh kode

Dalam tutorial ini, Anda menyiapkan lingkungan pengembangan yang dapat Anda gunakan untuk mengkloning dan membangun repositori Azure IoT SDK for C#.

Buka perintah di folder pilihan Anda. Jalankan perintah berikut untuk mengkloning repositori GitHub Microsoft Azure IoT SDK for C# (.NET) ke lokasi ini:

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

Bangun kode

Anda sekarang dapat membangun sampel 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.

Menggunakan penjelajah Azure IoT untuk memvalidasi kode

Setelah sampel perangkat klien dimulai, gunakan alat penjelajah Azure IoT untuk memverifikasi bahwa itu berfungsi.

  1. Buka explorer IoT Azure.

  2. Pada halaman hub IoT, jika Anda belum menambahkan koneksi ke hub IoT, pilih +Tambahkan koneksi. Masukkan string koneksi untuk hub IoT yang Anda buat sebelumnya dan pilih Simpan.

  3. Pada halaman Pengaturan IoT Plug and Play, pilih + Tambahkan > folder Lokal dan pilih folder model lokal tempat Anda menyimpan file model Anda.

  4. Pada halaman hub IoT, klik nama hub yang ingin Anda gunakan. Anda melihat daftar perangkat yang didaftarkan di hub IoT.

  5. Klik ID Perangkat dari perangkat yang Anda buat sebelumnya.

  6. Menu di sebelah kiri menunjukkan berbagai jenis informasi yang tersedia untuk perangkat.

  7. Pilih Komponen IoT Plug and Play untuk melihat informasi model perangkat Anda.

  8. Anda dapat melihat berbagai komponen perangkat. Komponen default dan komponen tambahan apa pun. Pilih komponen untuk digunakan.

  9. Pilih halaman Telemetri lalu pilih Mulai untuk melihat data telemetri yang dikirim perangkat untuk komponen ini.

  10. Pilih halaman Properti (baca-saja) guna melihat properti baca-saja yang dilaporkan untuk komponen ini.

  11. Pilih halaman Properti (bisa-tulis) guna melihat properti bisa-tulis yang dapat Anda perbarui untuk komponen ini.

  12. Pilih properti dengan nama, masukkan nilai baru untuk properti, dan pilih Perbarui nilai yang diinginkan.

  13. Untuk melihat nilai baru muncul pilih tombol Refresh.

  14. Pilih halaman Perintah guna melihat semua perintah untuk komponen ini.

  15. Pilih perintah yang ingin Anda uji, atur parameternya jika ada. Pilih Kirim perintah untuk memanggil perintah di perangkat. Anda dapat melihat perangkat merespons perintah di jendela wantian perintah tempat kode sampel berjalan.

Mengulas kode

Sampel ini mengimplementasikan perangkat termostat IoT Plug and Play sederhana. Model yang diimplementasikan sampel ini tidak menggunakan komponen IoT Plug and Play. File model bahasa pemrogram definisi Digital Twins (DTDL) untuk perangkat termostat mendefinisikan telemetri, properti, dan perintah yang diterapkan perangkat.

Kode perangkat terhubung ke hub IoT Anda menggunakan metode CreateFromConnectionString standar. Perangkat mengirimkan ID model dari model DTDL yang diterapkannya dalam permintaan koneksi. Perangkat yang mengirim ID model adalah perangkat IoT Plug and Play:

private static void InitializeDeviceClientAsync()
{
  var options = new ClientOptions
  {
    ModelId = ModelId,
  };
  s_deviceClient = DeviceClient.CreateFromConnectionString(s_deviceConnectionString, TransportType.Mqtt, options);
  s_deviceClient.SetConnectionStatusChangesHandler((status, reason) =>
  {
     s_logger.LogDebug($"Connection status change registered - status={status}, reason={reason}.");
  });
}

ID model disimpan dalam kode seperti yang ditunjukkan dalam cuplikan berikut:

private const string ModelId = "dtmi:com:example:Thermostat;1";

Kode yang memperbarui properti, menangani perintah, dan mengirim telemetri, mirip dengan kode untuk perangkat yang tidak menggunakan konvensi IoT Plug and Play.

Sampel menggunakan pustaka JSON untuk mengurai objek JSON dalam payload yang dikirim dari IoT hub Anda:

using Newtonsoft.Json;

...

DateTime since = JsonConvert.DeserializeObject<DateTime>(request.DataAsJson);

Membersihkan sumber daya

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

Tutorial ini menunjukkan kepada Anda cara membuat sampel aplikasi perangkat IoT Plug and Play, menyambungkannya ke hub IoT Anda, dan menggunakan alat penjelajah Azure IoT untuk melihat telemetri yang dikirimnya. Aplikasi sampel ditulis dalam Java dan disertakan dalam SDK perangkat Azure IoT untuk Java. Penyusun solusi dapat menggunakan alat penjelajah Azure IoT untuk memahami kemampuan perangkat IoT Plug and Play tanpa perlu melihat kode perangkat apa pun.

Telusuri kode

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:

Unduh kode

Dalam tutorial ini, Anda menyiapkan lingkungan pengembangan yang dapat Anda gunakan untuk mengkloning dan membangun Azure IoT Hub Device Java SDK.

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

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

Bangun kode

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

Menjalankan sampel perangkat

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.

Menggunakan penjelajah Azure IoT untuk memvalidasi kode

Setelah sampel perangkat klien dimulai, gunakan alat penjelajah Azure IoT untuk memverifikasi bahwa itu berfungsi.

  1. Buka explorer IoT Azure.

  2. Pada halaman hub IoT, jika Anda belum menambahkan koneksi ke hub IoT, pilih +Tambahkan koneksi. Masukkan string koneksi untuk hub IoT yang Anda buat sebelumnya dan pilih Simpan.

  3. Pada halaman Pengaturan IoT Plug and Play, pilih + Tambahkan > folder Lokal dan pilih folder model lokal tempat Anda menyimpan file model Anda.

  4. Pada halaman hub IoT, klik nama hub yang ingin Anda gunakan. Anda melihat daftar perangkat yang didaftarkan di hub IoT.

  5. Klik ID Perangkat dari perangkat yang Anda buat sebelumnya.

  6. Menu di sebelah kiri menunjukkan berbagai jenis informasi yang tersedia untuk perangkat.

  7. Pilih Komponen IoT Plug and Play untuk melihat informasi model perangkat Anda.

  8. Anda dapat melihat berbagai komponen perangkat. Komponen default dan komponen tambahan apa pun. Pilih komponen untuk digunakan.

  9. Pilih halaman Telemetri lalu pilih Mulai untuk melihat data telemetri yang dikirim perangkat untuk komponen ini.

  10. Pilih halaman Properti (baca-saja) guna melihat properti baca-saja yang dilaporkan untuk komponen ini.

  11. Pilih halaman Properti (bisa-tulis) guna melihat properti bisa-tulis yang dapat Anda perbarui untuk komponen ini.

  12. Pilih properti dengan nama, masukkan nilai baru untuk properti, dan pilih Perbarui nilai yang diinginkan.

  13. Untuk melihat nilai baru muncul pilih tombol Refresh.

  14. Pilih halaman Perintah guna melihat semua perintah untuk komponen ini.

  15. Pilih perintah yang ingin Anda uji, atur parameternya jika ada. Pilih Kirim perintah untuk memanggil perintah di perangkat. Anda dapat melihat perangkat merespons perintah di jendela wantian perintah tempat kode sampel berjalan.

Mengulas kode

Sampel ini mengimplementasikan perangkat termostat IoT Plug and Play sederhana. Model yang diimplementasikan sampel ini tidak menggunakan komponen IoT Plug and Play. File model DTDL untuk perangkat termostat menentukan telemetri, properti, dan perintah yang diterapkan perangkat.

Kode perangkat menggunakan kelas DeviceClient standar untuk tersambung ke IoT hub Anda. Perangkat mengirimkan ID model dari model DTDL yang diterapkannya dalam permintaan koneksi. Perangkat yang mengirim ID model adalah perangkat IoT Plug and Play:

private static void initializeDeviceClient() throws URISyntaxException, IOException {
    ClientOptions options = new ClientOptions();
    options.setModelId(MODEL_ID);
    deviceClient = new DeviceClient(deviceConnectionString, protocol, options);

    deviceClient.registerConnectionStatusChangeCallback((status, statusChangeReason, throwable, callbackContext) -> {
        log.debug("Connection status change registered: status={}, reason={}", status, statusChangeReason);

        if (throwable != null) {
            log.debug("The connection status change was caused by the following Throwable: {}", throwable.getMessage());
            throwable.printStackTrace();
        }
    }, deviceClient);

    deviceClient.open();
}

ID model disimpan dalam kode seperti yang ditunjukkan dalam cuplikan berikut:

private static final String MODEL_ID = "dtmi:com:example:Thermostat;1";

Kode yang memperbarui properti, menangani perintah, dan mengirim telemetri, mirip dengan kode untuk perangkat yang tidak menggunakan konvensi IoT Plug and Play.

Sampel menggunakan pustaka JSON untuk mengurai objek JSON dalam payload yang dikirim dari IoT hub Anda:

import com.google.gson.Gson;

...

Date since = new Gson().fromJson(jsonRequest, Date.class);

Membersihkan sumber daya

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

Tutorial ini menunjukkan kepada Anda cara membuat sampel aplikasi perangkat IoT Plug and Play, menyambungkannya ke hub IoT Anda, dan menggunakan alat penjelajah Azure IoT untuk melihat telemetri yang dikirimnya. Aplikasi sampel ditulis dalam Node.js dan disertakan dalam SDK perangkat Azure IoT untuk Node.js. Penyusun solusi dapat menggunakan alat penjelajah Azure IoT untuk memahami kemampuan perangkat IoT Plug and Play tanpa perlu melihat kode perangkat apa pun.

Telusuri kode

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, 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

Unduh kode

Dalam tutorial ini, Anda menyiapkan lingkungan pengembangan yang dapat Anda gunakan untuk mengkloning dan membangun Azure IoT Hub Device SDK untuk Node.js.

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

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

Instal pustaka yang diperlukan

Anda menggunakan SDK perangkat untuk membuat kode sampel yang disertakan. Aplikasi yang Anda buat mensimulasikan perangkat yang terhubung ke hub IoT. Aplikasi mengirim telemetri dan properti dan menerima perintah.

  1. Di jendela terminal lokal, buka folder repositori dikloning dan navigasikan ke folder /azure-iot-sdk-node/device/samples/javascript. Kemudian jalankan perintah berikut untuk menginstal pustaka yang diperlukan:

    npm install
    

Menjalankan perangkat sampel

Sampel ini mengimplementasikan perangkat termostat IoT Plug and Play sederhana. Model yang diimplementasikan sampel ini tidak menggunakan komponen IoT Plug and Play. File model DTDL untuk perangkat termostat menentukan telemetri, properti, dan perintah yang diterapkan perangkat.

Buka file pnp_simple_thermostat.js. Dalam file ini, Anda dapat melihat cara:

  1. Mengimpor antarmuka yang diperlukan.
  2. Menulis penghandel pembaruan properti dan penghandel perintah.
  3. Menangani patch properti yang diinginkan dan mengirim telemetri.
  4. Secara opsional, provisi perangkat Anda menggunakan Azure Device Provisioning Service (DPS).

Dalam fungsi utama, Anda dapat melihat bagaimana semuanya disatukan:

  1. Buat perangkat dari string koneksi Anda atau provisikan menggunakan DPS.)
  2. Gunakan opsi modelID untuk menentukan model perangkat IoT Plug and Play.
  3. Aktifkan penghandel perintah.
  4. Kirim telemetri dari perangkat ke hub Anda.
  5. Dapatkan kembaran perangkat dan perbarui properti yang dilaporkan.
  6. Aktifkan penghandel pembaruan properti yang diinginkan.

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.

Jalankan aplikasi sampel untuk mensimulasikan perangkat IoT Plug and Play yang mengirim telemetri ke hub IoT Anda. Untuk menjalankan aplikasi sampel, gunakan perintah berikut:

node pnp_simple_thermostat.js

Anda melihat output berikut, yang menunjukkan perangkat mengirim data telemetri ke hub, dan sekarang siap untuk menerima perintah dan pembaruan properti.

Pesan konfirmasi perangkat

Tetap jalankan sampel saat Anda menyelesaikan langkah-langkah berikutnya.

Menggunakan penjelajah Azure IoT untuk memvalidasi kode

Setelah sampel perangkat klien dimulai, gunakan alat penjelajah Azure IoT untuk memverifikasi bahwa itu berfungsi.

  1. Buka explorer IoT Azure.

  2. Pada halaman hub IoT, jika Anda belum menambahkan koneksi ke hub IoT, pilih +Tambahkan koneksi. Masukkan string koneksi untuk hub IoT yang Anda buat sebelumnya dan pilih Simpan.

  3. Pada halaman Pengaturan IoT Plug and Play, pilih + Tambahkan > folder Lokal dan pilih folder model lokal tempat Anda menyimpan file model Anda.

  4. Pada halaman hub IoT, klik nama hub yang ingin Anda gunakan. Anda melihat daftar perangkat yang didaftarkan di hub IoT.

  5. Klik ID Perangkat dari perangkat yang Anda buat sebelumnya.

  6. Menu di sebelah kiri menunjukkan berbagai jenis informasi yang tersedia untuk perangkat.

  7. Pilih Komponen IoT Plug and Play untuk melihat informasi model perangkat Anda.

  8. Anda dapat melihat berbagai komponen perangkat. Komponen default dan komponen tambahan apa pun. Pilih komponen untuk digunakan.

  9. Pilih halaman Telemetri lalu pilih Mulai untuk melihat data telemetri yang dikirim perangkat untuk komponen ini.

  10. Pilih halaman Properti (baca-saja) guna melihat properti baca-saja yang dilaporkan untuk komponen ini.

  11. Pilih halaman Properti (bisa-tulis) guna melihat properti bisa-tulis yang dapat Anda perbarui untuk komponen ini.

  12. Pilih properti dengan nama, masukkan nilai baru untuk properti, dan pilih Perbarui nilai yang diinginkan.

  13. Untuk melihat nilai baru muncul pilih tombol Refresh.

  14. Pilih halaman Perintah guna melihat semua perintah untuk komponen ini.

  15. Pilih perintah yang ingin Anda uji, atur parameternya jika ada. Pilih Kirim perintah untuk memanggil perintah di perangkat. Anda dapat melihat perangkat merespons perintah di jendela wantian perintah tempat kode sampel berjalan.

Membersihkan sumber daya

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

Tutorial ini menunjukkan kepada Anda cara membuat sampel aplikasi perangkat IoT Plug and Play, menyambungkannya ke hub IoT Anda, dan menggunakan alat penjelajah Azure IoT untuk melihat telemetri yang dikirimnya. Aplikasi contoh ditulis untuk Python dan disertakan dalam Azure IoT Hub Device SDK untuk Python. Penyusun solusi dapat menggunakan alat penjelajah Azure IoT untuk memahami kemampuan perangkat IoT Plug and Play tanpa perlu melihat kode perangkat apa pun.

Telusuri kode

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 sebagai berikut:

pip install azure-iot-device

Kloning repositori Python SDK IoT:

git clone --branch v2 https://github.com/Azure/azure-iot-sdk-python

Menjalankan perangkat sampel

Folder azure-iot-sdk-python/samples/pnp berisi kode sampel untuk perangkat IoT Plug and Play. Tutorial ini menggunakan file simple_thermostat.py . Kode sampel ini mengimplementasikan perangkat yang kompatibel dengan IoT Plug and Play dan menggunakan Azure IoT Python Device Client Library.

Buka file simple_thermostat.py di editor teks. Perhatikan bagaimana caranya untuk:

  1. Menentukan pengidentifikasi model kembar perangkat tunggal (DTMI) yang secara unik mewakili Thermostat. DTMI harus diketahui oleh pengguna dan bervariasi bergantung pada skenario implementasi perangkat. Untuk sampel saat ini, model mewakili termostat yang memiliki telemetri, properti, dan perintah yang terkait dengan suhu pemantauan.

  2. Memiliki fungsi untuk menentukan implementasi pengatur perintah. Anda menulis pengatur ini untuk menentukan bagaimana perangkat merespons permintaan perintah.

  3. Memiliki fungsi untuk menentukan respons perintah. Anda membuat fungsi respons perintah untuk mengirim respons kembali ke IoT hub Anda.

  4. Menentukan fungsi pendengar keyboard input untuk memungkinkan Anda keluar dari aplikasi.

  5. Memiliki fungsi utama. Fungsi utama:

    1. Menggunakan SDK perangkat untuk membuat perangkat klien dan terhubung ke hub IoT Anda.

    2. Memperbarui properti. Model Termostat mendefinisikan targetTemperature dan maxTempSinceLastReboot sebagai dua properti untuk Termostat. Properti diperbarui menggunakan metode patch_twin_reported_properties yang ditentukan pada device_client.

    3. Mulai mendengarkan permintaan perintah menggunakan fungsi execute_command_listener. Fungsi ini menyiapkan 'listener' untuk mendengarkan perintah yang berasal dari layanan. Saat Anda menyiapkan pendengar, Anda menyediakan method_name, , user_command_handlerdan create_user_response_handler.

      • Fungsi user_command_handler menentukan apa yang harus dilakukan perangkat saat menerima perintah.
      • Fungsi create_user_response_handler membuat respons untuk dikirim ke hub IoT Anda saat perintah berhasil dijalankan. Anda dapat melihat respons ini di portal.
    4. Mulai mengirim telemetri. pnp_send_telemetry ditentukan dalam file pnp_methods.py. Kode sampel menggunakan perulangan untuk memanggil fungsi ini setiap delapan detik.

    5. Menonaktifkan semua pendengar dan tugas, dan ada loop saat Anda menekan Q atau q.

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.

Sekarang setelah Anda melihat kode, gunakan perintah berikut untuk menjalankan sampel:

python simple_thermostat.py

Anda melihat output berikut, yang menunjukkan perangkat mengirim data telemetri ke hub, dan sekarang siap untuk menerima perintah dan pembaruan properti:

Listening for command requests and property updates
Press Q to quit
Sending telemetry for temperature
Sent message

Tetap jalankan sampel saat Anda menyelesaikan langkah-langkah berikutnya.

Menggunakan penjelajah Azure IoT untuk memvalidasi kode

Setelah sampel perangkat klien dimulai, gunakan alat penjelajah Azure IoT untuk memverifikasi bahwa itu berfungsi.

  1. Buka explorer IoT Azure.

  2. Pada halaman hub IoT, jika Anda belum menambahkan koneksi ke hub IoT, pilih +Tambahkan koneksi. Masukkan string koneksi untuk hub IoT yang Anda buat sebelumnya dan pilih Simpan.

  3. Pada halaman Pengaturan IoT Plug and Play, pilih + Tambahkan > folder Lokal dan pilih folder model lokal tempat Anda menyimpan file model Anda.

  4. Pada halaman hub IoT, klik nama hub yang ingin Anda gunakan. Anda melihat daftar perangkat yang didaftarkan di hub IoT.

  5. Klik ID Perangkat dari perangkat yang Anda buat sebelumnya.

  6. Menu di sebelah kiri menunjukkan berbagai jenis informasi yang tersedia untuk perangkat.

  7. Pilih Komponen IoT Plug and Play untuk melihat informasi model perangkat Anda.

  8. Anda dapat melihat berbagai komponen perangkat. Komponen default dan komponen tambahan apa pun. Pilih komponen untuk digunakan.

  9. Pilih halaman Telemetri lalu pilih Mulai untuk melihat data telemetri yang dikirim perangkat untuk komponen ini.

  10. Pilih halaman Properti (baca-saja) guna melihat properti baca-saja yang dilaporkan untuk komponen ini.

  11. Pilih halaman Properti (bisa-tulis) guna melihat properti bisa-tulis yang dapat Anda perbarui untuk komponen ini.

  12. Pilih properti dengan nama, masukkan nilai baru untuk properti, dan pilih Perbarui nilai yang diinginkan.

  13. Untuk melihat nilai baru muncul pilih tombol Refresh.

  14. Pilih halaman Perintah guna melihat semua perintah untuk komponen ini.

  15. Pilih perintah yang ingin Anda uji, atur parameternya jika ada. Pilih Kirim perintah untuk memanggil perintah di perangkat. Anda dapat melihat perangkat merespons perintah di jendela wantian perintah tempat kode sampel berjalan.

Membersihkan sumber daya

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

Jika Anda mengembangkan untuk perangkat yang dibatasi, Anda dapat menggunakan IoT Plug and Play dengan:

Artikel ini menyertakan link dan sumber daya untuk skenario yang dibatasi ini.

Prasyarat

Kebanyakan dari sampel di bawah ini memerlukan perangkat keras tertentu dan prasyaratnya berbeda untuk setiap sampel. Ikuti link ke sampel yang relevan untuk petunjuk prasyarat, konfigurasi, dan build terperinci.

Menggunakan SDK untuk Embedded C

SDK untuk Embedded C menawarkan solusi ringan untuk menyambungkan perangkat yang dibatasi ke layanan Azure IoT, termasuk menggunakan konvensi IoT Plug and Play. Link berikut ini mencakup sampel untuk perangkat berbasis MCU dan untuk tujuan pendidikan dan penelusuran kesalahan.

Menggunakan perangkat berbasis MCU

Untuk tutorial end-to-end lengkap menggunakan SDK untuk Embedded C, Device Provisioning Service, serta IoT Plug and Play pada MCU, lihat Menggunakan kembali PIC-IoT Wx Development Board untuk Tersambung ke Azure melalui IoT Hub Device Provisioning Service.

Sampel pengantar

Repositori SDK for Embedded C berisi beberapa sampel yang menunjukkan cara menggunakan IoT Plug and Play:

Catatan

Sampel ini ditampilkan berjalan di Windows dan Linux untuk tujuan pendidikan dan penelusuran kesalahan. Dalam skenario produksi, sampel hanya ditujukan untuk perangkat terbatas.

Menggunakan Eclipse ThreadX

Eclipse ThreadX mencakup lapisan ringan yang menambahkan konektivitas asli ke layanan cloud Azure IoT. Lapisan ini menyediakan mekanisme sederhana untuk menghubungkan perangkat yang dibatasi ke Azure IoT sambil menggunakan fitur lanjutan Eclipse ThreadX. Untuk mempelajari lebih lanjut , lihat ringkasan Eclipse ThreadX.

Toolchain

Sampel Eclipse ThreadX disediakan dengan berbagai jenis IDE dan kombinasi toolchain, seperti:

Sampel

Tabel berikut mencantumkan sampel yang menunjukkan kepada Anda cara memulai di perangkat yang berbeda dengan Eclipse ThreadX dan IoT Plug and Play:

Produsen Perangkat Sampel
Microchip ATSAME54-XPRO GCC/CMakeIARMPLAB
MXCHIP AZ3166 GCC/CMake
NXP MIMXRT1060-EVK GCC/CMakeIARMCUXpresso
STMicroelectronics 32F746GDISCOVERY IARSTM32Cube
STMicroelectronics B-L475E-IOT01 GCC/CMakeIARSTM32Cube
STMicroelectronics B-L4S5I-IOT01 GCC/CMakeIARSTM32Cube

Langkah berikutnya

Dalam tutorial ini, Anda telah mempelajari cara menghubungkan perangkat IoT Plug and Play ke IoT Hub. Untuk mempelajari lebih lanjut cara membuat solusi yang berinteraksi dengan perangkat IoT Plug and Play Anda, lihat: