Tutorial? Conectar um aplicativo de exemplo do dispositivo do IoT Plug and Play no Linux ou no Windows ao Hub IoT

Este tutorial mostra como criar um aplicativo de exemplo do dispositivo IoT Plug and Play, conectá-lo ao hub IoT e usar a ferramenta do Explorer da Internet das Coisas do Azure para exibir a telemetria que ele envia. O aplicativo de exemplo é gravado em C e está incluído no SDK do dispositivo IoT do Azure para C. Um construtor de soluções pode usar a ferramenta do Azure IoT Explorer para compreender as funcionalidades de um dispositivo IoT Plug and Play sem a necessidade de ver nenhum código de dispositivo.

Procurar código

Pré-requisitos

Antes de continuar, não deixe de configurar seu ambiente, incluindo o hub IoT.

Você pode executar este tutorial no Linux ou no Windows. Os comandos do shell neste tutorial seguem a convenção do Linux para os separadores de caminho '/', se você está acompanhando no Windows, não deixe de trocar esses separadores por '\'.

Os pré-requisitos diferem por sistema operacional:

Linux

Este tutorial pressupõe que você esteja usando o Ubuntu Linux. As etapas deste tutorial foram testadas com o Ubuntu 18.04.

Para concluir este tutorial no Linux, instale o seguinte software em um ambiente Linux local:

Instale o GCC, o Git, o CMake e todas as dependências exigidas usando o comando apt-get:

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

Verifique se a versão do cmake é superior a 2.8.12 e se a versão do GCC é superior a 4.4.7.

cmake --version
gcc --version

Windows

Para concluir este tutorial no Windows, instale o seguinte software em seu ambiente Windows local:

Baixar o código

Neste tutorial, você vai preparar um ambiente de desenvolvimento que pode ser usado para clonar e compilar o SDK do C do dispositivo do Hub IoT do Azure.

Abra um prompt de comando no diretório de sua escolha. Execute o seguinte comando para clonar o repositório GitHub dos SDKs de C e Bibliotecas do IoT do Azure nesta localização:

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

Essa operação deve demorar alguns minutos.

Compilar o código

Você pode criar e executar o código usando o Visual Studio ou cmake na linha de comando.

