Kurz: Přidání skutečného zařízení do aplikace Azure IoT CentralTutorial: Add a real device to your Azure IoT Central application

V tomto kurzu se naučíte, jak přidat skutečné zařízení do aplikace Microsoft Azure IoT Central a nakonfigurovat ho.This tutorial shows you how to add and configure a real device to your Microsoft Azure IoT Central application.

Tento kurz se skládá ze dvou částí:This tutorial is made up of two parts:

  1. Nejprve se jako operátor naučíte přidat skutečné zařízení do aplikace Azure IoT Central a nakonfigurovat ho.First, as an operator, you learn how to add and configure a real device in your Azure IoT Central application. Na konci této části načtete připojovací řetězec, který použijete v druhé části.At the end of this part, you retrieve a connection string to use in the second part.
  2. Potom se jako vývojář zařízení dozvíte informace o kódu ve skutečném zařízení.Then, as a device developer, you learn about the code in your real device. Přidáte připojovací řetězec z první části do vzorového kódu.You add the connection string from the first part to the sample code.

V tomto kurzu se naučíte:In this tutorial, you learn how to:

  • Přidat nové skutečné zařízeníAdd a new real device
  • Nakonfigurovat skutečné zařízeníConfigure the real device
  • Získat připojovací řetězec pro skutečné zařízení z aplikaceGet connection string for real device from the application
  • Porozumět, jak se klientský kód mapuje k aplikaciUnderstand how client code maps to the application
  • Nakonfigurovat klientský kód pro skutečné zařízeníConfigure client code for the real device

PožadavkyPrerequisites

Než se pustíte do práce, měl by tvůrce dokončit minimálně první kurz pro tvůrce a vytvořit aplikaci Azure IoT Central:Before you begin, the builder should complete at least the first builder tutorial to create the Azure IoT Central application:

Přidání skutečného zařízeníAdd a real device

Pokud chcete přidat skutečné zařízení do aplikace, použijete šablonu zařízení Connected Air Conditioner (Připojené klimatizační zařízení), kterou jste vytvořili v kurzu Definování nového typu zařízení.To add a real device to your application, you use the Connected Air Conditioner device template you created in the Define a new device type tutorial.

  1. Pokud chcete nové zařízení přidat jako operátor, zvolte v levé navigační nabídce možnost Device Explorer:To add a new device as an operator choose Device Explorer in the left navigation menu:

    Stránka Device Explorer zobrazující připojené klimatizační zařízení

    Device Explorer zobrazuje šablonu zařízení Connected Air Conditioner a simulované zařízení, které se automaticky vytvořilo při vytváření šablony zařízení tvůrcem.The Device Explorer shows the Connected Air Conditioner device template and the simulated device that was automatically created when the builder created the device template.

  2. Pokud chcete začít s připojením skutečného klimatizačního zařízení, zvolte New (Nové) a potom Real (Skutečné):To start connecting a real connected air conditioner device, choose New, then Real:

    Zahájení přidávání nového skutečného klimatizačního zařízení

  3. Zadejte ID zařízení (musí být malými písmeny) nebo použijte navrhované ID zařízení. Můžete také zadat název nového zařízení a zvolit Create (Vytvořit).Enter the Device Id (should be lower case) or use the suggested Device Id. You can also enter the name for your new device and choose Create.

    Přejmenování zařízení

Konfigurace skutečného zařízeníConfigure a real device

Skutečné zařízení se vytvoří ze šablony Connected Air Conditioner.The real device is created from the Connected Air Conditioner device template. Na stránce Settings (Nastavení) můžete nakonfigurovat zařízení a nastavit hodnoty vlastností pro záznam informací o zařízení.You can use Settings to configure your device and set property values to record information about your device.

  1. Na stránce Settings si všimněte, že stav nastavení Set temperature (Nastavit teplotu) je no update (Bez aktualizace).On the Settings page, notice that the Set Temperature setting status is no update. Tento stav zůstává beze změny až do té doby, než se skutečné zařízení připojí k aplikaci a potvrdí, že na nastavení reaguje.It stays in this state until the real device connects to the application and acknowledges that it has acted on the setting.

    Nastavení zobrazující synchronizaci

  2. Na stránce Properties (Vlastnosti) nového, skutečného a připojeného klimatizačního zařízení jsou umístění služby i datum poslední údržby upravitelné vlastnosti zařízení.On the Properties page for your new, real connected air conditioner device, location of service and the last service date are both editable properties of the device. Pole se sériovým číslem a verzí firmwaru budou prázdné, dokud se zařízení nepřipojí k aplikaci.The serial number and firmware version fields are empty until the device is connected to the application. Jedná se o hodnoty jen pro čtení, které se odesílají ze zařízení, a nelze je upravit.These are read-only values that are sent from the device and cannot be edited.

    Vlastnosti skutečného zařízení

  3. Pro své skutečné zařízení můžete zobrazit stránky Measurements (Měření), Rules (Pravidla) a Dashboard (Řídicí panel).You can view the Measurements, Rules, and Dashboard pages for your real device.

