Início Rápido: Controlar um dispositivo conectado a um hub IoT

Neste início rápido, você usa um método direto para controlar um dispositivo simulado conectado ao seu hub IoT. O Hub IoT é um serviço do Azure que habilita a ingestão de grandes volumes de telemetria de dispositivos na nuvem e o gerenciamento de seus dispositivos IoT pela nuvem para armazenamento e processamento. Você pode usar métodos diretos para alterar remotamente o comportamento dos dispositivos conectados ao hub IoT.

O início rápido usa dois aplicativos previamente escritos em .NET:

  • Um aplicativo de dispositivo simulado que responde aos métodos diretos chamados de um aplicativo de serviço. Para receber as chamadas de método direto, esse aplicativo se conecta a um ponto de extremidade específico do dispositivo em seu hub IoT.

  • Um aplicativo de serviço que chama os métodos diretos no dispositivo simulado. Para chamar um método direto em um dispositivo, esse aplicativo se conecta a um ponto de extremidade do lado do serviço em seu hub IoT.

Pré-requisitos

  • Uma conta do Azure com uma assinatura ativa. Crie um gratuitamente.

  • Os dois exemplos de aplicativo executados neste início rápido são escritos usando o C#. É necessário ter o SDK 6.0 do .NET ou a versão mais recente em seu computador de desenvolvimento.

    Você pode fazer o download do SDK do .NET Core para várias plataformas a partir do .NET.

    Verifique a versão atual do C# no computador de desenvolvimento usando o seguinte comando:

    dotnet --version
    
  • Clone ou baixe o SDK de IoT do Azure para C# do GitHub.

  • Verifique se a porta 8883 está aberta no firewall. A amostra de dispositivo deste início rápido usa o protocolo MQTT, que se comunica pela porta 8883. Essa porta poderá ser bloqueada em alguns ambientes de rede corporativos e educacionais. Para obter mais informações e maneiras de resolver esse problema, confira Como se conectar ao Hub IoT (MQTT).

Observação

Este artigo usa a versão mais recente da extensão de IoT do Azure, chamada azure-iot. A versão herdada chama-se azure-cli-iot-ext. Você deve ter apenas uma versão instalada por vez. Use o comando az extension list para validar quais extensões estão instaladas.

Use az extension remove --name azure-cli-iot-ext para remover a versão herdada da extensão.

Use az extension add --name azure-iot para adicionar a nova versão da extensão.

Para ver quais extensões você tem instaladas, use az extension list.

Nesta seção, você usa a CLI do Azure para criar um hub IoT e um grupo de recursos. Um grupo de recursos do Azure é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados. Um hub IoT atua como um hub central de mensagens para comunicação bidirecional entre o aplicativo IoT e os dispositivos.

Se você já tiver um hub IoT em sua assinatura do Azure, ignore esta seção.

Para criar um hub IoT e um grupo de recursos:

  1. Inicie o aplicativo da CLI. Para executar os comandos da CLI no restante deste artigo, copie a sintaxe do comando, cole-a no aplicativo da CLI, edite os valores de variáveis e pressione Enter.

    • Se estiver usando o Cloud Shell, selecione o botão Experimentar nos comandos da CLI para iniciar o Cloud Shell em uma janela dividida do navegador. Ou você pode abrir o Cloud Shell em uma guia separada do navegador.
    • Se estiver usando a CLI do Azure localmente, inicie o aplicativo de console da CLI e faça logon na CLI do Azure.
  2. Execute az extension add para instalar ou atualizar a extensão azure-iot para a versão atual.

    az extension add --upgrade --name azure-iot
    
  3. No aplicativo da CLI, execute o comando az group create para criar um grupo de recursos. O comando a seguir cria um grupo de recursos chamado MyResourceGroup na localização eastus.

    Observação

    Opcionalmente, você pode definir um local diferente. Para ver os locais disponíveis, execute az account list-locations. Este início rápido usa eastus, conforme mostrado no comando de exemplo.

    az group create --name MyResourceGroup --location eastus
    
  4. Execute o comando az iot hub create para criar um Hub IoT. Pode levar alguns minutos para criar um Hub IoT.

    YourIotHubName. Substitua esse espaço reservado e as chaves ao redor no comando a seguir, usando o nome escolhido para o hub IoT. Um nome de Hub IoT deve ser exclusivo globalmente no Azure. Use o nome do hub IoT no restante deste guia de início rápido, sempre que ver o espaço reservado.

    az iot hub create --resource-group MyResourceGroup --name {your_iot_hub_name}
    