Usar o Visual Studio

  1. Abra a pasta raiz do repositório clonado. Depois de alguns segundos, o suporte para CMake no Visual Studio cria tudo de que você precisa para executar e depurar o projeto.

  2. Quando o Visual Studio estiver pronto, em Gerenciador de Soluções, navegue até o iothub_client/samples/pnp/pnp_simple_thermostat/.

  3. Clique com o botão direito do mouse no arquivo pnp_simple_thermostat.c e selecione Adicionar Configuração de Depuração. Selecione Padrão.

  4. O Visual Studio abre o arquivo launch.vs.json. Edite esse arquivo conforme mostrado no snippet a seguir para definir as variáveis de ambiente necessárias. Você anotou a ID de escopo e a chave primária de registro ao concluir "Configurar um ambiente" nos inícios rápidos e nos tutoriais do IoT Plug and Play:

    {
      "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. Clique com o botão direito do mouse no arquivo pnp_simple_thermostat.c e selecione Definir como Item de Inicialização.

  6. Para rastrear a execução de código no Visual Studio, adicione um ponto de interrupção à função main no arquivo pnp_simple_thermostat.c.

  7. Agora você pode executar e depurar o exemplo no menu Depurar.

Agora, o dispositivo está pronto para receber comandos e atualizações de propriedade e começou a enviar dados telemétricos para o hub. Mantenha o exemplo em execução enquanto você conclui as próximas etapas.

Usar o cmake para criar o código

Use o utilitário de linha de comando cmake para criar o código:

  1. Crie um subdiretório cmake na pasta raiz do SDK do dispositivo e navegue até essa pasta:

    cd azure-iot-sdk-c
    mkdir cmake
    cd cmake
    
  2. Execute os seguintes comandos para criar o SDK e os exemplos:

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

Executar o exemplo de dispositivo

Em Configurar um ambiente, você criou quatro variáveis de ambiente para configurar o exemplo e usar o DPS (Serviço de Provisionamento de Dispositivos) para conectar-se ao hub IoT:

  • IOTHUB_DEVICE_SECURITY_TYPE com o valor DPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE com a ID de escopo do DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_ID com o valor my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY com a chave primária de registro.
  • IOTHUB_DEVICE_DPS_ENDPOINT com o valor global.azure-devices-provisioning.net.

Para saber mais sobre a configuração do exemplo, confira o leiame de exemplo.

Para executar um aplicativo de exemplo no SDK que simula um dispositivo IoT Plug and Play que envia telemetria ao Hub IoT:

Na pasta cmake, navegue até a pasta que contém o arquivo executável e execute-o:

# 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

Dica

Para rastrear a execução de código no Visual Studio no Windows, adicione um ponto de interrupção à função main no arquivo main.

Agora, o dispositivo está pronto para receber comandos e atualizações de propriedade e começou a enviar dados telemétricos para o hub. Mantenha o exemplo em execução enquanto você conclui as próximas etapas.

Usar o Azure IoT Explorer para validar o código

Após iniciar o exemplo de cliente do dispositivo, use a ferramenta Azure IoT Explorer para verificar se ele está funcionando.

  1. Abra o Explorador de IoT do Azure.

  2. Na página Hubs IoT, se você ainda não tiver adicionado uma conexão ao seu Hub IoT, selecione + Adicionar conexão. Insira a cadeia de conexão para o Hub IoT que você criou anteriormente e selecione Salvar.

  3. Na página Configurações de IoT Plug and Play, selecione + Adicionar > Pasta local e selecione a pasta local modelos em que você salvou os arquivos de modelo.

  4. Na página Hubs IoT, clique no nome do hub com o qual você deseja trabalhar. Você verá uma lista de dispositivos registrados no Hub IoT.

  5. Clique na ID do dispositivo do dispositivo que você criou anteriormente.

  6. O menu à esquerda mostra os diferentes tipos de informações disponíveis para o dispositivo.

  7. Selecione Componentes IoT Plug and Play para ver as informações de modelo do seu dispositivo.

  8. Você pode ver os vários componentes do dispositivo. O componente padrão e quaisquer componentes extras. Selecione um componente com o qual trabalhar.

  9. Selecione a página Telemetria e escolha Iniciar para ver os dados telemétricos que o dispositivo está enviando para esse componente.

  10. Selecione a página Propriedades (somente leitura) para ver as propriedades somente leitura relatadas para esse componente.

  11. Selecione a página Propriedades (graváveis) para ver as propriedades graváveis que podem ser atualizadas para esse componente.

  12. Selecione uma propriedade pelo respectivo nome, insira um novo valor para ela e selecione Atualizar o valor desejado.

  13. Para que o novo valor apareça, selecione o botão Atualizar.

  14. Selecione a página Comandos para ver todos os comandos para esse componente.

  15. Selecione o comando que você deseja testar e defina o parâmetro correspondente, se houver. Selecione Enviar comando para chamar o comando no dispositivo. É possível ver que o dispositivo responde ao comando na janela de prompt de comando em que o código de exemplo está sendo executado.

Examine o código

Este exemplo implementa um dispositivo termostato simples do IoT Plug and Play. O modelo de termostato não usa os componentes do IoT Plug and Play. O arquivo de modelo de DTDL para o dispositivo de termostato define a telemetria, as propriedades e os comandos que o dispositivo implementa.

O código do dispositivo usa a função padrão para se conectar ao seu hub IoT:

deviceHandle = IoTHubDeviceClient_CreateFromConnectionString(connectionString, MQTT_Protocol)

O dispositivo envia a ID de modelo do modelo de DTDL que ele implementa na solicitação de conexão. Um dispositivo que envia uma ID de modelo é um dispositivo IoT Plug and Play:

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

...

IoTHubDeviceClient_SetOption(deviceHandle, OPTION_MODEL_ID, modelId)

O código que atualiza propriedades, manipula comandos e envia telemetria é idêntico ao código de um dispositivo que não usa as convenções do IoT Plug and Play.

O código usa a biblioteca Parson para analisar objetos JSON nos conteúdos enviados do seu hub IoT:

// JSON parser
#include "parson.h"

Limpar os recursos

Se você tiver concluído os guias de início rápido e os tutoriais, confira Limpar recursos.

Este tutorial mostra como criar um aplicativo de exemplo do dispositivo IoT Plug and Play, conectá-lo ao hub IoT e usar a ferramenta do Explorer da Internet das Coisas do Azure para exibir a telemetria que ele envia. O aplicativo de exemplo é escrito em C# e está incluído no SDK do IoT do Azure para C#. Um construtor de soluções pode usar a ferramenta Azure IoT Explorer para compreender as funcionalidades de um dispositivo IoT Plug and Play sem a necessidade de ver nenhum código de dispositivo.

Procurar código

Pré-requisitos

Antes de continuar, não deixe de configurar seu ambiente, incluindo o hub IoT.

Você pode executar este tutorial no Linux ou no Windows. Os comandos do shell neste tutorial seguem a convenção do Linux para os separadores de caminho '/', se você está acompanhando no Windows, não deixe de trocar esses separadores por '\'.

Baixar o código

Neste tutorial, você vai preparar um ambiente de desenvolvimento que pode ser usado para clonar e criar o SDK do Internet das Coisas do Azure para o repositório C#.

Abra um prompt de comando em uma pasta de sua escolha. Execute o seguinte comando para clonar o repositório GitHub de SDK do Microsoft Azure IoT para C# (.NET) nesta localização:

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

Compilar o código

Agora você pode criar a amostra e executá-la. Execute os seguintes comandos para criar a amostra:

cd azure-iot-sdk-csharp/iothub/device/samples/solutions/PnpDeviceSamples/Thermostat
dotnet build

Executar o exemplo de dispositivo

Para executar a amostra, execute o seguinte comando:

dotnet run

Agora, o dispositivo está pronto para receber comandos e atualizações de propriedade e começou a enviar dados telemétricos para o hub. Mantenha o exemplo em execução enquanto você conclui as próximas etapas.

Usar o Azure IoT Explorer para validar o código

Após iniciar o exemplo de cliente do dispositivo, use a ferramenta Azure IoT Explorer para verificar se ele está funcionando.

  1. Abra o Explorador de IoT do Azure.

  2. Na página Hubs IoT, se você ainda não tiver adicionado uma conexão ao seu Hub IoT, selecione + Adicionar conexão. Insira a cadeia de conexão para o Hub IoT que você criou anteriormente e selecione Salvar.

  3. Na página Configurações de IoT Plug and Play, selecione + Adicionar > Pasta local e selecione a pasta local modelos em que você salvou os arquivos de modelo.

  4. Na página Hubs IoT, clique no nome do hub com o qual você deseja trabalhar. Você verá uma lista de dispositivos registrados no Hub IoT.

  5. Clique na ID do dispositivo do dispositivo que você criou anteriormente.

  6. O menu à esquerda mostra os diferentes tipos de informações disponíveis para o dispositivo.

  7. Selecione Componentes IoT Plug and Play para ver as informações de modelo do seu dispositivo.

  8. Você pode ver os vários componentes do dispositivo. O componente padrão e quaisquer componentes extras. Selecione um componente com o qual trabalhar.

  9. Selecione a página Telemetria e escolha Iniciar para ver os dados telemétricos que o dispositivo está enviando para esse componente.

  10. Selecione a página Propriedades (somente leitura) para ver as propriedades somente leitura relatadas para esse componente.

  11. Selecione a página Propriedades (graváveis) para ver as propriedades graváveis que podem ser atualizadas para esse componente.

  12. Selecione uma propriedade pelo respectivo nome, insira um novo valor para ela e selecione Atualizar o valor desejado.

  13. Para que o novo valor apareça, selecione o botão Atualizar.

  14. Selecione a página Comandos para ver todos os comandos para esse componente.

  15. Selecione o comando que você deseja testar e defina o parâmetro correspondente, se houver. Selecione Enviar comando para chamar o comando no dispositivo. É possível ver que o dispositivo responde ao comando na janela de prompt de comando em que o código de exemplo está sendo executado.

Examine o código

Este exemplo implementa um dispositivo termostato simples do IoT Plug and Play. O modelo que esse exemplo implementa não usa os componentes do IoT Plug and Play. O arquivo de modelo de DTDL (linguagem de definição de Gêmeos Digitais) do dispositivo termostato define a telemetria, as propriedades e os comandos que o dispositivo implementa.

O código do dispositivo se conecta ao hub IoT usando o método CreateFromConnectionString padrão. O dispositivo envia a ID de modelo do modelo de DTDL que ele implementa na solicitação de conexão. Um dispositivo que envia uma ID de modelo é um dispositivo 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}.");
  });
}

