Definiowanie szablonu urządzenia do kawy

Ukończone

Szablon urządzenia w usłudze Azure IoT Central to strategia, która definiuje cechy i zachowania typu urządzenia, które łączy się z aplikacją. Na przykład szablon urządzenia definiuje dane telemetryczne wysyłane przez urządzenie, dzięki czemu usługa IoT Central może tworzyć wizualizacje używające prawidłowych jednostek i typów danych.

Szablon urządzenia zawiera następujące sekcje:

  • Model urządzenia. Dane wymieniane przez symulator ekspresu do kawy z aplikacją są określone w modelu urządzenia.
    • Składnik główny. Interfejs głównego składnika opisuje możliwości specyficzne dla modelu urządzenia.
    • Elementy. Model urządzenia może zawierać składniki oprócz składnika głównego w celu opisania możliwości urządzenia. W tym scenariuszu użyjesz tylko składnika głównego do zdefiniowania Połączenie modelu ekspresu do kawy.
    • Dziedziczone interfejsy. Model urządzenia zawiera co najmniej jeden interfejs, który rozszerza możliwości składnika głównego. W tym scenariuszu zdefiniujesz tylko jeden interfejs.
  • Wyświetlenia. Ta część szablonu urządzenia umożliwia definiowanie wizualizacji w celu wyświetlania danych z urządzenia oraz formularzy do zarządzania ekspresem do kawy i sterowania nim.

Po utworzeniu szablonu urządzenia można połączyć urządzenie symulowane. Symulowane urządzenie generuje dane telemetryczne, aby można było przetestować zachowanie aplikacji przed połączeniem rzeczywistego urządzenia.

W tym miejscu zobaczysz, jak definicje danych telemetrycznych, właściwości i poleceń są określone w modelu urządzenia oraz właściwości i widoki w chmurze potrzebne do zarządzania urządzeniami i kontrolowania ich w przykładzie ekspresów do kawy z włączoną obsługą IoT.

Telemetria

Dane telemetryczne to dane przesyłane strumieniowo z urządzenia. Do szablonu urządzenia możesz dodać wiele typów danych telemetrycznych odpowiadających możliwościom urządzenia. Ekspres do kawy wysyła wartości wilgotności powietrza i temperatury wody odczytywane ze swoich czujników. Wysyła również informacje o stanie, czy jest obecnie warzony i kiedy zostanie wykryty kubek.

Właściwości

Użyj właściwości, aby udostępniać dane konfiguracji między urządzeniem a aplikacją.

W tym scenariuszu do ustawiania optymalnej temperatury wody i wysyłania jej wartości do ekspresu do kawy jest używana właściwość z możliwością zapisu. Po zaktualizowaniu właściwości z możliwością zapisu w usłudze IoT Central jest ona oznaczana jako oczekująca w interfejsie użytkownika, dopóki z urządzenia nie nadejdzie potwierdzenie, że ustawienia zostały wprowadzone.

Właściwości tylko do odczytu umożliwiają urządzeniu wysyłanie wartości do aplikacji. Właściwości tylko do odczytu mogą być zmieniane tylko przez urządzenie. W tym scenariuszu zdefiniujesz właściwość urządzenia tylko do odczytu o nazwie Device Warranty Expired w szablonie urządzenia. Pole Device Warranty Expired pozostaje puste, dopóki ekspres do kawy nie zostanie połączony z usługą IoT Central. Po nawiązaniu połączenia ekspres do kawy wyśle stan gwarancji do aplikacji.

Właściwości chmury to metadane urządzenia skojarzone z urządzeniem. Użyj właściwości chmury, aby rejestrować informacje o urządzeniu w aplikacji usługi IoT Central. W tym scenariuszu używasz właściwości chmury do rejestrowania idealnego zakresu temperatur dla ekspresu do kawy. Właściwości chmury są przechowywane w aplikacji usługi IoT Central i nie są synchronizowane z urządzeniem.

Polecenia

