Tutorial: Conectar um exemplo de aplicativo de dispositivo IoT Plug and Play em execução no Linux ou Windows ao Hub IoT

Este tutorial mostra como criar um aplicativo de dispositivo IoT Plug and Play de exemplo, conectá-lo ao seu hub IoT e usar a ferramenta Azure IoT explorer para exibir a telemetria enviada. O aplicativo de exemplo é escrito em C e está incluído no SDK do dispositivo IoT do Azure para C. Um construtor de soluções pode usar a ferramenta Azure IoT explorer para entender os recursos de um dispositivo IoT Plug and Play sem a necessidade de exibir qualquer código de dispositivo.

Procurar código

Pré-requisitos

Antes de continuar, certifique-se de que configurou o seu ambiente, incluindo o seu hub IoT.

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

Os pré-requisitos diferem de acordo com o sistema operacional:

Linux

Este tutorial assume que você está usando o Ubuntu Linux. As etapas neste tutorial foram testadas usando o Ubuntu 18.04.

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

Instale GCC, Git, cmake e todas as dependências necessárias usando o apt-get comando:

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 está acima de cmake 2.8.12 e a versão do GCC está acima de 4.4.7.

cmake --version
gcc --version

Windows

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

Transferir o código

Neste tutorial, você prepara um ambiente de desenvolvimento que pode usar para clonar e criar o SDK 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 os SDKs do Azure IoT C e o repositório GitHub de bibliotecas neste local:

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

Espere que esta operação demore vários minutos a concluir.

Compilar o código

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

Utilizar o Visual Studio

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

  2. Quando o Visual Studio estiver pronto, no Gerenciador de Soluções, navegue até o exemplo 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 trecho a seguir para definir as variáveis de ambiente necessárias. Você anotou o ID do escopo e a chave primária de registro quando concluiu Configurar seu ambiente para os tutoriais e inícios rápidos 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 para a main função no arquivo pnp_simple_thermostat.c .

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

O dispositivo agora está pronto para receber comandos e atualizações de propriedade e começou a enviar dados de telemetria para o hub. Mantenha o exemplo em execução enquanto conclui as próximas etapas.

Use cmake para construir 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 exemplos:

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

Executar o exemplo de dispositivo

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

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

Para saber mais sobre a configuração de exemplo, consulte o Leiame de exemplo.

Para executar o aplicativo de exemplo no SDK que simula um dispositivo IoT Plug and Play enviando telemetria para seu hub IoT:

A partir da 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

Gorjeta

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

O dispositivo agora está pronto para receber comandos e atualizações de propriedade e começou a enviar dados de telemetria para o hub. Mantenha o exemplo em execução enquanto conclui as próximas etapas.

Usar o Azure IoT explorer para validar o código

Depois que o exemplo de cliente de dispositivo for iniciado, use a ferramenta Azure IoT explorer para verificar se está funcionando.

  1. Abra o explorador do Azure IoT.

  2. Na página Hubs IoT, se você ainda não adicionou 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 do IoT Plug and Play, selecione + Adicionar > pasta local e selecione a pasta de modelos locais onde você salvou seus 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 no ID 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 visualizar as informações do modelo do seu dispositivo.

  8. Você pode visualizar os diferentes componentes do dispositivo. O componente padrão e quaisquer outros extras. Selecione um componente para trabalhar.

  9. Selecione a página Telemetria e, em seguida, selecione Iniciar para exibir os dados de telemetria que o dispositivo está enviando para esse componente.

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

  11. Selecione a página Propriedades (graváveis) para exibir as propriedades graváveis que você pode atualizar para esse componente.

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

  13. Para ver o novo valor aparecer, selecione o botão Atualizar .

  14. Selecione a página Comandos para visualizar todos os comandos deste componente.

  15. Selecione o comando que deseja testar, defina o parâmetro, se houver. Selecione Enviar comando para chamar o comando no dispositivo. Você pode ver seu dispositivo responder ao comando na janela do prompt de comando onde o código de exemplo está sendo executado.