A ID do modelo é armazenada no código, conforme mostrado no seguinte snippet:

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

O código que atualiza propriedades, manipula comandos e envia telemetria é idêntico ao código de um dispositivo que não usa as convenções do IoT Plug and Play.

O exemplo usa uma biblioteca JSON para analisar objetos JSON nos conteúdos enviados do seu hub IoT:

using Newtonsoft.Json;

...

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

Limpar os recursos

Se você tiver concluído os guias de início rápido e os tutoriais, confira Limpar recursos.

Este tutorial mostra como criar um aplicativo de exemplo do dispositivo IoT Plug and Play, conectá-lo ao hub IoT e usar a ferramenta do Explorer da Internet das Coisas do Azure para exibir a telemetria que ele envia. O aplicativo de exemplo é escrito no Java e é incluído no SDK do dispositivo de IoT do Azure para Java. Um construtor de soluções pode usar a ferramenta Azure IoT Explorer para compreender as funcionalidades de um dispositivo IoT Plug and Play sem a necessidade de ver nenhum código de dispositivo.

Procurar código

Pré-requisitos

Antes de continuar, não deixe de configurar seu ambiente, incluindo o hub IoT.

Você pode executar este tutorial no Linux ou no Windows. Os comandos do shell neste tutorial seguem a convenção do Linux para os separadores de caminho '/', se você está acompanhando no Windows, não deixe de trocar esses separadores por '\'.