Vygenerování připojovacího řetězce pro skutečné zařízení v aplikaciGenerate connection string for real device from application

Vývojář zařízení musí vložit připojovací řetězec pro skutečné zařízení do kódu, který běží na zařízení.A device developer needs to embed the connection string for your real device in the code that runs on the device. Připojovací řetězec umožňuje, aby se zařízení bezpečně připojilo k aplikaci Azure IoT Central.The connection string enables the device to connect securely to your Azure IoT Central application. Připojovací řetězec vygenerujete v rámci přípravy klientského kódu Node.js v dalších krocích.You generate the connection string as part of preparing the client code written in Node.js in the next steps. Aplikace Node.js představuje skutečnou připojenou klimatizaci.The Node.js application represents the real connected air conditioner.

Příprava klientského kóduPrepare the client code

Ukázkový kód v tomto článku je napsán v Node.js a zobrazuje dostatečnou část kódu k tomu, abyste mohli provést tyto akce:The example code in this article is written in Node.js and shows just enough code to:

  • Připojit zařízení k aplikaci Azure IoT CentralConnect as a device to your Azure IoT Central application.
  • Odeslat teplotní telemetrii jako připojené klimatizační zařízeníSend temperature telemetry as a connected air conditioner device.
  • Odeslat vlastnosti zařízení do aplikace Azure IoT CentralSend device properties to your Azure IoT Central application.
  • Odpovědět operátorovi, který používá nastavení Set TemperatureRespond to an operator who uses the Set Temperature setting.
  • Zpracovat příkaz Echo z aplikace Azure IoT CentralHandle the Echo command from your Azure IoT Central application.

Články s postupy, na které najdete odkazy v části Další kroky, poskytují kompletnější ukázky a předvádí použití ostatních programovacích jazyků.The "How to" articles referenced in the Next Steps section provide more complete samples and show the use of other programming languages. Další informace o tom, jak se zařízení připojují k aplikaci Azure IoT Central, najdete v článku věnovaném možnostem připojení zařízení.For more information about how devices connect to Azure IoT Central, see the Device connectivity article.