Użyj poleceń, aby zdalnie zarządzać urządzeniem z poziomu aplikacji. Polecenia można uruchamiać z chmury bezpośrednio na urządzeniu i sterować nim. W tym scenariuszu uruchamiasz polecenia na ekspresie do kawy, aby ustawić go w tryb konserwacji lub rozpocząć parzenie.

Widoki

Można dostosować interfejs użytkownika, który usługa IoT Central wyświetla na potrzeby monitorowania urządzeń skojarzonych z szablonem urządzenia oraz zarządzania nimi. W tym scenariuszu utworzysz widok służący do wykreślania wartości telemetrycznych wysyłanych z urządzenia i utworzysz formularz służący do zarządzania właściwościami urządzenia.

Połączenie modelu ekspresu do kawy

Model urządzenia to część szablonu urządzenia, która definiuje dane telemetryczne, właściwości i polecenia obsługiwane przez urządzenie. Model możliwości urządzenia można przechowywać w pliku JSON i importować go do usługi IoT Central. Poniższy kod JSON to model możliwości urządzenia dla połączonego ekspresu do kawy.

{
    "@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"
    ]
}
  • Pole @id to identyfikator modelu cyfrowej reprezentacji bliźniaczej (DTMI) dla modelu w formacie dtmi:<domain>:<unique-model-identifier>;<model-version-number>.
  • Element @type określa rodzaj opisywanych informacji. Na przykład "@type": "Interface" służy do wskazywania typu jednostki Digital Twin Definition Language (DTDL). W takim przypadku jednostka jest .Interface
  • Pole contents jest tablicą definicji atrybutów. Każdy atrybut musi podać element , @type aby zidentyfikować informacje o interfejsie, które opisuje. W tym przypadku obiekty Telemetry, Propertyi Command opisują funkcje połączonego ekspresu do kawy.
  • Pole displayName jest obiektem, który zapewnia czytelną dla człowieka nazwę interfejsu lub jednostki w różnych językach. W tym przypadku interfejs displayName jest Connected Coffee Maker w języku angielskim.
  • Pole @context służy do określania kontekstu DTDL, w którym zdefiniowano interfejs lub jednostkę. W tym przypadku odwołuje się iotcentral do kontekstów i .dtdl
  • Pole name jest unikatowym identyfikatorem elementu Telemetry, Propertylub Command.
  • Każde pole telemetrii reprezentuje pomiary lub zdarzenia i są często używane do opisywania odczytów czujników urządzenia. Na przykład Water Temperature element ma schema wartość i double z unitdegreeCelsius. Pola decimalPlaces, maxValuei minValue określają więcej szczegółów dotyczących danych telemetrycznych.
  • Każde pole właściwości reprezentuje stan jednostki. Na przykład Device Warranty Expired jest typu wartość logiczna i może mieć jego stan ustawiony przez połączone urządzenie jako true lub false.
  • Pole writable określa, czy właściwość można ustawić z aplikacji usługi IoT Central. W takim przypadku Optimal Temperature można ustawić z poziomu interfejsu użytkownika aplikacji, ale Device Warranty Expired nie może.
  • Jeśli właściwość znajduje się Cloud na liście typów, jest to właściwość chmury. W tym przypadku Coffee Maker Min Temperature i Coffee Maker Max Temperature są właściwościami chmury.
  • Każde pole polecenia opisuje akcję, którą urządzenie może wykonać. Na przykład to polecenie, Start Brewing które chmura może wysłać do urządzenia, aby rozpocząć zaparzanie kawy.
  • Pole commandType określa, czy polecenie jest synchroniczne (czeka na odpowiedź), czy asynchroniczne (nie czeka na odpowiedź).

Sprawdź swoją wiedzę

1.

Ile możliwości telemetrii jest zdefiniowanych w modelu Połączenie ekspresu do kawy?

2.

Prawda czy fałsz: Optymalna temperatura jest właściwością zapisywalną.

3.

Prawda czy fałsz: połączony ekspres do kawy może rozpocząć zaparzanie zdalnie przy użyciu polecenia StartBrewing.