Para concluir este tutorial, instale o seguinte software em seu ambiente de desenvolvimento local:

Baixar o código

Neste tutorial, você preparará um ambiente de desenvolvimento que pode ser usado para clonar e compilar o SDK do Java do dispositivo do Hub IoT do Azure.

Abra um prompt de comando no diretório de sua escolha. Execute o seguinte comando para clonar o repositório GitHub dos SDKs de Java e as Bibliotecas de IoT do Azure nesta localização:

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

Compilar o código

Navegue até a pasta raiz da amostra de termostato no repositório do SDK do Java clonado e compile-o:

cd azure-iot-sdk-java/device/iot-device-samples/pnp-device-sample/thermostat-device-sample
mvn clean package

Executar o exemplo de dispositivo

Em Configurar um ambiente, você criou quatro variáveis de ambiente para configurar o exemplo e usar o DPS (Serviço de Provisionamento de Dispositivos) para conectar-se ao hub IoT:

  • IOTHUB_DEVICE_SECURITY_TYPE com o valor DPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE com a ID de escopo do DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_ID com o valor my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY com a chave primária de registro.
  • IOTHUB_DEVICE_DPS_ENDPOINT com o valor global.azure-devices-provisioning.net.

Para saber mais sobre a configuração do exemplo, confira o leiame de exemplo.

Na pasta /device/iot-device-samples/pnp-device-sample/thermostat-device-sample, execute o aplicativo:

mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.device.Thermostat"

Agora, o dispositivo está pronto para receber comandos e atualizações de propriedade e começou a enviar dados telemétricos para o hub. Mantenha o exemplo em execução enquanto você conclui as próximas etapas.

Usar o Azure IoT Explorer para validar o código

Após iniciar o exemplo de cliente do dispositivo, use a ferramenta Azure IoT Explorer para verificar se ele está funcionando.

  1. Abra o Explorador de IoT do Azure.

  2. Na página Hubs IoT, se você ainda não tiver adicionado uma conexão ao seu Hub IoT, selecione + Adicionar conexão. Insira a cadeia de conexão para o Hub IoT que você criou anteriormente e selecione Salvar.

  3. Na página Configurações de IoT Plug and Play, selecione + Adicionar > Pasta local e selecione a pasta local modelos em que você salvou os arquivos de modelo.

  4. Na página Hubs IoT, clique no nome do hub com o qual você deseja trabalhar. Você verá uma lista de dispositivos registrados no Hub IoT.

  5. Clique na ID do dispositivo do dispositivo que você criou anteriormente.

  6. O menu à esquerda mostra os diferentes tipos de informações disponíveis para o dispositivo.

  7. Selecione Componentes IoT Plug and Play para ver as informações de modelo do seu dispositivo.

  8. Você pode ver os vários componentes do dispositivo. O componente padrão e quaisquer componentes extras. Selecione um componente com o qual trabalhar.

  9. Selecione a página Telemetria e escolha Iniciar para ver os dados telemétricos que o dispositivo está enviando para esse componente.

  10. Selecione a página Propriedades (somente leitura) para ver as propriedades somente leitura relatadas para esse componente.

  11. Selecione a página Propriedades (graváveis) para ver as propriedades graváveis que podem ser atualizadas para esse componente.

  12. Selecione uma propriedade pelo respectivo nome, insira um novo valor para ela e selecione Atualizar o valor desejado.

  13. Para que o novo valor apareça, selecione o botão Atualizar.

  14. Selecione a página Comandos para ver todos os comandos para esse componente.

  15. Selecione o comando que você deseja testar e defina o parâmetro correspondente, se houver. Selecione Enviar comando para chamar o comando no dispositivo. É possível ver que o dispositivo responde ao comando na janela de prompt de comando em que o código de exemplo está sendo executado.

Examine o código

Este exemplo implementa um dispositivo termostato simples do IoT Plug and Play. O modelo que esse exemplo implementa não usa os componentes do IoT Plug and Play. O arquivo de modelo de DTDL para o dispositivo de termostato define a telemetria, as propriedades e os comandos que o dispositivo implementa.

O código do dispositivo usa a classe DeviceClient padrão para se conectar ao seu hub IoT. O dispositivo envia a ID de modelo do modelo de DTDL que ele implementa na solicitação de conexão. Um dispositivo que envia uma ID de modelo é um dispositivo 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();
}

A ID do modelo é armazenada no código, conforme mostrado no seguinte snippet:

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

O código que atualiza propriedades, manipula comandos e envia telemetria é idêntico ao código de um dispositivo que não usa as convenções do IoT Plug and Play.

O exemplo usa uma biblioteca JSON para analisar objetos JSON nos conteúdos enviados do seu hub IoT:

import com.google.gson.Gson;

...

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

Limpar os recursos

Se você tiver concluído os guias de início rápido e os tutoriais, confira Limpar recursos.

Este tutorial mostra como criar um aplicativo de exemplo do dispositivo IoT Plug and Play, conectá-lo ao hub IoT e usar a ferramenta do Explorer da Internet das Coisas do Azure para exibir a telemetria que ele envia. O aplicativo de exemplo é gravado em Node.js e é incluído no SDK do dispositivo IoT do Azure para Node.js. Um construtor de soluções pode usar a ferramenta Azure IoT Explorer para compreender as funcionalidades de um dispositivo IoT Plug and Play sem a necessidade de ver nenhum código de dispositivo.

Procurar código

Pré-requisitos

Antes de continuar, não deixe de configurar seu ambiente, incluindo o hub IoT.

Você pode executar este tutorial no Linux ou no Windows. Os comandos do shell neste tutorial seguem a convenção do Linux para os separadores de caminho '/', se você está acompanhando no Windows, não deixe de trocar esses separadores por '\'.

Para concluir este tutorial, você precisa do Node.js em seu computador de desenvolvimento. Você pode baixar a versão mais recente recomendada para várias plataformas de nodejs.org.

Você pode verificar a versão atual do Node.js no computador de desenvolvimento usando o seguinte comando:

node --version

Baixar o código

Neste tutorial, você preparará um ambiente de desenvolvimento que pode ser usado para clonar e compilar o SDK do dispositivo Hub IoT do Azure para Node.js.

Abra um prompt de comando no diretório de sua escolha. Execute o seguinte comando para clonar o repositório GitHub do SDK do Microsoft Azure IoT para Node.js nesta localização:

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

Instalar as bibliotecas necessárias

Use o SDK do dispositivo para criar o código de exemplo incluído. O aplicativo criado simula um dispositivo que se conecta a um Hub IoT. O aplicativo envia a telemetria e as propriedades e recebe comandos.

  1. Em uma janela de terminal local, acesse a pasta do repositório clonado e navegue até a pasta /azure-iot-sdk-node/device/samples/javascript. Em seguida, execute o seguinte comando para instalar as bibliotecas necessárias:

    npm install
    

Executar o dispositivo de exemplo

Este exemplo implementa um dispositivo termostato simples do IoT Plug and Play. O modelo que esse exemplo implementa não usa os componentes do IoT Plug and Play. O arquivo de modelo de DTDL para o dispositivo de termostato define a telemetria, as propriedades e os comandos que o dispositivo implementa.

Abra o arquivo pnp_simple_thermostat.js. Nesse arquivo, você pode ver como:

  1. Importar as interfaces necessárias.
  2. Grave um manipulador de atualização de propriedade e um manipulador de comando.
  3. Manipule os patches de propriedade desejados e envie a telemetria.
  4. Opcionalmente, provisione o dispositivo usando o DPS (Serviço de Provisionamento de Dispositivos) do Azure.

Na função principal, você pode ver como tudo isso é agrupado:

  1. Crie o dispositivo da sua cadeia de conexão ou provisione-o usando o DPS.)
  2. Use a opção modelID para especificar o modelo de dispositivo IoT Plug and Play.
  3. Habilite o manipulador de comandos.
  4. Envie telemetria do dispositivo para o hub.
  5. Obtenha os dispositivos gêmeos e atualize as propriedades relatadas.
  6. Habilite o manipulador de atualização de propriedade desejado.

Em Configurar um ambiente, você criou quatro variáveis de ambiente para configurar o exemplo e usar o DPS (Serviço de Provisionamento de Dispositivos) para conectar-se ao hub IoT:

  • IOTHUB_DEVICE_SECURITY_TYPE com o valor DPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE com a ID de escopo do DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_ID com o valor my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY com a chave primária de registro.
  • IOTHUB_DEVICE_DPS_ENDPOINT com o valor global.azure-devices-provisioning.net.

Para saber mais sobre a configuração do exemplo, confira o leiame de exemplo.

Execute um aplicativo de exemplo para simular um dispositivo IoT Plug and Play que envia telemetria ao hub IoT. Para executar o aplicativo de exemplo, use o seguinte comando:

node pnp_simple_thermostat.js

Você vê a saída a seguir, indicando que o dispositivo começou a enviar dados telemétricos para o hub e agora está pronto para receber comandos e atualizações de propriedade.

Mensagens de confirmação do dispositivo

Mantenha o exemplo em execução enquanto você conclui as próximas etapas.

Usar o Azure IoT Explorer para validar o código

Após iniciar o exemplo de cliente do dispositivo, use a ferramenta Azure IoT Explorer para verificar se ele está funcionando.

  1. Abra o Explorador de IoT do Azure.

  2. Na página Hubs IoT, se você ainda não tiver adicionado uma conexão ao seu Hub IoT, selecione + Adicionar conexão. Insira a cadeia de conexão para o Hub IoT que você criou anteriormente e selecione Salvar.

  3. Na página Configurações de IoT Plug and Play, selecione + Adicionar > Pasta local e selecione a pasta local modelos em que você salvou os arquivos de modelo.

  4. Na página Hubs IoT, clique no nome do hub com o qual você deseja trabalhar. Você verá uma lista de dispositivos registrados no Hub IoT.

  5. Clique na ID do dispositivo do dispositivo que você criou anteriormente.

  6. O menu à esquerda mostra os diferentes tipos de informações disponíveis para o dispositivo.

  7. Selecione Componentes IoT Plug and Play para ver as informações de modelo do seu dispositivo.

  8. Você pode ver os vários componentes do dispositivo. O componente padrão e quaisquer componentes extras. Selecione um componente com o qual trabalhar.

  9. Selecione a página Telemetria e escolha Iniciar para ver os dados telemétricos que o dispositivo está enviando para esse componente.

  10. Selecione a página Propriedades (somente leitura) para ver as propriedades somente leitura relatadas para esse componente.

  11. Selecione a página Propriedades (graváveis) para ver as propriedades graváveis que podem ser atualizadas para esse componente.

  12. Selecione uma propriedade pelo respectivo nome, insira um novo valor para ela e selecione Atualizar o valor desejado.

  13. Para que o novo valor apareça, selecione o botão Atualizar.

  14. Selecione a página Comandos para ver todos os comandos para esse componente.

  15. Selecione o comando que você deseja testar e defina o parâmetro correspondente, se houver. Selecione Enviar comando para chamar o comando no dispositivo. É possível ver que o dispositivo responde ao comando na janela de prompt de comando em que o código de exemplo está sendo executado.

Limpar os recursos

Se você tiver concluído os guias de início rápido e os tutoriais, confira Limpar recursos.

Este tutorial mostra como criar um aplicativo de exemplo do dispositivo IoT Plug and Play, conectá-lo ao hub IoT e usar a ferramenta do Explorer da Internet das Coisas do Azure para exibir a telemetria que ele envia. O aplicativo de exemplo é gravado em Python e é incluído no SDK do Dispositivo do Hub IoT do Azure para Python. Um construtor de soluções pode usar a ferramenta Azure IoT Explorer para compreender as funcionalidades de um dispositivo IoT Plug and Play sem a necessidade de ver nenhum código de dispositivo.