Následující postup popisuje, jak připravit ukázku Node.js:The following steps show how to prepare the Node.js sample:

  1. Na počítač nainstalujte Node.js verze 4.0.x nebo novější.Install Node.js version 4.0.x or later in your machine. Node.js je k dispozici pro širokou škálu operačních systémů.Node.js is available for a wide variety of operating systems.

  2. Na počítači vytvořte složku s názvem connectedairconditioner.Create a folder called connectedairconditioner on your machine.

  3. V prostředí příkazového řádku přejděte na složku connectedairconditioner, kterou jste vytvořili.In your command-line environment, navigate to the connectedairconditioner folder you created.

  4. Pomocí následujícího příkazu nainstalujte generátor klíčů DPS:Install the DPS key generator by using the following command:

    npm i -g dps-keygen
    

    Další informace o nástroji příkazového řádku najdete zde.Learn more about the command line tool here.

  5. Z GitHubu stáhněte nástroj dps_cstr a rozbalte ho (v případě Windows).Download and unzip (Windows) the dps_cstr tool from GitHub

    Nezapomeňte zvolit verzi, která odpovídá vaší platformě.Make sure you choose the one that matches your platform. Pokud například používáte Windows, vaše složka by teď měla obsahovat soubory dll a dps_cstr.exe.For example, on Windows the dps_cstr.exe and the dll files should be now available in your folder.

  6. Připojovací řetězec pro instanci zařízení ve vaší aplikaci se vygeneruje z informací o zařízení, které poskytuje IoT Central.The connection string for a device instance in your application is generated from device information provided by the IoT Central.

    Vraťte se na portál IoT Central.Return to the IoT Central portal. Na obrazovce zařízení skutečné připojené klimatizace zvolte Connect (Připojit).On the device screen for your real connected air conditioner, choose Connect.

    Stránka zařízení s odkazem pro zobrazení informací o připojení

  7. Na stránce Device Connection (Připojení zařízení) zkopírujte hodnoty Scope ID (ID oboru), Device ID (ID zařízení) a Primary Key (Primární klíč), vložte je do textového editoru a pak je uložte.On the Device Connection page, copy and paste Scope ID, Device ID and Primary Key on to a text editor, then save. Tyto hodnoty použijete v dalším kroku.You use these values in the next step.

    Podrobnosti připojení

  8. Vraťte se do prostředí příkazového řádku a spuštěním následujícího příkazu vygenerujte připojovací řetězec:Return to the command line environment and generate your connection string by executing:

    dps_cstr <scope_id> <device_id> <Primary Key>
    

    Výstup zkopírujte a uložte do nového souboru (například connection.txt).Copy the output and save in a new file (for example, connection.txt).

  9. Pokud chcete inicializovat projekt Node.js, spusťte následující příkaz a přijměte všechny výchozí hodnoty:To initialize your Node.js project, run the following command accepting all the defaults:

     npm init
    
  10. Potřebné balíčky nainstalujte spuštěním následujícího příkazu:To install the necessary packages, run the following command:

    npm install azure-iot-device azure-iot-device-mqtt --save
    
  11. V textovém editoru vytvořte soubor s názvem ConnectedAirConditioner.js ve složce connectedairconditioner.Using a text editor, create a file called ConnectedAirConditioner.js in the connectedairconditioner folder.

  12. Na začátek souboru ConnectedAirConditioner.js přidejte následující příkazy require:Add the following require statements at the start of the ConnectedAirConditioner.js file:

    'use strict';
    
    var clientFromConnectionString = require('azure-iot-device-mqtt').clientFromConnectionString;
    var Message = require('azure-iot-device').Message;
    var ConnectionString = require('azure-iot-device').ConnectionString;
    
  13. Do souboru přidejte následující deklarace proměnných:Add the following variable declarations to the file:

    var connectionString = '{your device connection string}';
    var targetTemperature = 0;
    var client = clientFromConnectionString(connectionString);
    

    Poznámka

    Zástupný symbol {your device connection string} aktualizujete později.You update the placeholder {your device connection string} in a later step.

  14. Uložte změny, které jste až dosud provedli, ale ponechejte soubor otevřený.Save the changes you have made so far, but keep the file open.

Jak se klientský kód mapuje k aplikaciUnderstand how client code maps to the application