Rever o código

Este exemplo implementa um dispositivo de termostato IoT Plug and Play simples. O modelo de termostato não usa componentes IoT Plug and Play. O arquivo de modelo DTDL para o dispositivo 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 o ID do modelo DTDL que implementa na solicitação de conexão. Um dispositivo que envia um 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 IoT Plug and Play.

O código usa a biblioteca Parson para analisar objetos JSON nas cargas úteis enviadas do seu hub IoT:

// JSON parser
#include "parson.h"

Clean up resources (Limpar recursos)

Se tiver terminado os guias de início rápido e os tutoriais, consulte Limpar recursos.

Este tutorial mostra como criar um aplicativo de dispositivo IoT Plug and Play de exemplo, conectá-lo ao seu hub IoT e usar a ferramenta Azure IoT explorer para exibir a telemetria enviada. O aplicativo de exemplo é escrito em C# e está incluído no SDK do Azure IoT para C#. Um construtor de soluções pode usar a ferramenta Azure IoT explorer para entender os recursos de um dispositivo IoT Plug and Play sem a necessidade de exibir qualquer código de dispositivo.

Procurar código

Pré-requisitos

Antes de continuar, certifique-se de que configurou o seu ambiente, incluindo o seu hub IoT.

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

Transferir o código

Neste tutorial, você prepara um ambiente de desenvolvimento que pode usar para clonar e criar o repositório do SDK do Azure IoT para C#.

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

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

Compilar o código

Agora você pode compilar o exemplo e executá-lo. Execute os seguintes comandos para criar o exemplo:

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

Executar o exemplo de dispositivo

Para executar o exemplo, execute o seguinte comando:

dotnet run

O dispositivo agora está pronto para receber comandos e atualizações de propriedade e começou a enviar dados de telemetria para o hub. Mantenha o exemplo em execução enquanto conclui as próximas etapas.

Usar o Azure IoT explorer para validar o código

Depois que o exemplo de cliente de dispositivo for iniciado, use a ferramenta Azure IoT explorer para verificar se está funcionando.

  1. Abra o explorador do Azure IoT.

  2. Na página Hubs IoT, se você ainda não adicionou 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 do IoT Plug and Play, selecione + Adicionar > pasta local e selecione a pasta de modelos locais onde você salvou seus 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 no ID 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 visualizar as informações do modelo do seu dispositivo.

  8. Você pode visualizar os diferentes componentes do dispositivo. O componente padrão e quaisquer outros extras. Selecione um componente para trabalhar.

  9. Selecione a página Telemetria e, em seguida, selecione Iniciar para exibir os dados de telemetria que o dispositivo está enviando para esse componente.

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

  11. Selecione a página Propriedades (graváveis) para exibir as propriedades graváveis que você pode atualizar para esse componente.

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

  13. Para ver o novo valor aparecer, selecione o botão Atualizar .

  14. Selecione a página Comandos para visualizar todos os comandos deste componente.

  15. Selecione o comando que deseja testar, defina o parâmetro, se houver. Selecione Enviar comando para chamar o comando no dispositivo. Você pode ver seu dispositivo responder ao comando na janela do prompt de comando onde o código de exemplo está sendo executado.

Rever o código

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

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

O ID do modelo é armazenado no código conforme mostrado no seguinte trecho:

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 IoT Plug and Play.

O exemplo usa uma biblioteca JSON para analisar objetos JSON nas cargas úteis enviadas do hub IoT:

using Newtonsoft.Json;

...

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

Clean up resources (Limpar recursos)

Se tiver terminado os guias de início rápido e os tutoriais, consulte Limpar recursos.

Este tutorial mostra como criar um aplicativo de dispositivo IoT Plug and Play de exemplo, conectá-lo ao seu hub IoT e usar a ferramenta Azure IoT explorer para exibir a telemetria enviada. O aplicativo de exemplo é escrito em Java e está incluído no SDK do dispositivo IoT do Azure para Java. Um construtor de soluções pode usar a ferramenta Azure IoT explorer para entender os recursos de um dispositivo IoT Plug and Play sem a necessidade de exibir qualquer código de dispositivo.

