Guia de Início Rápido: controlar um dispositivo ligado a um hub IoT

Neste guia de início rápido, irá utilizar um método direto para controlar um dispositivo simulado ligado ao seu hub IoT. Hub IoT é um serviço do Azure que lhe permite gerir os seus dispositivos IoT a partir da cloud e ingerir grandes volumes de telemetria de dispositivos para a cloud para armazenamento ou processamento. Pode utilizar métodos diretos para alterar remotamente o comportamento dos dispositivos ligados ao seu hub IoT.

O guia de início rápido utiliza duas aplicações .NET pré-escritas:

  • Uma aplicação de dispositivo simulado que responde a métodos diretos chamados a partir de uma aplicação de serviço. Para receber as chamadas de método direto, esta aplicação liga-se a um ponto final específico do dispositivo no seu hub IoT.

  • Uma aplicação de serviço que chama os métodos diretos no dispositivo simulado. Para chamar um método direto num dispositivo, esta aplicação liga-se a um ponto final do lado do serviço no seu hub IoT.

Pré-requisitos

  • Uma conta do Azure com uma subscrição ativa. Crie uma gratuitamente.

  • As duas aplicações de exemplo que executa neste guia de início rápido são escritas com C#. Precisa do SDK .NET 6.0 ou superior no seu computador de desenvolvimento.

    Pode transferir o SDK de .NET Core para múltiplas plataformas em .NET.

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

    dotnet --version
    
  • Clone ou transfira o SDK C# do Azure IoT a partir do GitHub.

  • Certifique-se de que a porta 8883 está aberta na firewall. O exemplo de dispositivo neste início rápido utiliza o protocolo MQTT, que comunica através da porta 8883. Esta porta pode ser bloqueada em alguns ambientes de rede empresarial e educacional. Para obter mais informações e formas de contornar este problema, veja Ligar ao Hub IoT (MQTT).

Nota

Este artigo utiliza a versão mais recente da extensão do Azure IoT, denominada azure-iot. A versão legada é denominada azure-cli-iot-ext. Só deve ter uma versão instalada de cada vez. Pode utilizar o comando az extension list para validar as extensões atualmente instaladas.

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

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

Para ver que extensões instalou, utilize az extension list.

Nesta secção, vai utilizar a CLI do Azure para criar um hub IoT e um grupo de recursos. Um grupo de recursos do Azure é um contentor lógico no qual os recursos do Azure são implementados e geridos. Um hub IoT atua como um hub de mensagens central para a comunicação bidirecional entre a sua aplicação IoT e os dispositivos.

Se já tiver um hub IoT na sua subscrição do Azure, pode ignorar esta secção.

Para criar um hub IoT e um grupo de recursos:

  1. Inicie a sua aplicação CLI. Para executar os comandos da CLI no resto deste artigo, copie a sintaxe do comando, cole-a na sua aplicação CLI, edite valores de variáveis e prima Enter.

    • Se estiver a utilizar Cloud Shell, selecione o botão Experimentar nos comandos da CLI para iniciar Cloud Shell numa janela do browser dividido. Em alternativa, pode abrir o Cloud Shell num separador do browser separado.
    • Se estiver a utilizar a CLI do Azure localmente, inicie a aplicação de consola da CLI e inicie sessão 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. Na sua aplicação CLI, execute o comando az group create para criar um grupo de recursos. O comando seguinte cria um grupo de recursos com o nome MyResourceGroup na localização eastus .

    Nota

    Opcionalmente, pode definir uma localização diferente. Para ver as localizações disponíveis, execute az account list-locations. Este início rápido utiliza 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. Poderá demorar alguns minutos a criar um hub IoT.

    YourIotHubName. Substitua este marcador de posição e as chavetas adjacentes no seguinte comando, com o nome que escolheu para o hub IoT. Um nome de hub IoT tem de ser globalmente exclusivo no Azure. Utilize o nome do hub IoT no resto deste início rápido, onde quer que veja o marcador de posição.

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