Recuperar a cadeia de conexão de serviço

Você também precisa de uma cadeia de conexão de serviço do seu hub IoT para permitir que aplicativos de serviço se conectem ao hub e recuperem mensagens. A cadeia de conexão do serviço é para o hub IoT como um todo e é diferente da cadeia de conexão do dispositivo que você recuperou na seção anterior.

O comando abaixo recupera a cadeia de conexão de serviço para o hub IoT:

az iot hub connection-string show --policy-name service --hub-name {YourIoTHubName} --output table

Tome nota da cadeia de conexão de serviço, que se parece com:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

Você usará esse valor posteriormente no início rápido.

Simular um dispositivo

O aplicativo de dispositivo simulado se conecta a um ponto de extremidade específico do dispositivo em seu hub IoT, envia telemetria simulada e escuta chamadas de método direto de seu hub. Neste início rápido, a chamada de método direto do hub informa ao dispositivo para alterar o intervalo de envio da telemetria. O dispositivo simulado envia uma confirmação para o hub depois de executar o método direto.

  1. Em uma janela de terminal local, navegue até a pasta raiz do projeto C# de exemplo. Em seguida, procure a pasta iothub\device\samples\getting started\SimulatedDeviceWithCommand.

  2. Execute o seguinte comando para instalar os pacotes necessários para o aplicativo de dispositivo simulado:

    dotnet restore
    
  3. Execute o seguinte comando para compilar e executar o aplicativo de dispositivo simulado.

    {DeviceConnectionString}: substitua o valor do espaço reservado pela cadeia de conexão do dispositivo que você copiou anteriormente.

    dotnet run -- -c "{DeviceConnectionString}"
    

    A captura de tela a seguir mostra o resultado à medida que o aplicativo de dispositivo simulado envia telemetria para o seu hub IoT:

    Executar o dispositivo simulado

Chamar o método direto

O aplicativo de serviço se conecta a um ponto de extremidade do lado do serviço em seu Hub IoT. O aplicativo faz chamadas de método direto para um dispositivo por meio do hub IoT e escuta as confirmações. Um aplicativo de serviço do hub IoT normalmente é executado na nuvem.

  1. Em outra janela de terminal local, navegue até a pasta raiz do projeto C# de exemplo. Em seguida, navegue até a pasta iothub\service\samples\getting started\InvokeDeviceMethod.

  2. Na janela de terminal local, execute os seguintes comandos para instalar as bibliotecas necessárias para o aplicativo de serviço:

    dotnet build
    
  3. Na janela do terminal local, execute os comandos a seguir para compilar e executar o aplicativo de serviço.

    {ServiceConnectionString}: substitua o valor do espaço reservado pela cadeia de conexão do serviço do hub IoT que você copiou anteriormente.

    {DeviceName}: substitua esse espaço reservado pelo nome do dispositivo registrado.

    dotnet run -- -c "{ServiceConnectionString}" -d {DeviceName}
    

    A seguinte captura de tela mostra a saída enquanto o aplicativo faz uma chamada de método direto ao dispositivo e recebe uma confirmação:

    Executar o aplicativo de serviço

    Após executar o aplicativo de serviço, você verá uma mensagem na janela do console com o dispositivo simulado em execução, e a taxa de mudança de envio das mensagens:

    Alteração no cliente simulado

Esse início rápido usa dois aplicativos Java:

  • Um aplicativo de dispositivo simulado que responde aos métodos diretos chamados de um aplicativo de back-end.
  • Um aplicativo de serviço que chama o método direto no dispositivo simulado.