V předchozí části jste vytvořili kostru projektu Node.js pro aplikaci, která se připojuje k aplikaci Azure IoT Central.In the previous section, you created a skeleton Node.js project for an application that connects to your Azure IoT Central application. V této části přidáte kód, abyste mohli provést tyto akce:In this section, you add the code to:

  • Připojit se k aplikaci Azure IoT CentralConnect to your Azure IoT Central application.
  • Odeslat telemetrii do aplikace Azure IoT CentralSend telemetry to your Azure IoT Central application.
  • Odeslat vlastnosti zařízení do aplikace Azure IoT CentralSend device properties to your Azure IoT Central application.
  • Přijmout nastavení z aplikace Azure IoT CentralReceive settings from your Azure IoT Central application.
  • Zpracovat příkaz Echo z aplikace Azure IoT CentralHandle the Echo command from your Azure IoT Central application.
  1. Pokud chcete odeslat telemetrii do aplikace Azure IoT Central, přidejte následující kód do souboru ConnectedAirConditioner.js:To send temperature telemetry to your Azure IoT Central application, add the following code to the ConnectedAirConditioner.js file:

    // Send device telemetry.
    function sendTelemetry() {
      var temperature = targetTemperature + (Math.random() * 15);
      var data = JSON.stringify({ temperature: temperature });
      var message = new Message(data);
      client.sendEvent(message, (err, res) => console.log(`Sent message: ${message.getData()}` +
        (err ? `; error: ${err.toString()}` : '') +
        (res ? `; status: ${res.constructor.name}` : '')));
    }
    

    Název pole v JSON, který odesíláte, musí odpovídat názvu pole zadaného pro teplotní telemetrii v šabloně zařízení.The name of the field in the JSON you send must match the name of the field you specified for temperature telemetry in your device template. V tomto příkladu se pole nazývá temperature (Teplota).In this example, the name of the field is temperature.

  2. Abyste mohli odeslat vlastnosti zařízení, jako je firmwareVersion (verze firmwaru) a serialNumber (sériové číslo), přidejte následující definici:To send the device properties such as firmwareVersion and serialNumber, add the following definition:

    // Send device properties
    function sendDeviceProperties(twin) {
      var properties = {
        firmwareVersion: "9.75",
        serialNumber: "10001"
      };
      twin.properties.reported.update(properties, (errorMessage) => 
        console.log(` * Sent device properties ` + (errorMessage ? `Error: ${errorMessage.toString()}` : `(success)`)));
    }
    
  3. Pokud chcete definovat nastavení, které vaše zařízení podporuje, například setTemperature, přidejte následující definici:To define the settings your device supports, such as setTemperature, add the following definition:

    // Add any settings your device supports
    // mapped to a function that is called when the setting is changed.
    var settings = {
      'setTemperature': (newValue, callback) => {
        // Simulate the temperature setting taking two steps.
        setTimeout(() => {
          targetTemperature = targetTemperature + (newValue - targetTemperature) / 2;
          callback(targetTemperature, 'pending');
          setTimeout(() => {
            targetTemperature = newValue;
            callback(targetTemperature, 'completed');
          }, 5000);
        }, 5000);
      }
    };
    
  4. Abyste mohli zpracovat nastavení odeslaná z aplikace Azure IoT Central, přidejte následující funkci, která vyhledá a spustí příslušný kód zařízení:To handle settings sent from Azure IoT Central, add the following function that locates and executes the appropriate device code:

    // Handle settings changes that come from Azure IoT Central via the device twin.
    function handleSettings(twin) {
      twin.on('properties.desired', function (desiredChange) {
        for (let setting in desiredChange) {
          if (settings[setting]) {
            console.log(`Received setting: ${setting}: ${desiredChange[setting].value}`);
            settings[setting](desiredChange[setting].value, (newValue, status, message) => {
              var patch = {
                [setting]: {
                  value: newValue,
                  status: status,
                  desiredVersion: desiredChange.$version,
                  message: message
                }
              }
              twin.properties.reported.update(patch, (err) => console.log(`Sent setting update for ${setting}; ` +
                (err ? `error: ${err.toString()}` : `status: success`)));
            });
          }
        }
      });
    }
    

    Tato funkce:This function:

    • sleduje odeslání požadované vlastnosti z aplikace Azure IoT Central,Watches for Azure IoT Central sending a desired property.
    • vyhledá příslušnou funkci, která se má zavolat, aby se zpracovala změna nastavení,Locates the appropriate function to call to handle the setting change.
    • odešle potvrzení zpět do aplikace Azure IoT Central.Sends an acknowledgement back to your Azure IoT Central application.
  5. Pokud chcete z aplikace Azure IoT Central reagovat na příkaz, jako je echo, přidejte následující definici:To respond to a command such as echo from your Azure IoT Central application, add the following definition:

    // Respond to the echo command
    function onCommandEcho(request, response) {
      // Display console info
      console.log(' * Echo command received');
      // Respond
      response.send(10, 'Success', function (errorMessage) {});
    }
    
  6. Přidejte následující kód, abyste dokončili připojení k aplikaci Azure IoT Central a připojili funkce v klientském kódu:Add the following code to complete the connection to Azure IoT Central and hook up the functions in the client code:

    // Handle device connection to Azure IoT Central.
    var connectCallback = (err) => {
      if (err) {
        console.log(`Device could not connect to Azure IoT Central: ${err.toString()}`);
      } else {
        console.log('Device successfully connected to Azure IoT Central');
        // Send telemetry measurements to Azure IoT Central every 1 second.
        setInterval(sendTelemetry, 1000);
        // Setup device command callbacks
        client.onDeviceMethod('echo', onCommandEcho);
        // Get device twin from Azure IoT Central.
        client.getTwin((err, twin) => {
          if (err) {
            console.log(`Error getting device twin: ${err.toString()}`);
          } else {
            // Send device properties once on device start up
            sendDeviceProperties(twin);
            // Apply device settings and handle changes to device settings.
            handleSettings(twin);
          }
        });
      }
    };
    
    client.open(connectCallback);
    
  7. Uložte změny, které jste až dosud provedli, ale ponechejte soubor otevřený.Save the changes you have made so far, but keep the file open.