Obter a cadeia de ligação do serviço

Também precisa da cadeia de ligação de serviço do hub IoT para permitir que a aplicação de serviço se ligue ao hub e obtenha as mensagens. A cadeia de ligação de serviço destina-se ao hub IoT como um todo e é diferente da cadeia de ligação do dispositivo que obteve na secção anterior.

O seguinte comando obtém a cadeia de ligação do serviço do seu hub IoT:

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

Anote a cadeia de ligação do serviço, que se parece com:

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

Irá utilizar este valor mais adiante no guia de início rápido.

Simular um dispositivo

A aplicação de dispositivo simulado liga-se a um ponto final específico do dispositivo no seu hub IoT, envia telemetria simulada e aguarda chamadas de método direto do seu hub. Neste guia de início rápido, a chamada de método direto do hub indica ao dispositivo para alterar o intervalo em que envia telemetria. O dispositivo simulado envia uma confirmação para o hub depois de executar o método direto.

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

  2. Execute o seguinte comando para instalar os pacotes necessários para a aplicação de dispositivo simulado:

    dotnet restore
    
  3. Execute o seguinte comando para compilar e executar a aplicação de dispositivo simulado.

    {DeviceConnectionString}: substitua este marcador de posição pela cadeia de ligação do dispositivo que anotou anteriormente.

    dotnet run -- -c "{DeviceConnectionString}"
    

    A seguinte captura de ecrã mostra a saída à medida que a aplicação de dispositivo simulado envia telemetria para o seu hub IoT:

    Executar o dispositivo simulado

Chamar o método direto

A aplicação de serviço liga-se a um ponto final do lado do serviço no seu Hub IoT. A aplicação faz chamadas de método direto para um dispositivo através do seu hub IoT e escuta confirmações. Normalmente, uma aplicação de serviço Hub IoT é executada na cloud.

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

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

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

    {ServiceConnectionString}: substitua este marcador de posição pela cadeia de ligação de serviço Hub IoT que anotou anteriormente.

    {DeviceName}: substitua este marcador de posição pelo nome do dispositivo que registou.

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

    A seguinte captura de ecrã mostra o resultado à medida que a aplicação faz uma chamada de método direto para o dispositivo e recebe uma confirmação:

    Executar a aplicação de serviço

    Depois de executar a aplicação de serviço, verá uma mensagem na janela da consola a executar o dispositivo simulado e a velocidade a que envia as mensagens é alterada:

    Alteração no cliente simulado

Este início rápido utiliza duas aplicações Java:

  • Uma aplicação de dispositivo simulado que responde aos métodos diretos chamados a partir de uma aplicação back-end.
  • Uma aplicação de serviço que chama o método direto no dispositivo simulado.

Pré-requisitos

  • Uma conta do Azure com uma subscrição ativa. Crie uma gratuitamente.

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

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

    java -version
    
  • Apache Maven 3.

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

    mvn --version
    
  • Clone ou transfira os exemplos java do Azure IoT a partir do GitHub.

  • Certifique-se de que a porta 8883 está aberta na firewall. O exemplo de dispositivo neste início rápido utiliza o protocolo MQTT, que comunica através da porta 8883. Esta porta pode ser bloqueada em alguns ambientes de rede empresarial e educacional. Para obter mais informações e formas de contornar este problema, veja Ligar ao Hub IoT (MQTT).

Nota

Este artigo utiliza a versão mais recente da extensão do Azure IoT, denominada azure-iot. A versão legada é denominada azure-cli-iot-ext. Só deve ter uma versão instalada de cada vez. Pode utilizar o comando az extension list para validar as extensões atualmente instaladas.

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

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

Para ver que extensões instalou, utilize az extension list.

Criar um hub IoT