Procurar código

Pré-requisitos

Antes de continuar, certifique-se de que configurou o seu ambiente, incluindo o seu hub IoT.

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

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

Transferir o código

Neste tutorial, você prepara um ambiente de desenvolvimento que pode usar para clonar e criar o SDK 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 os SDKs Java do Azure IoT e o repositório GitHub de bibliotecas neste local:

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

Compilar o código

Navegue até a pasta raiz do exemplo de termostato no repositório clonado do Java SDK e construa-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 seu ambiente, você criou quatro variáveis de ambiente para configurar o exemplo para usar o DPS (Serviço de Provisionamento de Dispositivo) para se conectar ao seu hub IoT:

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

Para saber mais sobre a configuração de exemplo, consulte 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"

O dispositivo agora está pronto para receber comandos e atualizações de propriedade e começou a enviar dados de telemetria para o hub. Mantenha o exemplo em execução enquanto conclui as próximas etapas.

Usar o Azure IoT explorer para validar o código

Depois que o exemplo de cliente de dispositivo for iniciado, use a ferramenta Azure IoT explorer para verificar se está funcionando.

  1. Abra o explorador do Azure IoT.

  2. Na página Hubs IoT, se você ainda não adicionou 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 do IoT Plug and Play, selecione + Adicionar > pasta local e selecione a pasta de modelos locais onde você salvou seus 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 no ID 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 visualizar as informações do modelo do seu dispositivo.

  8. Você pode visualizar os diferentes componentes do dispositivo. O componente padrão e quaisquer outros extras. Selecione um componente para trabalhar.

  9. Selecione a página Telemetria e, em seguida, selecione Iniciar para exibir os dados de telemetria que o dispositivo está enviando para esse componente.

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

  11. Selecione a página Propriedades (graváveis) para exibir as propriedades graváveis que você pode atualizar para esse componente.

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

  13. Para ver o novo valor aparecer, selecione o botão Atualizar .

  14. Selecione a página Comandos para visualizar todos os comandos deste componente.

  15. Selecione o comando que deseja testar, defina o parâmetro, se houver. Selecione Enviar comando para chamar o comando no dispositivo. Você pode ver seu dispositivo responder ao comando na janela do prompt de comando onde o código de exemplo está sendo executado.

Rever o código

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

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

O ID do modelo é armazenado no código conforme mostrado no seguinte trecho:

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 IoT Plug and Play.

O exemplo usa uma biblioteca JSON para analisar objetos JSON nas cargas úteis enviadas do hub IoT:

import com.google.gson.Gson;

...

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

Clean up resources (Limpar recursos)

Se tiver terminado os guias de início rápido e os tutoriais, consulte Limpar recursos.

Este tutorial mostra como criar um aplicativo de dispositivo IoT Plug and Play de exemplo, conectá-lo ao seu hub IoT e usar a ferramenta Azure IoT explorer para exibir a telemetria enviada. O aplicativo de exemplo é escrito em Node.js e está 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 entender os recursos de um dispositivo IoT Plug and Play sem a necessidade de exibir qualquer código de dispositivo.

Procurar código

Pré-requisitos

Antes de continuar, certifique-se de que configurou o seu ambiente, incluindo o seu hub IoT.

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

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

Pode verificar qual a versão atual do Node.js no seu computador de desenvolvimento através do seguinte comando:

node --version

Transferir o código

Neste tutorial, você prepara um ambiente de desenvolvimento que pode usar para clonar e criar o SDK de Dispositivo do 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 SDK do Microsoft Azure IoT para Node.js repositório GitHub neste local:

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

Instalar bibliotecas necessárias

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

  1. Em uma janela de terminal local, vá para 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
    