Pré-requisitos

  • Uma conta do Azure com uma assinatura ativa. Crie um gratuitamente.

  • Java SE Development Kit 8. Em Suporte de longo prazo do Java para o Azure e o Azure Stack, em Suporte de longo prazo, selecione Java 8.

    Verifique a versão atual do Java no computador de desenvolvimento usando o seguinte comando:

    java -version
    
  • Apache Maven 3.

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

    mvn --version
    
  • Clone ou baixe os exemplos em Java do IoT do Azure no GitHub.

  • Verifique se a porta 8883 está aberta no firewall. A amostra de dispositivo deste início rápido usa o protocolo MQTT, que se comunica pela porta 8883. Essa porta poderá ser bloqueada em alguns ambientes de rede corporativos e educacionais. Para obter mais informações e maneiras de resolver esse problema, confira Como se conectar ao Hub IoT (MQTT).

Observação

Este artigo usa a versão mais recente da extensão de IoT do Azure, chamada azure-iot. A versão herdada chama-se azure-cli-iot-ext. Você deve ter apenas uma versão instalada por vez. Use o comando az extension list para validar quais extensões estão instaladas.

Use az extension remove --name azure-cli-iot-ext para remover a versão herdada da extensão.

Use az extension add --name azure-iot para adicionar a nova versão da extensão.

Para ver quais extensões você tem instaladas, use az extension list.

Crie um hub IoT

Nesta seção, você usa a CLI do Azure para criar um hub IoT e um grupo de recursos. Um grupo de recursos do Azure é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados. Um hub IoT atua como um hub central de mensagens para comunicação bidirecional entre o aplicativo IoT e os dispositivos.

Se você já tiver um hub IoT em sua assinatura do Azure, ignore esta seção.

Para criar um hub IoT e um grupo de recursos:

  1. Inicie o aplicativo da CLI. Para executar os comandos da CLI no restante deste artigo, copie a sintaxe do comando, cole-a no aplicativo da CLI, edite os valores de variáveis e pressione Enter.

    • Se estiver usando o Cloud Shell, selecione o botão Experimentar nos comandos da CLI para iniciar o Cloud Shell em uma janela dividida do navegador. Ou você pode abrir o Cloud Shell em uma guia separada do navegador.
    • Se estiver usando a CLI do Azure localmente, inicie o aplicativo de console da CLI e faça logon na CLI do Azure.
  2. Execute az extension add para instalar ou atualizar a extensão azure-iot para a versão atual.

    az extension add --upgrade --name azure-iot
    
  3. No aplicativo da CLI, execute o comando az group create para criar um grupo de recursos. O comando a seguir cria um grupo de recursos chamado MyResourceGroup na localização eastus.

    Observação

    Opcionalmente, você pode definir um local diferente. Para ver os locais disponíveis, execute az account list-locations. Este início rápido usa eastus, conforme mostrado no comando de exemplo.

    az group create --name MyResourceGroup --location eastus
    
  4. Execute o comando az iot hub create para criar um Hub IoT. Pode levar alguns minutos para criar um Hub IoT.

    YourIotHubName. Substitua esse espaço reservado e as chaves ao redor no comando a seguir, usando o nome escolhido para o hub IoT. Um nome de Hub IoT deve ser exclusivo globalmente no Azure. Use o nome do hub IoT no restante deste guia de início rápido, sempre que ver o espaço reservado.

    az iot hub create --resource-group MyResourceGroup --name {your_iot_hub_name}
    

Registrar um dispositivo

Um dispositivo deve ser registrado no hub IoT antes de poder se conectar. Nesta seção, você usará a CLI do Azure para criar uma identidade do dispositivo.

Se você já tiver um dispositivo registrado em seu hub IoT, poderá ignorar essa seção.

Para criar uma identidade do dispositivo:

  1. Execute o comando az iot hub device-identity create no seu shell da CLI. Esse comando cria a identidade do dispositivo.

    your_iot_hub_name. substitua o espaço reservado abaixo pelo nome escolhido para o hub IoT.

    myDevice. Você pode usar esse nome para a identidade do dispositivo ao longo deste artigo ou fornecer um nome de dispositivo diferente.

    az iot hub device-identity create --device-id myDevice --hub-name {your_iot_hub_name}
    
  2. Execute o comando az iot hub device-identity connection-string show.

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {your_iot_hub_name}
    

    A saída da cadeia de conexão está no seguinte formato:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. Salve a cadeia de conexão em uma localização segura.

Observação

Mantenha seu aplicativo da CLI aberto. Você o usará em etapas posteriores.

Recuperar a cadeia de conexão de serviço

Você também precisa de uma cadeia de conexão de serviço para permitir que aplicativos de back-end se conectem ao seu hub IoT e recuperem mensagens. O comando abaixo recupera a cadeia de conexão de serviço para o hub IoT:

YourIoTHubName: substitua o espaço reservado abaixo pelo nome escolhido para o hub IoT.

az iot hub connection-string show --policy-name service --hub-name {YourIoTHubName} --output table

Tome nota da cadeia de conexão de serviço, que se parece com:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

Você usará esse valor posteriormente no início rápido. A cadeia de conexão do serviço é diferente da cadeia de conexão do dispositivo que você anotou na etapa anterior.

Simular um dispositivo

O aplicativo de dispositivo simulado se conecta a um ponto de extremidade específico do dispositivo em seu hub IoT, envia telemetria simulada e escuta chamadas de método direto de seu hub. Neste início rápido, a chamada de método direto do hub informa ao dispositivo para alterar o intervalo de envio da telemetria. O dispositivo simulado envia uma confirmação para o hub depois de executar o método direto.

  1. Em uma janela de terminal local, navegue até a pasta raiz do projeto Java de exemplo. Em seguida, navegue até a pasta iot-hub\Quickstarts\simulated-device-2.

  2. Abra o arquivo src/main/java/com/microsoft/docs/iothub/samples/SimulatedDevice.java em um editor de texto de sua escolha.

    Substitua o valor da variável connString pela cadeia de conexão do dispositivo que você anotou anteriormente. Salve as alterações no SimulatedDevice.java.

  3. Na janela de terminal local, execute os seguintes comandos para instalar as bibliotecas necessárias e compile o aplicativo de dispositivo simulado:

    mvn clean package
    
  4. Na janela de terminal local, execute os seguintes comandos para executar o aplicativo de dispositivo simulado:

    java -jar target/simulated-device-2-1.0.0-with-deps.jar
    

    A captura de tela a seguir mostra o resultado à medida que o aplicativo de dispositivo simulado envia telemetria para o seu hub IoT:

    Saída de telemetria enviada pelo dispositivo para seu Hub IoT

Chamar o método direto

O aplicativo de back-end se conecta a um ponto de extremidade do lado do serviço em seu Hub IoT. O aplicativo faz chamadas de método direto para um dispositivo por meio do hub IoT e escuta as confirmações. Um aplicativo de back-end do Hub IoT normalmente é executado na nuvem.

  1. Em outra janela de terminal local, navegue até a pasta raiz do projeto Java de exemplo. Em seguida, navegue até a pasta iot-hub\Quickstarts\back-end-application.

  2. Abra o arquivo src/main/java/com/microsoft/docs/iothub/samples/BackEndApplication.java em um editor de texto de sua escolha.

    Substitua o valor da variável iotHubConnectionString pela cadeia de conexão do serviço que você anotou anteriormente. Salve suas alterações em BackEndApplication.java.

  3. Na janela de terminal local, execute os seguintes comandos para instalar as bibliotecas necessárias e compilar o aplicativo de back-end:

    mvn clean package
    
  4. Na janela de terminal local, execute os comandos a seguir para executar o aplicativo back-end:

    java -jar target/back-end-application-1.0.0-with-deps.jar
    

    A seguinte captura de tela mostra a saída enquanto o aplicativo faz uma chamada de método direto ao dispositivo e recebe uma confirmação:

    Saída, pois o aplicativo faz uma chamada de método direto por meio do Hub IoT

    Após executar o aplicativo de back-end, você verá uma mensagem na janela do console com o dispositivo simulado em execução, e a taxa de mudança de envio das mensagens:

    A mensagem do console do dispositivo mostra a taxa na qual ele é alterado

Esse início rápido usa dois aplicativos Node.js:

  • Um aplicativo de dispositivo simulado que responde aos métodos diretos chamados de um aplicativo de back-end. Para receber as chamadas de método direto, esse aplicativo se conecta a um ponto de extremidade específico do dispositivo em seu hub IoT.
  • Um aplicativo de back-end que chama os métodos diretos no dispositivo simulado. Para chamar um método direto em um dispositivo, esse aplicativo se conecta a um ponto de extremidade específico a um serviço em seu hub IoT.

Pré-requisitos

  • Uma conta do Azure com uma assinatura ativa. Crie um gratuitamente.

  • Node.js 12 ou superior.

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

    node --version
    
  • Clone ou baixe os exemplos em Node.js do IoT do Azure no GitHub.

  • Verifique se a porta 8883 está aberta no firewall. A amostra de dispositivo deste início rápido usa o protocolo MQTT, que se comunica pela porta 8883. Essa porta poderá ser bloqueada em alguns ambientes de rede corporativos e educacionais. Para obter mais informações e maneiras de resolver esse problema, confira Como se conectar ao Hub IoT (MQTT).

Observação

Este artigo usa a versão mais recente da extensão de IoT do Azure, chamada azure-iot. A versão herdada chama-se azure-cli-iot-ext. Você deve ter apenas uma versão instalada por vez. Use o comando az extension list para validar quais extensões estão instaladas.

Use az extension remove --name azure-cli-iot-ext para remover a versão herdada da extensão.

Use az extension add --name azure-iot para adicionar a nova versão da extensão.

Para ver quais extensões você tem instaladas, use az extension list.

Crie um hub IoT

Nesta seção, você usa a CLI do Azure para criar um hub IoT e um grupo de recursos. Um grupo de recursos do Azure é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados. Um hub IoT atua como um hub central de mensagens para comunicação bidirecional entre o aplicativo IoT e os dispositivos.

Se você já tiver um hub IoT em sua assinatura do Azure, ignore esta seção.

Para criar um hub IoT e um grupo de recursos:

  1. Inicie o aplicativo da CLI. Para executar os comandos da CLI no restante deste artigo, copie a sintaxe do comando, cole-a no aplicativo da CLI, edite os valores de variáveis e pressione Enter.

    • Se estiver usando o Cloud Shell, selecione o botão Experimentar nos comandos da CLI para iniciar o Cloud Shell em uma janela dividida do navegador. Ou você pode abrir o Cloud Shell em uma guia separada do navegador.
    • Se estiver usando a CLI do Azure localmente, inicie o aplicativo de console da CLI e faça logon na CLI do Azure.
  2. Execute az extension add para instalar ou atualizar a extensão azure-iot para a versão atual.

    az extension add --upgrade --name azure-iot
    
  3. No aplicativo da CLI, execute o comando az group create para criar um grupo de recursos. O comando a seguir cria um grupo de recursos chamado MyResourceGroup na localização eastus.

    Observação

    Opcionalmente, você pode definir um local diferente. Para ver os locais disponíveis, execute az account list-locations. Este início rápido usa eastus, conforme mostrado no comando de exemplo.

    az group create --name MyResourceGroup --location eastus
    
  4. Execute o comando az iot hub create para criar um Hub IoT. Pode levar alguns minutos para criar um Hub IoT.

    YourIotHubName. Substitua esse espaço reservado e as chaves ao redor no comando a seguir, usando o nome escolhido para o hub IoT. Um nome de Hub IoT deve ser exclusivo globalmente no Azure. Use o nome do hub IoT no restante deste guia de início rápido, sempre que ver o espaço reservado.

    az iot hub create --resource-group MyResourceGroup --name {your_iot_hub_name}
    

Registrar um dispositivo

Um dispositivo deve ser registrado no hub IoT antes de poder se conectar. Nesta seção, você usará a CLI do Azure para criar uma identidade do dispositivo.

Se você já tiver um dispositivo registrado em seu hub IoT, poderá ignorar essa seção.

Para criar uma identidade do dispositivo:

  1. Execute o comando az iot hub device-identity create no seu shell da CLI. Esse comando cria a identidade do dispositivo.

    your_iot_hub_name. substitua o espaço reservado abaixo pelo nome escolhido para o hub IoT.

    myDevice. Você pode usar esse nome para a identidade do dispositivo ao longo deste artigo ou fornecer um nome de dispositivo diferente.

    az iot hub device-identity create --device-id myDevice --hub-name {your_iot_hub_name}
    
  2. Execute o comando az iot hub device-identity connection-string show.

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {your_iot_hub_name}
    

    A saída da cadeia de conexão está no seguinte formato:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. Salve a cadeia de conexão em uma localização segura.

Observação

Mantenha seu aplicativo da CLI aberto. Você o usará em etapas posteriores.

Recuperar a cadeia de conexão de serviço

Você também precisa de uma cadeia de conexão de serviço do seu hub IoT para permitir que aplicativos de back-end se conectem ao hub IoT e recuperem mensagens. O comando abaixo recupera a cadeia de conexão de serviço para o hub IoT:

YourIoTHubName: substitua o espaço reservado abaixo pelo nome escolhido para o hub IoT.

az iot hub connection-string show \
  --policy-name service --hub-name {YourIoTHubName} --output table

Tome nota da cadeia de conexão de serviço, que se parece com:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

Você usará esse valor posteriormente no início rápido. A cadeia de conexão do serviço é diferente da cadeia de conexão do dispositivo que você anotou na etapa anterior.

Simular um dispositivo

O aplicativo de dispositivo simulado se conecta a um ponto de extremidade específico do dispositivo em seu hub IoT, envia telemetria simulada e escuta chamadas de método direto de seu hub. Neste início rápido, a chamada de método direto do hub informa ao dispositivo para alterar o intervalo de envio da telemetria. O dispositivo simulado envia uma confirmação para o hub depois de executar o método direto.

  1. Em uma janela de terminal local, navegue até a pasta raiz do projeto Node.js de exemplo. Em seguida, navegue até a pasta iot-hub\Quickstarts\simulated-device-2.

  2. Abra o arquivo SimulatedDevice.js em seu editor de texto preferido.

    Substitua o valor da variável connectionString pela cadeia de conexão do dispositivo que você anotou anteriormente. Salve suas alterações em SimulatedDevice.js.

  3. Na janela do terminal local, execute os seguintes comandos para instalar as bibliotecas necessárias e executar o aplicativo de dispositivo simulado:

    npm install
    node SimulatedDevice.js
    

    A captura de tela a seguir mostra o resultado à medida que o aplicativo de dispositivo simulado envia telemetria para o seu hub IoT:

    Executar o dispositivo simulado

Chamar o método direto

O aplicativo de back-end se conecta a um ponto de extremidade do lado do serviço em seu hub IoT. O aplicativo faz chamadas de método direto para um dispositivo por meio do hub IoT e escuta as confirmações. Um aplicativo de back-end do Hub IoT normalmente é executado na nuvem.

  1. Em outra janela de terminal local, navegue até a pasta raiz do projeto Node.js de exemplo. Em seguida, navegue até a pasta iot-hub\Quickstarts\back-end-application.

  2. Abra o arquivo BackEndApplication.js em seu editor de texto preferido.

    Substitua o valor da variável connectionString pela cadeia de conexão do serviço que você anotou anteriormente. Salve suas alterações em BackEndApplication.js.

  3. Na janela do terminal local, execute os seguintes comandos para instalar as bibliotecas necessárias e executar o aplicativo de back-end:

    npm install
    node BackEndApplication.js
    

    A seguinte captura de tela mostra a saída enquanto o aplicativo faz uma chamada de método direto ao dispositivo e recebe uma confirmação:

    Saída quando o aplicativo faz uma chamada de método direto para o dispositivo

    Após executar o aplicativo de back-end, você verá uma mensagem na janela do console com o dispositivo simulado em execução, e a taxa de mudança de envio das mensagens:

    Saída quando há uma alteração no cliente simulado

Esse início rápido usa dois aplicativos Python:

  • Um aplicativo de dispositivo simulado que responde aos métodos diretos chamados de um aplicativo de back-end.
  • Um aplicativo de back-end que chama os métodos diretos no dispositivo simulado.

Pré-requisitos

Observação

Este artigo usa a versão mais recente da extensão de IoT do Azure, chamada azure-iot. A versão herdada chama-se azure-cli-iot-ext. Você deve ter apenas uma versão instalada por vez. Use o comando az extension list para validar quais extensões estão instaladas.

Use az extension remove --name azure-cli-iot-ext para remover a versão herdada da extensão.