Nesta secção, vai utilizar a CLI do Azure para criar um hub IoT e um grupo de recursos. Um grupo de recursos do Azure é um contentor lógico no qual os recursos do Azure são implementados e geridos. Um hub IoT atua como um hub de mensagens central para a comunicação bidirecional entre a sua aplicação IoT e os dispositivos.

Se já tiver um hub IoT na sua subscrição do Azure, pode ignorar esta secção.

Para criar um hub IoT e um grupo de recursos:

  1. Inicie a sua aplicação CLI. Para executar os comandos da CLI no resto deste artigo, copie a sintaxe do comando, cole-a na sua aplicação CLI, edite valores de variáveis e prima Enter.

    • Se estiver a utilizar Cloud Shell, selecione o botão Experimentar nos comandos da CLI para iniciar Cloud Shell numa janela do browser dividido. Em alternativa, pode abrir o Cloud Shell num separador do browser separado.
    • Se estiver a utilizar a CLI do Azure localmente, inicie a aplicação de consola da CLI e inicie sessão 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. Na sua aplicação CLI, execute o comando az group create para criar um grupo de recursos. O comando seguinte cria um grupo de recursos com o nome MyResourceGroup na localização eastus .

    Nota

    Opcionalmente, pode definir uma localização diferente. Para ver as localizações disponíveis, execute az account list-locations. Este início rápido utiliza 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. Poderá demorar alguns minutos a criar um hub IoT.

    YourIotHubName. Substitua este marcador de posição e as chavetas adjacentes no seguinte comando, com o nome que escolheu para o hub IoT. Um nome de hub IoT tem de ser globalmente exclusivo no Azure. Utilize o nome do hub IoT no resto deste início rápido, onde quer que veja o marcador de posição.

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

Registar um dispositivo

É necessário registar um dispositivo no hub IoT antes de o mesmo se poder ligar. Nesta secção, vai utilizar a CLI do Azure para criar uma identidade de dispositivo.

Se já tiver um dispositivo registado no seu hub IoT, pode ignorar esta secção.

Para criar uma identidade de dispositivo:

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

    your_iot_hub_name. Substitua este marcador de posição abaixo pelo nome que escolheu para o hub IoT.

    myDevice. Pode utilizar este nome para o ID 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 ligação está no seguinte formato:

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

Nota

Mantenha a aplicação da CLI aberta. Será utilizado em passos posteriores.

Obter a cadeia de ligação do serviço

Também precisa de uma cadeia de ligação do serviço para permitir que a aplicação back-end se ligue ao seu hub IoT e obtenha as mensagens. O seguinte comando obtém a cadeia de ligação do serviço do seu hub IoT:

YourIoTHubName: substitua este marcador de posição abaixo pelo nome que escolheu para o seu hub IoT.

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

Anote a cadeia de ligação do serviço, que se parece com:

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

Irá utilizar este valor mais adiante no guia de início rápido. Esta cadeia de ligação de serviço é diferente da cadeia de ligação do dispositivo que anotou no passo anterior.

Simular um dispositivo

A aplicação de dispositivo simulado liga-se a um ponto final específico do dispositivo no seu hub IoT, envia telemetria simulada e aguarda chamadas de método direto do seu hub. Neste guia de início rápido, a chamada de método direto do hub indica ao dispositivo para alterar o intervalo em que envia telemetria. O dispositivo simulado envia uma confirmação para o hub depois de executar o método direto.

  1. Numa janela de terminal local, navegue para o diretório de raiz do projeto Java de exemplo. Em seguida, navegue para a pasta iot-hub\Quickstarts\simulated-device-2.

  2. Abra o ficheiro src/main/java/com/microsoft/docs/iothub/samples/SimulatedDevice.java num editor de texto à sua escolha.

    Substitua o valor da connString variável pela cadeia de ligação do dispositivo que anota anteriormente. Em seguida, guarde as alterações a SimulatedDevice.java.

  3. Na janela do terminal local, execute os seguintes comandos para instalar as bibliotecas exigidas e compile a aplicação de dispositivo simulado:

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

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

    A seguinte captura de ecrã mostra a saída à medida que a aplicação de dispositivo simulado envia telemetria para o seu hub IoT:

    Saída da telemetria enviada pelo dispositivo para o hub IoT

