Menentukan templat perangkat mesin kopi

Selesai

Templat perangkat di Azure IoT Central adalah cetak biru yang menentukan karakteristik dan perilaku jenis perangkat yang terhubung ke aplikasi Anda. Misalnya, templat perangkat menentukan telemetri yang dikirim perangkat, sehingga IoT Central dapat membuat visualisasi yang menggunakan unit dan jenis data yang benar.

Templat perangkat menyertakan bagian berikut:

  • Model perangkat. Data yang ditukar simulator mesin kopi dengan aplikasi Anda ditentukan dalam model perangkat.
    • Komponen root. Antarmuka komponen root menjelaskan kemampuan yang spesifik untuk model perangkat itu.
    • Komponen. Model perangkat dapat menyertakan komponen selain komponen root untuk menjelaskan kemampuan perangkat tersebut. Dalam skenario ini, Anda hanya akan menggunakan komponen akar untuk menentukan model Koneksi ed Coffee Maker.
    • Antarmuka yang diwariskan. Model perangkat berisi satu atau lebih antarmuka yang memperluas kemampuan komponen root. Dalam skenario ini, Anda hanya akan menentukan satu antarmuka.
  • Tampilan. Bagian templat perangkat ini memungkinkan Anda menentukan visualisasi untuk melihat data dari perangkat, dan formulir untuk mengelola dan mengontrol mesin kopi.

Setelah membuat templat perangkat, Anda dapat menyambungkan perangkat yang disimulasikan. Perangkat yang disimulasikan menghasilkan telemetri sehingga Anda dapat menguji perilaku aplikasi Anda sebelum menyambungkan perangkat nyata.

Di sini, Anda akan melihat bagaimana definisi telemetri, properti, dan perintah ditentukan dalam model perangkat, serta properti dan tampilan cloud yang diperlukan untuk mengelola dan mengontrol perangkat dalam contoh mesin kopi yang diaktifkan IoT.

telemetri

Telemetri adalah data yang mengalir dari perangkat Anda. Anda dapat menambahkan beberapa jenis telemetri ke templat perangkat agar sesuai dengan kemampuan perangkat Anda. Mesin kopi mengirimkan nilai kelembapan udara dan suhu air dari sensornya. Ini juga mengirimkan informasi status tentang apakah saat ini sedang diseduh dan ketika cangkir terdeteksi.

Properti

Gunakan properti untuk berbagi data konfigurasi antara perangkat dan aplikasi Anda.

Dalam skenario ini, Anda menggunakan properti yang dapat ditulis untuk mengatur suhu air yang optimal dan mengirimkannya ke mesin kopi. Ketika properti yang dapat ditulis diperbarui di IoT Central, properti tersebut ditandai sebagai tertunda di antarmuka pengguna hingga perangkat mengkonfirmasi bahwa ia telah merespons pembaruan.

Anda dapat menggunakan properti baca-saja untuk memungkinkan perangkat mengirim nilai ke aplikasi Anda. Properti baca-saja hanya dapat diubah oleh perangkat. Dalam skenario ini, Anda menentukan properti perangkat baca-saja yang disebut Device Warranty Expired dalam templat perangkat. Bidang Device Warranty Expired tetap kosong sampai mesin kopi terhubung ke IoT Central. Setelah terhubung, mesin kopi mengirimkan status garansi ke aplikasi.

Properti cloud adalah metadata perangkat yang terkait dengan perangkat. Gunakan properti cloud untuk mencatat informasi tentang perangkat Anda di aplikasi IoT Central Anda. Dalam skenario ini, Anda menggunakan properti cloud untuk mencatat rentang suhu air mesin kopi yang ideal. Properti cloud disimpan di aplikasi IoT Central dan tidak disinkronkan dengan perangkat.

Perintah

Gunakan perangkat untuk mengelola perintah dari jarak jauh dari aplikasi Anda. Anda dapat langsung menjalankan perintah di perangkat dari cloud untuk mengontrol perangkat. Dalam skenario ini, Anda menjalankan perintah pada mesin kopi Anda untuk mengaturnya ke mode pemeliharaan atau untuk mulai menyeduh.

Tampilan

Anda dapat menyesuaikan antarmuka pengguna yang ditampilkan IoT Central untuk mengelola dan memantau perangkat yang terkait dengan templat perangkat. Dalam skenario ini, Anda membuat tampilan untuk membuat alur nilai telemetri yang dikirim dari perangkat, dan membuat formulir untuk mengelola properti perangkat.

model Koneksi ed Coffee Maker

Model perangkat adalah bagian dari templat perangkat yang menentukan telemetri, properti, dan perintah yang didukung perangkat. Anda dapat menyimpan model kemampuan perangkat dalam file JSON dan mengimpornya ke IoT Central. JSON berikut adalah model kemampuan perangkat untuk mesin kopi yang terhubung.

{
    "@id": "dtmi:com:example:ConnectedCoffeeMaker;1",
    "@type": "Interface",
    "contents": [
        {
            "@type": ["Telemetry", "NumberValue", "Temperature"],
            "displayName": {
                "en": "Water Temperature"
            },
            "name": "WaterTemperature",
            "schema": "double",
            "unit": "degreeCelsius",
            "decimalPlaces": 1,
            "maxValue": 100,
            "minValue": 86
        },
        {
            "@type": ["Telemetry", "NumberValue", "Humidity"],
            "displayName": {
                "en": "Air Humidity"
            },
            "name": "AirHumidity",
            "schema": "integer",
            "unit": "percent",
            "maxValue": 100,
            "minValue": 20
        },
        {
            "@type": ["Telemetry", "State"],
            "displayName": {
                "en": "Brewing"
            },
            "name": "Brewing",
            "schema": {
                "@type": "Enum",
                "enumValues": [
                    {
                        "displayName": {
                            "en": "Brewing"
                        },
                        "enumValue": "brewing",
                        "name": "Brewing"
                    },
                    {
                        "displayName": {
                            "en": "Not Brewing"
                        },
                        "enumValue": "notbrewing",
                        "name": "NotBrewing"
                    }
                ],
                "valueSchema": "string"
            }
        },
        {
            "@type": ["Telemetry", "State"],
            "displayName": {
                "en": "Cup Detected"
            },
            "name": "CupDetected",
            "schema": {
                "@type": "Enum",
                "enumValues": [
                    {
                        "displayName": {
                            "en": "Detected"
                        },
                        "enumValue": "detected",
                        "name": "Detected"
                    },
                    {
                        "displayName": {
                            "en": "Not Detected"
                        },
                        "enumValue": "notdetected",
                        "name": "NotDetected"
                    }
                ],
                "valueSchema": "string"
            }
        },
        {
            "@type": ["Property", "NumberValue", "Initialized", "Temperature"],
            "displayName": {
                "en": "Optimal Temperature"
            },
            "name": "OptimalTemperature",
            "schema": "double",
            "unit": "degreeCelsius",
            "writable": true,
            "decimalPlaces": 1,
            "initialValue": 98,
            "maxValue": 100,
            "minValue": 86
        },
        {
            "@type": ["Property", "BooleanValue"],
            "displayName": {
                "en": "Device Warranty Expired"
            },
            "name": "DeviceWarrantyExpired",
            "schema": "boolean",
            "writable": false
        },
        {
            "@type": ["Property", "Cloud", "NumberValue", "Temperature"],
            "displayName": {
                "en": "Coffee Maker Min Temperature"
            },
            "name": "CoffeeMakerMinTemperature",
            "schema": "double",
            "unit": "degreeCelsius",
            "decimalPlaces": 1,
            "maxValue": 92,
            "minValue": 88
        },
        {
            "@type": ["Property", "Cloud", "NumberValue", "Temperature"],
            "displayName": {
                "en": "Coffee Maker Max Temperature"
            },
            "name": "CoffeeMakerMaxTemperature",
            "schema": "double",
            "unit": "degreeCelsius",
            "decimalPlaces": 1,
            "maxValue": 99,
            "minValue": 96
        },
        {
            "@type": "Command",
            "commandType": "synchronous",
            "displayName": {
                "en": "Set Maintenance Mode"
            },
            "name": "SetMaintenanceMode"
        },
        {
            "@type": "Command",
            "commandType": "synchronous",
            "displayName": {
                "en": "Start Brewing"
            },
            "name": "StartBrewing"
        }
    ],
    "displayName": {
        "en": "Connected Coffee Maker"
    },
    "@context": [
        "dtmi:iotcentral:context;2",
        "dtmi:dtdl:context;2"
    ]
}
  • Bidang @id ini adalah Pengidentifikasi Model Digital Twin (DTMI) untuk model, dalam format dtmi:<domain>:<unique-model-identifier>;<model-version-number>.
  • @type Mengidentifikasi jenis informasi yang dijelaskan. Misalnya, "@type": "Interface" digunakan untuk menunjukkan jenis entitas Digital Twin Definition Language (DTDL). Dalam hal ini, entitas adalah Interface.
  • Bidang contents adalah array definisi atribut. Setiap atribut harus menyediakan untuk mengidentifikasi jenis informasi antarmuka yang @type dijelaskannya. Dalam hal ini, Telemetry, Property, dan Command objek menjelaskan fitur pembuat kopi yang terhubung.
  • Bidang displayName adalah objek yang menyediakan nama yang dapat dibaca manusia untuk antarmuka atau entitas dalam bahasa yang berbeda. Dalam hal ini, antarmukanya displayName dalam Connected Coffee Maker bahasa Inggris.
  • Bidang @context digunakan untuk menentukan konteks DTDL tempat antarmuka atau entitas ditentukan. Dalam hal ini, ini mereferensikan iotcentral konteks dan dtdl .
  • Bidang name adalah pengidentifikasi unik untuk Telemetry, , Propertyatau Command.
  • Setiap bidang telemetri mewakili pengukuran atau peristiwa, dan sering digunakan untuk menjelaskan pembacaan sensor perangkat. Misalnya, Water Temperature memiliki schema dari double dan unit dari degreeCelsius. Bidang decimalPlaces, maxValue, dan minValue menentukan detail selengkapnya tentang data telemetri.
  • Setiap bidang properti mewakili status entitas. Misalnya, Device Warranty Expired berjenis boolean dan dapat mengatur statusnya oleh perangkat yang terhubung sebagai true atau false.
  • Bidang writable menentukan apakah properti dapat diatur dari aplikasi IoT Central. Dalam hal ini, Optimal Temperature dapat diatur dari antarmuka pengguna aplikasi, sementara Device Warranty Expired tidak dapat.
  • Jika properti memiliki Cloud daftar jenis, properti tersebut adalah Properti Cloud. Dalam hal ini, Coffee Maker Min Temperature dan Coffee Maker Max Temperature merupakan properti cloud.
  • Setiap bidang perintah menjelaskan tindakan yang dapat dilakukan perangkat. Misalnya, Start Brewing adalah perintah yang dapat dikirim cloud ke perangkat untuk mulai menyeduh kopi.
  • Bidang commandType menentukan apakah perintah sinkron (menunggu respons), atau asinkron (tidak menunggu respons).

Uji pengetahuan Anda

1.

Berapa banyak kemampuan telemetri yang didefinisikan dalam model Koneksi ed Coffee Maker?

2.

Benar atau salah: Suhu Optimal adalah properti bisa-tulis.

3.

Benar atau salah: mesin kopi yang terhubung dapat mulai menyeduh dari jarak jauh dengan menggunakan perintah StartBrewing.