Procurar código

Pré-requisitos

Antes de continuar, não deixe de configurar seu ambiente, incluindo o hub IoT.

Para concluir este tutorial, você precisará do Python instalado no seu computador de desenvolvimento. Verifique o SDK do Python da Internet das Coisas do Azure, para obter os requisitos atuais de versão do Python. Verifique a sua versão do Python com o seguinte comando:

python --version

Baixe a versão mais recente recomendada para várias plataformas em python.org.

No ambiente Python local, instale o pacote da seguinte maneira:

pip install azure-iot-device

Clone o repositório de IoT do SDK do Python:

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

Executar o dispositivo de exemplo

A pasta azure-iot-sdk-python/samples/pnp contém o código de exemplo do dispositivo IoT Plug and Play. Este tutorial usa o arquivo simple_thermostat.py. Este código de exemplo implementa um dispositivo IoT Plug and Play compatível e usa a Biblioteca de Clientes do Dispositivo Python do IoT do Azure.

Abra o arquivo simple_thermostat.py em um editor de texto. Observe como ele:

  1. Define um DTMI (identificador de modelo de dispositivo gêmeo) que representa exclusivamente o Termostato. Um DTMIs precisa ser conhecido pelo usuário e varia dependendo do cenário de implementação do dispositivo. Para o exemplo atual, o modelo representa um termostato que tem telemetria, propriedades e comandos associados à temperatura de monitoramento.

  2. Tem funções para definir implementações de manipulador de comando. Grave esses manipuladores para definir como o dispositivo responde às solicitações de comando.

  3. Tem uma função para definir uma resposta de comando. Crie funções de resposta de comando para enviar uma resposta de volta para o hub IoT.

  4. Define uma função de ouvinte de teclado de entrada para permitir que você encerre o aplicativo.

  5. Tem uma função main. A função main:

    1. Usa o SDK do dispositivo para criar um cliente de dispositivo e conectar-se ao hub IoT.

    2. Atualiza as propriedades. O modelo termostato define targetTemperature e maxTempSinceLastReboot como as duas propriedades do Termostato. As propriedades são atualizadas usando o método patch_twin_reported_properties definido no device_client.

    3. Inicia a escuta de solicitações de comando usando a função execute_command_listener. A função configura um 'ouvinte' para ouvir comandos provenientes do serviço. Ao configurar o ouvinte, você fornece method_name, user_command_handler e create_user_response_handler.

      • A função user_command_handler define o que o dispositivo deve fazer quando recebe um comando.
      • A função create_user_response_handler cria uma resposta a ser enviada ao hub IoT quando um comando é executado com êxito. Você pode vê-la no portal.
    4. Inicia o envio de telemetria. O pnp_send_telemetry é definido no arquivo pnp_methods. O código de exemplo usa um loop para chamar essa função a cada oito segundos.

    5. Desabilita todos os ouvintes e tarefas e sai do loop quando você pressiona Q ou q.

Em Configurar um ambiente, você criou quatro variáveis de ambiente para configurar o exemplo e usar o DPS (Serviço de Provisionamento de Dispositivos) para conectar-se ao hub IoT:

  • IOTHUB_DEVICE_SECURITY_TYPE com o valor DPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE com a ID de escopo do DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_ID com o valor my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY com a chave primária de registro.
  • IOTHUB_DEVICE_DPS_ENDPOINT com o valor global.azure-devices-provisioning.net.

Para saber mais sobre a configuração do exemplo, confira o leiame de exemplo.

Agora que você já viu o código, use o seguinte comando para executar o exemplo:

python simple_thermostat.py

Você vê a seguinte saída, que indica que o dispositivo está enviando dados telemétricos para o hub e agora está pronto para receber comandos e atualizações de propriedade:

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

Mantenha o exemplo em execução enquanto você conclui as próximas etapas.

Usar o Azure IoT Explorer para validar o código