Chamar o método direto

A aplicação back-end liga-se a um ponto final do lado do serviço no seu Hub IoT. A aplicação faz chamadas de método direto para um dispositivo através do seu hub IoT e escuta confirmações. Normalmente, as aplicações back-end do Hub IoT são executadas na cloud.

  1. Noutra janela de terminal local, navegue para o diretório de raiz do projeto Java de exemplo. Em seguida, navegue para a pasta iot-hub\Quickstarts\back-end-application.

  2. Abra o ficheiro src/main/java/com/microsoft/docs/iothub/samples/BackEndApplication.java num editor de texto à sua escolha.

    Substitua o valor da iotHubConnectionString variável pela cadeia de ligação de serviço que anota anteriormente. Em seguida, guarde as suas alterações em BackEndApplication.java.

  3. Na janela do terminal local, execute os seguintes comandos para instalar as bibliotecas exigidas e compilar a aplicação back-end:

    mvn clean package
    
  4. Na janela de terminal local, execute os seguintes comandos para executar a aplicação back-end:

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

    A captura de ecrã seguinte mostra o resultado à medida que a aplicação faz uma chamada de método direto para o dispositivo e recebe uma confirmação:

    Saída à medida que a aplicação faz uma chamada de método direto através do hub IoT

    Depois de executar a aplicação back-end, verá uma mensagem na janela da consola a executar o dispositivo simulado e a velocidade à qual a aplicação envia mensagens muda:

    A mensagem da consola do dispositivo mostra a taxa de alterações

Este início rápido utiliza duas aplicações Node.js:

  • Uma aplicação de dispositivo simulado que responde aos métodos diretos chamados a partir de uma aplicação back-end. Para receber as chamadas de método direto, esta aplicação liga-se a um ponto final específico do dispositivo no seu hub IoT.
  • Uma aplicação back-end que chama os métodos diretos no dispositivo simulado. Para chamar um método direto num dispositivo, esta aplicação liga-se a um ponto final específico do serviço no seu hub IoT.

Pré-requisitos

  • Uma conta do Azure com uma subscrição ativa. Crie um gratuitamente.

  • Node.js 12+

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

    node --version
    
  • Clone ou transfira os exemplos de Node.js do Azure IoT a partir do GitHub.

  • Certifique-se de que a porta 8883 está aberta na firewall. O exemplo de dispositivo neste início rápido utiliza o protocolo MQTT, que comunica através da porta 8883. Esta porta pode ser bloqueada em alguns ambientes de rede empresarial e educacional. Para obter mais informações e formas de resolver este problema, veja Ligar ao Hub IoT (MQTT).

Nota

Este artigo utiliza a versão mais recente da extensão do Azure IoT, denominada azure-iot. A versão legada chama-se azure-cli-iot-ext. Só deve ter uma versão instalada de cada vez. Pode utilizar o comando az extension list para validar as extensões atualmente instaladas.

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

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

Para ver que extensões instalou, utilize az extension list.

Criar um hub IoT

Nesta secção, vai utilizar a CLI do Azure para criar um hub IoT e um grupo de recursos. Um grupo de recursos do Azure é um contentor lógico no qual os recursos do Azure são implementados e geridos. Um hub IoT atua como um hub de mensagens central para comunicação bidirecional entre a sua aplicação IoT e os dispositivos.

Se já tiver um hub IoT na sua subscrição do Azure, pode ignorar esta secção.

Para criar um hub IoT e um grupo de recursos:

  1. Inicie a sua aplicação CLI. Para executar os comandos da CLI no resto deste artigo, copie a sintaxe do comando, cole-a na sua aplicação CLI, edite valores variáveis e prima Enter.

    • Se estiver a utilizar Cloud Shell, selecione o botão Experimentar nos comandos da CLI para iniciar Cloud Shell numa janela de browser dividida. Em alternativa, pode abrir o Cloud Shell num separador do browser separado.
    • Se estiver a utilizar a CLI do Azure localmente, inicie a aplicação de consola da CLI e inicie sessão 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. Na sua aplicação CLI, execute o comando az group create para criar um grupo de recursos. O seguinte comando cria um grupo de recursos com o nome MyResourceGroup na localização eastus .

    Nota

    Opcionalmente, pode definir uma localização diferente. Para ver as localizações disponíveis, execute az account list-locations. Este início rápido utiliza 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. Poderá demorar alguns minutos a criar um hub IoT.

    YourIotHubName. Substitua este marcador de posição e as chavetas adjacentes no seguinte comando, utilizando o nome que escolheu para o hub IoT. Um nome de hub IoT tem de ser globalmente exclusivo no Azure. Utilize o nome do hub IoT no resto deste início rápido onde quer que veja o marcador de posição.

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

Registar um dispositivo

É necessário registar um dispositivo no hub IoT antes de o mesmo se poder ligar. Nesta secção, vai utilizar a CLI do Azure para criar uma identidade de dispositivo.

Se já tiver um dispositivo registado no hub IoT, pode ignorar esta secção.

Para criar uma identidade de dispositivo:

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

    your_iot_hub_name. Substitua este marcador de posição abaixo pelo nome que escolheu para o hub IoT.

    myDevice. Pode utilizar este nome para o ID 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 ligação está no seguinte formato:

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

Nota

Mantenha a sua aplicação CLI aberta. Será utilizado em passos posteriores.

Obter a cadeia de ligação do serviço

Também precisa da cadeia de ligação de serviço do hub IoT para permitir que a aplicação de back-end se ligue ao hub IoT e obtenha as mensagens. O seguinte comando obtém a cadeia de ligação do serviço do seu hub IoT:

YourIoTHubName: substitua este marcador de posição abaixo pelo nome que escolheu para o seu hub IoT.

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

Anote a cadeia de ligação do serviço, que se parece com:

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

Irá utilizar este valor mais adiante no guia de início rápido. Esta cadeia de ligação de serviço é diferente da cadeia de ligação do dispositivo que anotou no passo anterior.

Simular um dispositivo

A aplicação de dispositivo simulado liga-se a um ponto final específico do dispositivo no seu hub IoT, envia telemetria simulada e aguarda chamadas de método direto do seu hub. Neste guia de início rápido, a chamada de método direto do hub indica ao dispositivo para alterar o intervalo em que envia telemetria. O dispositivo simulado envia uma confirmação para o hub depois de executar o método direto.

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

  2. Abra o ficheiro SimulatedDevice.js num editor de texto à sua escolha.

    Substitua o valor da connectionString variável pela cadeia de ligação do dispositivo que anotava anteriormente. Em seguida, guarde as alterações ao SimulatedDevice.js.

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

    npm install
    node SimulatedDevice.js
    

    A seguinte captura de ecrã mostra a saída à medida que a aplicação de dispositivo simulado envia telemetria para o seu hub IoT:

    Executar o dispositivo simulado

Chamar o método direto

A aplicação de back-end liga-se a um ponto final do lado do serviço no seu hub IoT. A aplicação faz chamadas de método direto para um dispositivo através do hub IoT e escuta confirmações. Normalmente, as aplicações back-end do Hub IoT são executadas na cloud.

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

  2. Abra o ficheiro BackEndApplication.js num editor de texto à sua escolha.

    Substitua o valor da connectionString variável pela cadeia de ligação de serviço que anota anteriormente. Em seguida, guarde as alterações ao BackEndApplication.js.

  3. Na janela do terminal local, execute os seguintes comandos para instalar as bibliotecas exigidas e executar a aplicação back-end:

    npm install
    node BackEndApplication.js
    

    A captura de ecrã seguinte mostra o resultado à medida que a aplicação faz uma chamada de método direto para o dispositivo e recebe uma confirmação:

    Saída quando a aplicação efetua uma chamada de método direto para o dispositivo

    Depois de executar a aplicação back-end, verá uma mensagem na janela da consola a executar o dispositivo simulado e a velocidade à qual a aplicação envia mensagens muda:

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