Execute o dispositivo de exemplo

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

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

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

Na função principal, você pode ver como tudo se junta:

  1. Crie o dispositivo a partir da sua cadeia de conexão ou provisione-o usando 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 seu ambiente, você criou quatro variáveis de ambiente para configurar o exemplo para usar o DPS (Serviço de Provisionamento de Dispositivo) para se conectar ao seu hub IoT:

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

Para saber mais sobre a configuração de exemplo, consulte o Leiame de exemplo.

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

node pnp_simple_thermostat.js

Você verá a saída a seguir, indicando que o dispositivo começou a enviar dados de telemetria 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 conclui as próximas etapas.

Usar o Azure IoT explorer para validar o código

Depois que o exemplo de cliente de dispositivo for iniciado, use a ferramenta Azure IoT explorer para verificar se está funcionando.

  1. Abra o explorador do Azure IoT.

  2. Na página Hubs IoT, se você ainda não adicionou 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 do IoT Plug and Play, selecione + Adicionar > pasta local e selecione a pasta de modelos locais onde você salvou seus 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 no ID 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 visualizar as informações do modelo do seu dispositivo.

  8. Você pode visualizar os diferentes componentes do dispositivo. O componente padrão e quaisquer outros extras. Selecione um componente para trabalhar.

  9. Selecione a página Telemetria e, em seguida, selecione Iniciar para exibir os dados de telemetria que o dispositivo está enviando para esse componente.

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

  11. Selecione a página Propriedades (graváveis) para exibir as propriedades graváveis que você pode atualizar para esse componente.

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

  13. Para ver o novo valor aparecer, selecione o botão Atualizar .

  14. Selecione a página Comandos para visualizar todos os comandos deste componente.

  15. Selecione o comando que deseja testar, defina o parâmetro, se houver. Selecione Enviar comando para chamar o comando no dispositivo. Você pode ver seu dispositivo responder ao comando na janela do prompt de comando onde o código de exemplo está sendo executado.

Clean up resources (Limpar recursos)

Se tiver terminado os guias de início rápido e os tutoriais, consulte Limpar recursos.

Este tutorial mostra como criar um aplicativo de dispositivo IoT Plug and Play de exemplo, conectá-lo ao seu hub IoT e usar a ferramenta Azure IoT explorer para exibir a telemetria enviada. O aplicativo de exemplo foi escrito para Python e está incluído no SDK de Dispositivo do Hub IoT do Azure para Python. Um construtor de soluções pode usar a ferramenta Azure IoT explorer para entender os recursos de um dispositivo IoT Plug and Play sem a necessidade de exibir qualquer código de dispositivo.

Procurar código

Pré-requisitos

Antes de continuar, certifique-se de que configurou o seu ambiente, incluindo o seu hub IoT.

Para concluir este tutorial, você precisa do Python instalado em sua máquina de desenvolvimento. Verifique o SDK do Python do Azure IoT para obter os requisitos de versão atuais do Python. Você pode verificar sua versão do Python com o seguinte comando:

python --version

Você pode baixar a versão recomendada mais recente para várias plataformas do python.org.

Em seu ambiente Python local, instale o pacote da seguinte maneira:

pip install azure-iot-device

Clone o repositório Python SDK IoT:

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

Execute o dispositivo de exemplo

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

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

  1. Define um identificador de modelo gêmeo de dispositivo único (DTMI) que representa exclusivamente o termostato. Uma DTMI deve ser conhecida pelo usuário e varia dependendo do cenário de implementação do dispositivo. Para a amostra atual, o modelo representa um termostato que tem telemetria, propriedades e comandos associados ao monitoramento da temperatura.

  2. Tem funções para definir implementações do manipulador de comandos. Você escreve esses manipuladores para definir como o dispositivo responde às solicitações de comando.

  3. Tem uma função para definir uma resposta de comando. Você cria funções de resposta de comando para enviar uma resposta de volta ao seu hub IoT.

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

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

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

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

    3. Começa a escutar 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 um method_name, user_command_handlere create_user_response_handler.

      • A user_command_handler função define o que o dispositivo deve fazer quando recebe um comando.
      • A create_user_response_handler função cria uma resposta a ser enviada ao seu hub IoT quando um comando é executado com êxito. Pode ver esta resposta no portal.
    4. Começa a enviar telemetria. O pnp_send_telemetry é definido no arquivo pnp_methods.py. O código de exemplo usa um loop para chamar essa função a cada oito segundos.

    5. Desativa todos os ouvintes e tarefas, e existe o loop quando você pressiona Q ou q.

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

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

Para saber mais sobre a configuração de exemplo, consulte o Leiame de exemplo.

Agora que você 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 de telemetria 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 conclui as próximas etapas.

Usar o Azure IoT explorer para validar o código

Depois que o exemplo de cliente de dispositivo for iniciado, use a ferramenta Azure IoT explorer para verificar se está funcionando.

  1. Abra o explorador do Azure IoT.

  2. Na página Hubs IoT, se você ainda não adicionou 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 do IoT Plug and Play, selecione + Adicionar > pasta local e selecione a pasta de modelos locais onde você salvou seus 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 no ID 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 visualizar as informações do modelo do seu dispositivo.

  8. Você pode visualizar os diferentes componentes do dispositivo. O componente padrão e quaisquer outros extras. Selecione um componente para trabalhar.

  9. Selecione a página Telemetria e, em seguida, selecione Iniciar para exibir os dados de telemetria que o dispositivo está enviando para esse componente.

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

  11. Selecione a página Propriedades (graváveis) para exibir as propriedades graváveis que você pode atualizar para esse componente.

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

  13. Para ver o novo valor aparecer, selecione o botão Atualizar .

  14. Selecione a página Comandos para visualizar todos os comandos deste componente.

  15. Selecione o comando que deseja testar, defina o parâmetro, se houver. Selecione Enviar comando para chamar o comando no dispositivo. Você pode ver seu dispositivo responder ao comando na janela do prompt de comando onde o código de exemplo está sendo executado.

Clean up resources (Limpar recursos)

Se tiver terminado os guias de início rápido e os tutoriais, consulte Limpar recursos.

Se você estiver desenvolvendo para dispositivos restritos, poderá usar 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 pré-requisitos detalhados, instruções de configuração e compilação.

Usar o SDK para C incorporado

O SDK para Embedded C oferece uma solução leve para conectar dispositivos restritos aos serviços do Azure IoT, incluindo o uso das convenções IoT Plug and Play. Os links a seguir incluem exemplos para 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 usando o SDK para C incorporado, o Serviço de Provisionamento de Dispositivo e o IoT Plug and Play em um MCU, consulte Redirecionar a placa de desenvolvimento PIC-IoT Wx para se conectar ao Azure por meio do Serviço de Provisionamento de Dispositivo do Hub IoT.

Amostras introdutórias

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

Nota

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

Usando o Eclipse ThreadX

O Eclipse ThreadX inclui uma camada leve que adiciona conectividade nativa aos serviços de nuvem do Azure IoT. Essa camada fornece um mecanismo simples para conectar dispositivos restritos ao Azure IoT enquanto usa os recursos avançados do Eclipse ThreadX. Para saber mais, consulte a visão geral do Eclipse ThreadX.

Cadeias de ferramentas

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

Exemplos

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

Fabricante Dispositivo Exemplos
Microchip ATSAME54-XPRO GCC/CMakeIARMPLAB
MXCHIP AZ3166 GCC/CMake
NXP MIMXRT1060-EVK GCC/CMakeIARMCUXpresso
STMicroelectronics 32F746GDESCOBERTA IARSTM32Cube
STMicroelectronics B-L475E-IOT01 GCC/CMakeIARSTM32Cube
STMicroelectronics B-L4S5I-IOT01 GCC/CMakeIARSTM32Cube

Próximos passos

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