Use az extension add --name azure-iot para adicionar a nova versão da extensão.

Para ver quais extensões você tem instaladas, use az extension list.

Crie um hub IoT

Nesta seção, você usa a CLI do Azure para criar um hub IoT e um grupo de recursos. Um grupo de recursos do Azure é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados. Um hub IoT atua como um hub central de mensagens para comunicação bidirecional entre o aplicativo IoT e os dispositivos.

Se você já tiver um hub IoT em sua assinatura do Azure, ignore esta seção.

Para criar um hub IoT e um grupo de recursos:

  1. Inicie o aplicativo da CLI. Para executar os comandos da CLI no restante deste artigo, copie a sintaxe do comando, cole-a no aplicativo da CLI, edite os valores de variáveis e pressione Enter.

    • Se estiver usando o Cloud Shell, selecione o botão Experimentar nos comandos da CLI para iniciar o Cloud Shell em uma janela dividida do navegador. Ou você pode abrir o Cloud Shell em uma guia separada do navegador.
    • Se estiver usando a CLI do Azure localmente, inicie o aplicativo de console da CLI e faça logon na CLI do Azure.
  2. Execute az extension add para instalar ou atualizar a extensão azure-iot para a versão atual.

    az extension add --upgrade --name azure-iot
    
  3. No aplicativo da CLI, execute o comando az group create para criar um grupo de recursos. O comando a seguir cria um grupo de recursos chamado MyResourceGroup na localização eastus.

    Observação

    Opcionalmente, você pode definir um local diferente. Para ver os locais disponíveis, execute az account list-locations. Este início rápido usa eastus, conforme mostrado no comando de exemplo.

    az group create --name MyResourceGroup --location eastus
    
  4. Execute o comando az iot hub create para criar um Hub IoT. Pode levar alguns minutos para criar um Hub IoT.

    YourIotHubName. Substitua esse espaço reservado e as chaves ao redor no comando a seguir, usando o nome escolhido para o hub IoT. Um nome de Hub IoT deve ser exclusivo globalmente no Azure. Use o nome do hub IoT no restante deste guia de início rápido, sempre que ver o espaço reservado.

    az iot hub create --resource-group MyResourceGroup --name {your_iot_hub_name}
    

Registrar um dispositivo

Um dispositivo deve ser registrado no hub IoT antes de poder se conectar. Nesta seção, você usará a CLI do Azure para criar uma identidade do dispositivo.

Se você já tiver um dispositivo registrado em seu hub IoT, poderá ignorar essa seção.

Para criar uma identidade do dispositivo:

  1. Execute o comando az iot hub device-identity create no seu shell da CLI. Esse comando cria a identidade do dispositivo.

    your_iot_hub_name. substitua o espaço reservado abaixo pelo nome escolhido para o hub IoT.

    myDevice. Você pode usar esse nome para a identidade do dispositivo ao longo deste artigo ou fornecer um nome de dispositivo diferente.

    az iot hub device-identity create --device-id myDevice --hub-name {your_iot_hub_name}
    
  2. Execute o comando az iot hub device-identity connection-string show.

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {your_iot_hub_name}
    

    A saída da cadeia de conexão está no seguinte formato:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. Salve a cadeia de conexão em uma localização segura.

Observação

Mantenha seu aplicativo da CLI aberto. Você o usará em etapas posteriores.

Recuperar a cadeia de conexão de serviço

Você também precisa de uma cadeia de conexão de serviço para permitir que aplicativos de back-end se conectem ao seu hub IoT e recuperem mensagens. O comando abaixo recupera a cadeia de conexão de serviço para o hub IoT:

YourIoTHubName: substitua o espaço reservado abaixo pelo nome escolhido para o hub IoT.

az iot hub connection-string show \
  --policy-name service \
  --hub-name {YourIoTHubName} \
  --output table

Tome nota da cadeia de conexão de serviço, que se parece com:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

Você usará esse valor posteriormente no início rápido. A cadeia de conexão do serviço é diferente da cadeia de conexão do dispositivo que você anotou na etapa anterior.

Simular um dispositivo