Após iniciar o exemplo de cliente do dispositivo, use a ferramenta Azure IoT Explorer para verificar se ele está funcionando.

  1. Abra o Explorador de IoT do Azure.

  2. Na página Hubs IoT, se você ainda não tiver adicionado uma conexão ao seu Hub IoT, selecione + Adicionar conexão. Insira a cadeia de conexão para o Hub IoT que você criou anteriormente e selecione Salvar.

  3. Na página Configurações de IoT Plug and Play, selecione + Adicionar > Pasta local e selecione a pasta local modelos em que você salvou os arquivos de modelo.

  4. Na página Hubs IoT, clique no nome do hub com o qual você deseja trabalhar. Você verá uma lista de dispositivos registrados no Hub IoT.

  5. Clique na ID do dispositivo do dispositivo que você criou anteriormente.

  6. O menu à esquerda mostra os diferentes tipos de informações disponíveis para o dispositivo.

  7. Selecione Componentes IoT Plug and Play para ver as informações de modelo do seu dispositivo.

  8. Você pode ver os vários componentes do dispositivo. O componente padrão e quaisquer componentes extras. Selecione um componente com o qual trabalhar.

  9. Selecione a página Telemetria e escolha Iniciar para ver os dados telemétricos que o dispositivo está enviando para esse componente.

  10. Selecione a página Propriedades (somente leitura) para ver as propriedades somente leitura relatadas para esse componente.

  11. Selecione a página Propriedades (graváveis) para ver as propriedades graváveis que podem ser atualizadas para esse componente.

  12. Selecione uma propriedade pelo respectivo nome, insira um novo valor para ela e selecione Atualizar o valor desejado.

  13. Para que o novo valor apareça, selecione o botão Atualizar.

  14. Selecione a página Comandos para ver todos os comandos para esse componente.

  15. Selecione o comando que você deseja testar e defina o parâmetro correspondente, se houver. Selecione Enviar comando para chamar o comando no dispositivo. É possível ver que o dispositivo responde ao comando na janela de prompt de comando em que o código de exemplo está sendo executado.

Limpar os recursos

Se você tiver concluído os guias de início rápido e os tutoriais, confira Limpar recursos.

Se você estiver realizando o desenvolvimento para dispositivos restritos, use o IoT Plug and Play com:

Este artigo inclui links e recursos para esses cenários restritos.

Pré-requisitos

Muitos dos exemplos abaixo exigem um dispositivo de hardware específico, e os pré-requisitos são diferentes para cada um dos exemplos. Siga o link para o exemplo relevante para obter os pré-requisitos detalhados, bem como instruções de build e configuração.

Usar o SDK para C inserido

O SDK para C inserido oferece uma solução leve para conectar dispositivos restritos aos serviços de IoT do Azure, incluindo o uso das convenções do IoT Plug and Play. Os links a seguir incluem exemplos de dispositivos baseados em MCU e para fins educacionais e de depuração.

Usar um dispositivo baseado em MCU

Para obter um tutorial completo de ponta a ponta que usa o SDK para C inserido, o Serviço de Provisionamento de Dispositivos e o IoT Plug and Play em um MCU, confira Realocar a placa de desenvolvimento PIC-IoT Wx para se conectar ao Azure por meio do Serviço de Provisionamento de Dispositivos no Hub IoT.

Exemplos introdutórios

O repositório do SDK para C inserido contém vários exemplos que mostram como usar o IoT Plug and Play:

Observação

Esses exemplos são mostrados em execução no Windows e no Linux para fins educacionais e de depuração. Em um cenário de produção, os exemplos destinam-se apenas a dispositivos restritos.

Uso do Eclipse ThreadX

O Eclipse ThreadX inclui uma camada leve que adiciona conectividade nativa aos serviços de nuvem da Internet das Coisas do Azure. Essa camada fornece um mecanismo simples para conectar dispositivos restritos à Internet das Coisas do Azure durante o uso dos recursos avançados do Eclipse ThreadX. Para saber mais, confira a visão geral do Eclipse ThreadX.

Cadeias de ferramentas

As amostras do Eclipse ThreadX são fornecidas com diferentes tipos de combinações de IDE e cadeia de ferramentas, como:

Exemplos

A tabela a seguir lista amostras que mostram como começar a usar dispositivos diferentes com Eclipse ThreadX e IoT Plug and Play:

Fabricante Dispositivo Exemplos
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

Próximas etapas

Neste tutorial, você aprendeu a conectar um dispositivo do IoT Plug and Play a um Hub IoT. Para saber mais sobre como criar uma solução que interage com os dispositivos IoT Plug and Play, confira: