Kahve makinesi cihaz şablonunu tanımlama

Tamamlandı

Azure IoT Central'daki cihaz şablonu, uygulamanıza bağlanan bir cihaz türünün özelliklerini ve davranışlarını tanımlayan bir şemadır. Örneğin cihaz şablonu, ioT Central'ın doğru birimleri ve veri türlerini kullanan görselleştirmeler oluşturabilmesi için cihazın gönderdiği telemetriyi tanımlar.

Cihaz şablonu aşağıdaki bölümleri içerir:

  • Cihaz modeli. Kahve makinesi simülatörünün uygulamanızla değiş tokuş yaptığı veriler bir cihaz modelinde belirtilir.
    • Kök bileşen. Kök bileşenin arabirimi, cihaz modeline özgü özellikleri açıklar.
    • Bileşenler. Cihaz modeli, cihaz özelliklerini açıklamak için kök bileşene ek olarak bileşenler içerebilir. Bu senaryoda yalnızca kök bileşeni kullanarak Bağlan kahve makinesi modelini tanımlayacaksınız.
    • Devralınan arabirimler. Cihaz modeli, kök bileşenin özelliklerini genişleten bir veya daha fazla arabirim içerir. Bu senaryoda, yalnızca bir arabirim tanımlayacaksınız.
  • Görünümler. Cihaz şablonunun bu bölümü, cihazdan verileri görüntülemek için görselleştirmeler ve kahve makinesini yönetmek ve denetlemek için formlar tanımlamanızı sağlar.

Bir cihaz şablonu oluşturduktan sonra simülasyon cihazı bağlayabilirsiniz. Sanal cihaz, gerçek bir cihazı bağlamadan önce uygulamanızın davranışını test edebilmeniz için telemetri oluşturur.

Burada cihaz modelinde telemetri, özellik ve komut tanımlarının nasıl belirtildiğini ve IoT özellikli kahve makineleri örneğinde cihazları yönetmek ve denetlemek için gereken bulut özellikleri ve görünümlerini göreceksiniz.

Telemetri

Telemetri, cihazınızdan akışla gelen verilerdir. Cihaz şablonunuza cihazınızın özellikleriyle eşleşecek şekilde birden fazla telemetri türü ekleyebilirsiniz. Kahve makinesi, algılayıcılarından havadaki nem oranı ve su sıcaklık değerlerini gönderir. Ayrıca, şu anda demlenip hazırlanmadığına ve bir fincan algılandığında durum bilgisi gönderir.

Özellikler

Yapılandırma verilerini bir cihazla uygulamanız arasında paylaşmak için özellikleri kullanın.

Bu senaryoda, en uygun su sıcaklığını ayarlamak ve bunu kahve makinesine göndermek için yazılabilir özelliğini kullanırsınız. Yazılabilir özelliği IoT Central’da güncelleştirildiğinde, cihaz güncelleştirmeye yanıt verdiğini onaylayana kadar bu özellik kullanıcı arabiriminde beklemede olarak işaretlenir.

Cihazın uygulamanıza değerler göndermesini sağlamak için salt okunur özelliklerini kullanabilirsiniz. Salt okunur özellikleri yalnızca cihaz tarafından değiştirilebilir. Bu senaryoda, cihaz şablonunda adlı Device Warranty Expired salt okunur bir cihaz özelliği tanımlarsınız. Kahve Device Warranty Expired makinesi IoT Central'a bağlanana kadar alan boş kalır. Bağlantı kurulduktan sonra kahve makinesi garanti durumunu uygulamaya gönderir.

Bulut özellikleri, cihazla ilişkili cihaz meta verileridir. IoT Central uygulamanıza cihazınızla ilgili bilgileri kaydetmek için bulut özelliklerini kullanın. Bu senaryoda, bulut özelliklerini kullanarak kahve makinesinin ideal su sıcaklığı aralığını kaydedersiniz. Bulut özellikleri IoT Central uygulamasında depolanır ve cihazla eşitlenmez.

Komutlar

Cihazınızı uygulamanızdan uzaktan yönetmek için komutları kullanın. Cihazı denetlemek için komutları doğrudan buluttan çalıştırabilirsiniz. Bu senaryoda, kahve makinenizde komut çalıştırarak makineyi bakım moduna alacak veya kahve hazırlamaya başlayacaksınız.

Görünümler

Cihaz şablonuyla ilişkili cihazların yönetilmesi ve izlenmesi için IoT Central’ın görüntülediği kullanıcı arabirimini özelleştirebilirsiniz. Bu senaryoda, cihazdan gönderilen telemetri değerlerini çizmek için bir görünüm ve cihaz özelliklerini yönetmek için bir form oluşturursunuz.

Bağlan kahve makinesi modeli

Cihaz modeli, cihaz şablonunun bir cihazın desteklediği telemetriyi, özellikleri ve komutları tanımlayan bölümüdür. Cihaz özelliği modelini bir JSON dosyasında depolayıp IoT Central’a aktarabilirsiniz. Aşağıdaki JSON, bağlı kahve makinesi için cihaz özelliği modelidir.

{
    "@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"
    ]
}
  • @id alanı, modelin Dijital İkiz Model Tanımlayıcısı (DTMI) biçimindedirdtmi:<domain>:<unique-model-identifier>;<model-version-number>.
  • , @type açıklanan bilgi türünü tanımlar. Örneğin, "@type": "Interface" Dijital İkiz Tanım Dili (DTDL) varlığının türünü belirtmek için kullanılır. Bu durumda varlık bir Interface'dir.
  • alanı contents bir öznitelik tanımları dizisidir. Her öznitelik, açıklandığı arabirim bilgilerinin türünü tanımlamak için bir @type sağlamalıdır. Bu durumda, Telemetry, Propertyve Command nesneleri bağlı kahve makinesinin özelliklerini açıklar.
  • alanı displayName , farklı dillerde arabirim veya varlık için insan tarafından okunabilir bir ad sağlayan bir nesnedir. Bu durumda, arabirim displayName İngilizcedir Connected Coffee Maker .
  • alanı @context , arabirimin veya varlığın tanımlandığı DTDL bağlamını belirtmek için kullanılır. Bu durumda ve dtdl bağlamlarına iotcentral başvurur.
  • alanı name , Propertyveya Commandiçin Telemetrybenzersiz bir tanımlayıcıdır.
  • Her telemetri alanı ölçümleri veya olayları temsil eder ve genellikle cihaz algılayıcısı okumalarını açıklamak için kullanılır. Örneğin, Water Temperatureschemadouble bir ve unit bir vardır.degreeCelsius decimalPlaces, maxValueve minValue alanları telemetri verileri hakkında daha fazla ayrıntı belirtir.
  • Her özellik alanı bir varlığın durumunu temsil eder. Örneğin, Device Warranty Expired boole türündedir ve bağlı cihaz tarafından durumunun true veya false olarak ayarlanmasını sağlayabilir.
  • alanı, writable özelliğin IoT Central uygulamasından ayarlanıp ayarlanamayacağını belirtir. Bu durumda, Optimal Temperature uygulama kullanıcı arabiriminden ayarlanabilir, Device Warranty Expired ancak ayarlanamaz.
  • Bir özelliğin Cloud türleri listesinde varsa, bu bir Cloud Özelliğidir. Bu durumda Coffee Maker Min Temperature ve Coffee Maker Max Temperature bulut özellikleridir.
  • Her komut alanı, cihazın gerçekleştirebileceği bir eylemi açıklar. Örneğin, Start Brewing bulutunun kahve hazırlamaya başlamak için cihaza gönderebileceği bir komutdur.
  • commandType alanı, komutun zaman uyumlu (yanıt bekler) veya zaman uyumsuz (yanıt beklemez) olduğunu belirtir.

Bilgilerinizi kontrol edin

1.

Bağlan kahve makinesi modelinde kaç telemetri özelliği tanımlanmıştır?

2.

Doğru veya yanlış: En uygun Sıcaklık yazılabilir bir özelliktir.

3.

Doğru veya yanlış: Bağlı kahve makinesi StartBrewing komutunu kullanarak uzaktan demlenmeye başlayabilir.