O aplicativo de dispositivo simulado se conecta a um ponto de extremidade específico do dispositivo em seu hub IoT, envia telemetria simulada e escuta chamadas de método direto de seu hub. Neste início rápido, a chamada de método direto do hub informa ao dispositivo para alterar o intervalo de envio da telemetria. O dispositivo simulado envia uma confirmação para o hub depois de executar o método direto.

  1. Em uma janela de terminal local, navegue até a pasta raiz do projeto Python de exemplo. Em seguida, navegue até a pasta iot-hub\Quickstarts\simulated-device-2.

  2. Abra o arquivo SimulatedDeviceSync.py em seu editor de texto preferido.

    Substitua o valor da variável CONNECTION_STRING pela cadeia de conexão do dispositivo que você anotou anteriormente. Salve suas alterações em SimulatedDeviceSync.py.

  3. Na janela de terminal local, execute os seguintes comandos para instalar as bibliotecas necessárias para o aplicativo de dispositivo simulado:

    pip install azure-iot-device
    
  4. Na janela de terminal local, execute os seguintes comandos para executar o aplicativo de dispositivo simulado:

    python SimulatedDeviceSync.py
    

    A captura de tela a seguir mostra o resultado à medida que o aplicativo de dispositivo simulado envia telemetria para o seu hub IoT:

    Executar o dispositivo simulado

Chamar o método direto

O aplicativo de back-end se conecta a um ponto de extremidade do lado do serviço em seu Hub IoT. O aplicativo faz chamadas de método direto para um dispositivo por meio do hub IoT e escuta as confirmações. Um aplicativo de back-end do Hub IoT normalmente é executado na nuvem.

  1. Em outra janela de terminal local, navegue até a pasta raiz do projeto Python de exemplo. Em seguida, navegue até a pasta iot-hub\Quickstarts\back-end-application.

  2. Abra o arquivo BackEndApplication.py em seu editor de texto preferido.

    Substitua o valor da variável CONNECTION_STRING pela cadeia de conexão do serviço que você anotou anteriormente. Salve suas alterações em BackEndApplication.py.

  3. Na janela de terminal local, execute os seguintes comandos para instalar as bibliotecas necessárias para o aplicativo de dispositivo simulado:

    pip install azure-iot-hub
    
  4. Na janela de terminal local, execute os comandos a seguir para executar o aplicativo back-end:

    python BackEndApplication.py
    

    A seguinte captura de tela mostra a saída enquanto o aplicativo faz uma chamada de método direto ao dispositivo e recebe uma confirmação:

    Executar o aplicativo de back-end

    Após executar o aplicativo de back-end, você verá uma mensagem na janela do console com o dispositivo simulado em execução, e a taxa de mudança de envio das mensagens:

    Alteração no cliente simulado

Limpar os recursos

Se você pretende continuar para o próximo artigo recomendado, é possível manter os recursos já criados e reutilizá-los.

Caso contrário, você pode excluir os recursos do Azure criados neste artigo para evitar encargos.

Importante

A exclusão de um grupo de recursos é irreversível. O grupo de recursos e todos os recursos contidos nele são excluídos permanentemente. Não exclua acidentalmente o grupo de recursos ou os recursos incorretos. Caso tenha criado o Hub IoT dentro de um grupo de recursos existente que contém recursos que você deseja manter, exclua apenas o próprio recurso do Hub IoT em vez de excluir o grupo de recursos.

Para excluir um grupo de recursos por nome:

  1. Entre no portal do Azure e selecione Grupos de recursos.

  2. Na caixa de texto Filtrar por nome, digite o nome do grupo de recursos que contém seu Hub IoT.

  3. À direita do seu grupo de recursos, na lista de resultados, selecione ... e Excluir grupo de recursos.

    Excluir

  4. Você receberá uma solicitação para confirmar a exclusão do grupo de recursos. Digite o nome do grupo de recursos novamente para confirmar e selecione Excluir. Após alguns instantes, o grupo de recursos, e todos os recursos contidos nele, serão excluídos.

Próximas etapas

Neste início rápido, você já chamou um método direto em um dispositivo de um aplicativo de serviço e respondeu à chamada de método direto em um aplicativo de dispositivo simulado.

Para saber como rotear mensagens de dispositivo para nuvem para destinos diferentes na nuvem, continue n próximo tutorial.