Este início rápido utiliza duas aplicações Python:

  • Uma aplicação de dispositivo simulado que responde aos métodos diretos chamados a partir de uma aplicação back-end.
  • Uma aplicação back-end que chama os métodos diretos no dispositivo simulado.

Pré-requisitos

Nota

Este artigo utiliza a versão mais recente da extensão do Azure IoT, denominada azure-iot. A versão legada chama-se azure-cli-iot-ext. Só deve ter uma versão instalada de cada vez. Pode utilizar o comando az extension list para validar as extensões atualmente instaladas.

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

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

Para ver que extensões instalou, utilize az extension list.

Criar um hub IoT

Nesta secção, vai utilizar a CLI do Azure para criar um hub IoT e um grupo de recursos. Um grupo de recursos do Azure é um contentor lógico no qual os recursos do Azure são implementados e geridos. Um hub IoT atua como um hub de mensagens central para comunicação bidirecional entre a sua aplicação IoT e os dispositivos.

Se já tiver um hub IoT na sua subscrição do Azure, pode ignorar esta secção.

Para criar um hub IoT e um grupo de recursos:

  1. Inicie a sua aplicação CLI. Para executar os comandos da CLI no resto deste artigo, copie a sintaxe do comando, cole-a na sua aplicação CLI, edite valores variáveis e prima Enter.

    • Se estiver a utilizar Cloud Shell, selecione o botão Experimentar nos comandos da CLI para iniciar Cloud Shell numa janela de browser dividida. Em alternativa, pode abrir o Cloud Shell num separador do browser separado.
    • Se estiver a utilizar a CLI do Azure localmente, inicie a aplicação de consola da CLI e inicie sessão 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. Na sua aplicação CLI, execute o comando az group create para criar um grupo de recursos. O seguinte comando cria um grupo de recursos com o nome MyResourceGroup na localização eastus .

    Nota

    Opcionalmente, pode definir uma localização diferente. Para ver as localizações disponíveis, execute az account list-locations. Este início rápido utiliza 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. Poderá demorar alguns minutos a criar um hub IoT.

    YourIotHubName. Substitua este marcador de posição e as chavetas adjacentes no seguinte comando, utilizando o nome que escolheu para o hub IoT. Um nome de hub IoT tem de ser globalmente exclusivo no Azure. Utilize o nome do hub IoT no resto deste início rápido onde quer que veja o marcador de posição.

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

Registar um dispositivo

É necessário registar um dispositivo no hub IoT antes de o mesmo se poder ligar. Nesta secção, vai utilizar a CLI do Azure para criar uma identidade de dispositivo.

Se já tiver um dispositivo registado no hub IoT, pode ignorar esta secção.

Para criar uma identidade de dispositivo:

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

    your_iot_hub_name. Substitua este marcador de posição abaixo pelo nome que escolheu para o hub IoT.

    myDevice. Pode utilizar este nome para o ID 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 ligação está no seguinte formato:

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

Nota

Mantenha a sua aplicação CLI aberta. Será utilizado em passos posteriores.

Obter a cadeia de ligação do serviço

Também precisa de uma cadeia de ligação do serviço para permitir que a aplicação back-end se ligue ao seu hub IoT e obtenha as mensagens. O seguinte comando obtém a cadeia de ligação do serviço do seu hub IoT:

YourIoTHubName: substitua este marcador de posição abaixo pelo nome que escolher para o seu hub IoT.

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

Anote a cadeia de ligação do serviço, que se parece com:

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

Irá utilizar este valor mais adiante no guia de início rápido. Esta cadeia de ligação de serviço é diferente da cadeia de ligação do dispositivo que anotou no passo anterior.

Simular um dispositivo

A aplicação de dispositivo simulado liga-se a um ponto final específico do dispositivo no seu hub IoT, envia telemetria simulada e aguarda chamadas de método direto do seu hub. Neste guia de início rápido, a chamada de método direto do hub indica ao dispositivo para alterar o intervalo em que envia telemetria. O dispositivo simulado envia uma confirmação para o hub depois de executar o método direto.

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

  2. Abra o ficheiro SimulatedDeviceSync.py num editor de texto à sua escolha.

    Substitua o valor da CONNECTION_STRING variável pela cadeia de ligação do dispositivo que anota anteriormente. Em seguida, guarde as alterações ao SimulatedDeviceSync.py.

  3. Na janela de terminal local, execute os seguintes comandos para instalar as bibliotecas exigidas para a aplicação de dispositivo simulado:

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

    python SimulatedDeviceSync.py
    

    A seguinte captura de ecrã mostra a saída à medida que a aplicação de dispositivo simulado envia telemetria para o seu hub IoT:

    Executar o dispositivo simulado

Chamar o método direto

A aplicação back-end liga-se a um ponto final do lado do serviço no seu Hub IoT. A aplicação faz chamadas de método direto para um dispositivo através do seu hub IoT e escuta confirmações. Normalmente, as aplicações back-end do Hub IoT são executadas na cloud.

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

  2. Abra o ficheiro BackEndApplication.py num editor de texto à sua escolha.

    Substitua o valor da CONNECTION_STRING variável pela cadeia de ligação de serviço que anota anteriormente. Em seguida, guarde as alterações efetuadas ao BackEndApplication.py.

  3. Na janela de terminal local, execute os seguintes comandos para instalar as bibliotecas exigidas para a aplicação de dispositivo simulado:

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

    python BackEndApplication.py
    

    A seguinte captura de ecrã mostra o resultado à medida que a aplicação faz uma chamada de método direto para o dispositivo e recebe uma confirmação:

    Executar a aplicação back-end

    Depois de executar a aplicação back-end, verá uma mensagem na janela da consola a executar o dispositivo simulado e a velocidade à qual a aplicação envia mensagens muda:

    Alteração no cliente simulado

Limpar os recursos

Se avançar para o próximo artigo recomendado, pode manter os recursos que já criou e reutilizá-los.

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

Importante

A eliminação de um grupo de recursos é irreversível. O grupo de recursos e todos os recursos nele contidos são eliminados permanentemente. Confirme que não elimina acidentalmente o grupo de recursos ou recursos errados. Se tiver criado o Hub IoT no interior de um grupo de recursos existente que contenha recursos que pretende manter, elimine apenas o recurso do Hub IoT, em vez de eliminar o grupo de recursos.

Para eliminar um grupo de recursos por nome:

  1. Inicie sessão no Portal do Azure e selecione Grupos de recursos.

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

  3. À direita do grupo de recursos na lista de resultados, selecione ... e, em seguida, Eliminar grupo de recursos.

    Eliminar

  4. É-lhe pedido que confirme a eliminação do grupo de recursos. Escreva novamente o nome do grupo de recursos para confirmar e, em seguida, selecione Eliminar. Após alguns instantes, o grupo de recursos e todos os recursos contidos no mesmo são eliminados.

Passos seguintes

Neste início rápido, chamou um método direto num dispositivo a partir de uma aplicação de serviço e respondeu à chamada de método direto numa aplicação de dispositivo simulado.

Para saber como encaminhar mensagens do dispositivo para a cloud para diferentes destinos na cloud, avance para o tutorial seguinte.