Nakonfigurovat klientský kód pro skutečné zařízeníConfigure client code for the real device

Pokud chcete nakonfigurovat klientský kód na připojení k aplikaci Azure IoT Central, musíte přidat připojovací řetězec skutečného zařízení, který jste si poznamenali v předchozí části tohoto kurzu. To configure your client code to connect to your Azure IoT Central application, you need to add the connection string for your real device that you noted earlier in this tutorial.

  1. V souboru ConnectedAirConditioner.js vyhledejte následující řádek kódu:In the ConnectedAirConditioner.js file, find the following line of code:

    var connectionString = '{your device connection string}';
    
  2. Nahraďte řetězec {your device connection string} připojovacím řetězcem skutečného zařízení.Replace {your device connection string} with the connection string of your real device. Připojovací řetězec jste si uložili dříve do textového editoru.You saved the connection string earlier in a text editor.

  3. Uložte změny v souboru ConnectedAirConditioner.js.Save the changes to the ConnectedAirConditioner.js file.

  4. Ukázku spustíte tak, že v prostředí příkazového řádku spustíte následující příkaz:To run the sample, enter the following command in your command-line environment:

    node ConnectedAirConditioner.js
    

    Poznámka

    Zkontrolujte, že se nacházíte ve složce connectedairconditioner, když spouštíte tento příkaz.Make sure you are in the connectedairconditioner folder when you run this command.

  5. Aplikace zobrazí výstup do konzoly:The application prints output to the console:

    Výstup klientské aplikace

  6. Přibližně po 30 sekundách uvidíte telemetrii na stránce zařízení Measurements:After about 30 seconds, you see the telemetry on the device Measurements page:

    Skutečná telemetrie

  7. Na stránce Settings uvidíte, že nastavení je nyní synchronizováno.On the Settings page, you can see the setting is now synchronized. Při prvním připojení zařízení obdrželo hodnotu nastavení a potvrdilo změnu:When the device first connected, it received the setting value and acknowledged the change:

    Nastavení synchronizováno

  8. Na stránce Settings nastavte teplotu zařízení na 95 a zvolte Update device (Aktualizovat zařízení).On the Settings page, set the device temperature to 95 and choose Update device. Ukázková aplikace obdrží tuto změnu a zpracuje ji:Your sample application receives and processes this change:

    Příjem a zpracování nastavení

    Poznámka

    Existují dvě zprávy týkající se aktualizace nastavení.There are two "setting update" messages. Jedna zpráva se používá při odeslání stavu pending a druhá při odeslání stavu completed.One when the pending status is sent and one when the completed status is sent.

  9. Na stránce Measurements si můžete všimnout, že zařízení posílá vyšší teplotní hodnoty:On the Measurements page you can see that the device is sending higher temperature values:

    Teplotní telemetrie je nyní vyšší.

Další krokyNext steps

V tomto kurzu jste se naučili:In this tutorial, you learned how to:

  • Přidat nové skutečné zařízeníAdd a new real device
  • Nakonfigurovat nové zařízeníConfigure the new device
  • Získat připojovací řetězec pro skutečné zařízení z aplikaceGet connection string for real device from the application
  • Porozumět, jak se klientský kód mapuje k aplikaciUnderstand how client code maps to the application
  • Nakonfigurovat klientský kód pro skutečné zařízeníConfigure client code for the real device

Nyní, když máte skutečné zařízení připojeno k aplikaci Azure IoT Central, můžete přejít k dalším navrhovaným krokům:Now that you have connected a real device to your Azure IoT Central application, here are the suggested next steps:

Jako operátor se naučíte tyto postupy:As an operator, you can learn how to:

Jako vývojář zařízení se naučíte tyto postupy:As a device developer, you can learn how to: