Conectar dispositivos Azure IoT Edge a um aplicativo do Azure IoT Central

O Azure IoT Edge move a análise de nuvem e lógica de negócios personalizada da nuvem para seus dispositivos. Essa abordagem permite que sua solução de nuvem se concentre em informações de negócios em vez de gerenciamento de dados. Escale horizontalmente sua solução de IoT ao empacotar sua lógica de negócios em contêineres padrão, implante esses contêineres para seus dispositivos e monitore-os da nuvem.

Este artigo descreve:

  • Padrões do gateway do IoT Edge com IoT Central.
  • Como conectar o dispositivo IoT Edge a um aplicativo IoT Central.
  • Como usar o IoT Central para gerenciar seus dispositivos do IoT Edge.

Para saber mais sobre o IoT Edge, consulte O que é o Azure IoT Edge?

IoT Edge

Azure IoT Central with Azure IoT Edge

O IoT Edge é composto por três componentes:

  • Os módulos do IoT Edge são contêineres que executam serviços do Azure, serviços do parceiro ou o seu próprio código. Os módulos são implantados em dispositivos do IoT Edge e executados localmente nesses dispositivos. Um manifesto de implantação especifica os módulos para implantar em um dispositivo IoT Edge.
  • O runtime do IoT Edge é executado em cada dispositivo IoT Edge e gerencia os módulos implantados em cada dispositivo. O runtime consiste em dois módulos IoT Edge: Agente do IoT Edge e Hub do IoT Edge.
  • Uma interface baseada em nuvem permite monitorar e gerenciar dispositivos do IoT Edge remotamente. O IoT Central é um exemplo de uma interface de nuvem.

O IoT Central permite os seguintes recursos para dispositivos IoT Edge:

  • Gerenciamento de manifesto de implantação. Um aplicativo do IoT Central pode gerenciar uma coleção de manifestos de implantação e atribuí-los a dispositivos.
  • Modelos de dispositivo para descrever os recursos de um dispositivo IoT Edge, como:
    • A telemetria enviada por cada módulo do IoT Edge.
    • As propriedades que cada módulo do IoT Edge relata.
    • Os comandos aos quais cada módulo do IoT Edge responde.
    • As relações entre um dispositivo de gateway IoT Edge e um dispositivo downstream.
    • Propriedades de nuvem que não são armazenadas no dispositivo do IoT Edge.
    • Exibições e formulários de dispositivo.
  • A capacidade de provisionar dispositivos IoT Edge em escala usando o serviço de provisionamento de dispositivos de Internet das Coisas do Azure.
  • Regras e ações.
  • Painéis e análises personalizados.
  • Exportação de dados contínua de telemetria fluindo de dispositivos Azure IoT Edge.

Um dispositivo IoT Edge pode ser:

  • Um dispositivo autônomo composto por módulos personalizados.
  • Um dispositivo de gateway, com dispositivos downstream se conectando a ele. Um dispositivo de gateway pode incluir módulos personalizados.

Dispositivos IoT Edge e IoT Central

IoT Edge dispositivos podem usar tokens de assinatura de acesso compartilhado ou certificados X.509 para autenticar com o IoT Central. É possível registrar manualmente os dispositivos IoT Edge no IoT Central antes que eles se conectem pela primeira vez; ou usar o Serviço de Provisionamento de dispositivos para lidar com o registro. Para saber mais, veja como os dispositivos se conectam.

O IoT Central usa opcionalmente modelos de dispositivo para definir como o IoT central interage com um dispositivo do IoT Edge. Por exemplo, um modelo de dispositivo especifica:

  • Os tipos de telemetria e propriedades que um dispositivo do IoT Edge envia para que o IoT Central possa interpretá-los e criar visualizações.
  • Os comandos aos quais um dispositivo do IoT Edge responde para que o IoT Central possa exibir uma interface do usuário para um operador usar para chamar os comandos.

Se não houver nenhum modelo de dispositivo associado a um dispositivo, os valores de telemetria e propriedade serão exibidos como dados não modelados. No entanto, você ainda pode usar os recursos de exportação de dados do IoT Central para encaminhar valores de telemetria e propriedade para outros serviços de back-end.

Manifestos de implantação do IoT Edge

No IoT Edge, é possível implantar e gerenciar a lógica de negócios na forma de módulos. Os módulos do IoT Edge são a menor unidade de computação gerenciada pelo IoT Edge e podem conter serviços do Azure, como por exemplo, o Azure Stream Analytics ou o código específico da sua própria solução.

Um manifesto de implantação do IoT Edge lista os módulos do IoT Edge a ser implantados no dispositivo e como configurá-los.

No Azure IoT Central, navegue até Manifestos do Edge para importar e gerenciar os manifestos de implantação para os dispositivos do IoT Edge em sua solução.

O snippet de código a seguir mostra um exemplo IoT Edge manifesto de implantação:

{
  "modulesContent": {
    "$edgeAgent": {
      "properties.desired": {
        "schemaVersion": "1.0",
        "runtime": {
          "type": "docker",
          "settings": {
            "minDockerVersion": "v1.25",
            "loggingOptions": "",
            "registryCredentials": {}
          }
        },
        "systemModules": {
          "edgeAgent": {
            "type": "docker",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-agent:1.0.9",
              "createOptions": "{}"
            }
          },
          "edgeHub": {
            "type": "docker",
            "status": "running",
            "restartPolicy": "always",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-hub:1.0.9",
              "createOptions": "{}"
            }
          }
        },
        "modules": {
          "SimulatedTemperatureSensor": {
            "version": "1.0",
            "type": "docker",
            "status": "running",
            "restartPolicy": "always",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0",
              "createOptions": "{}"
            }
          }
        }
      }
    },
    "$edgeHub": {
      "properties.desired": {
        "schemaVersion": "1.0",
        "routes": {
            "route": "FROM /* INTO $upstream"
        },
        "storeAndForwardConfiguration": {
          "timeToLiveSecs": 7200
        }
      }
    },
    "SimulatedTemperatureSensor": {
      "properties.desired": {
           "SendData": true,
           "SendInterval": 10
      }
    }
  }
}

No snippet anterior, é possível ver:

  • Há três módulos. O agente do IoT Edge e os módulos de sistema do hub do IoT Edge que estão presentes em cada manifesto de implantação. O módulo SimulatedTemperatureSensor personalizado.
  • As imagens do módulo público saem, por pull, do repositório do Registro de Contêiner do Azure, que não requer nenhuma credencial para se conectar. Para imagens do módulo particular, defina as credenciais de registro de contêiner a serem usadas na configuração registryCredentials para o módulo agente do IoT Edge.
  • O módulo SimulatedTemperatureSensor personalizado tem duas propriedades graváveis, "SendData": true e "SendInterval": 10.

A captura de tela a seguir mostra esse manifesto de implantação importado para o IoT Central:

Screenshot that shows the imported Environmental sensor deployment manifest.

Se seu aplicativo usa organizações, você pode atribuir seus manifestos de implantação a organizações específicas. A captura de tela anterior mostra o manifesto de implantação atribuído à organização Gerenciador de Lojas/Américas.

Para saber como usar a página Manifestos do Edge e atribuir manifestos de implantação a dispositivos IoT Edge, consulte Gerenciar manifestos de implantação do IoT Edge em seu aplicativo do IoT Central.

Gerenciar um dispositivo não atribuído

Um dispositivo IoT Edge que não tem um modelo de dispositivo associado é conhecido como um dispositivo não atribuído. Você não pode usar recursos do IoT Central, como painéis, grupos de dispositivos, análise, regras e trabalhos com dispositivos não atribuídos. No entanto, você pode usar os seguintes recursos com dispositivos não atribuídos:

  • Exiba dados brutos, como telemetria e propriedades.
  • Chamar os comandos do dispositivo.
  • Propriedades de leitura e gravação.

Screenshot that shows unassigned device capabilities.

Você também pode gerenciar módulos individuais em dispositivos não atribuídos:

Screenshot that shows the options for managing modules on unassigned devices.

Modelos de dispositivo IoT Edge

Os modelos de dispositivo IoT Central usam modelos para descrever as funcionalidades dos dispositivos IoT Edge. Os modelos de dispositivo são opcionais para dispositivos IoT Edge. O modelo de dispositivo permite que você interaja com telemetria, propriedades e comandos usando recursos do IoT Central, como painéis e análise. O diagrama a seguir mostra a estrutura do modelo para um dispositivo IoT Edge:

Diagram that shows the model structure for an IoT Edge device connected to IoT Central.

O IoT Central modela um dispositivo IoT Edge da seguinte maneira:

  • Cada modelo de dispositivo IoT Edge tem um modelo de funcionalidade de dispositivo.
  • Para cada módulo personalizado listado no manifesto de implantação, adicione uma definição de módulo se quiser usar o IoT Central para interagir com esse módulo.
  • Um modelo de funcionalidade do módulo implementa uma ou mais interfaces de módulo.
  • Cada interface de módulo contém telemetria, propriedades e comandos.

Você pode gerar o modelo de funcionalidade básica com base nos módulos e nas propriedades definidos no manifesto do dispositivo. Para saber mais, confira Adicionar módulos e propriedades a modelos de dispositivo.

Padrões de gateway do IoT Edge

O IoT Central dá suporte aos seguintes padrões de dispositivo IoT Edge:

O IoT Edge como um gateway transparente

Os dispositivos downstream se conectam o IoT Central por meio do gateway com sua própria identidade.

IoT Edge as transparent gateway

O dispositivo IoT Edge é provisionado no IoT Central junto com os dispositivos downstream conectados ao dispositivo IoT Edge. O suporte ao runtime para o provisionamento de dispositivos downstream por meio do gateway não está disponível no momento.

O módulo hub do IoT Edge se comporta como o IoT Central e manipula conexões de dispositivos registrados no IoT Central. As mensagens passam de dispositivos downstream para o IoT Central como se não houvesse nenhum gateway entre eles. Em um gateway transparente, você não pode usar módulos personalizados para manipular as mensagens dos dispositivos downstream.

Observação

No momento, o IoT Central não dá suporte à conexão de um dispositivo IoT Edge como um dispositivo downstream a um gateway IoT Edge transparente. Isso ocorre porque todos os dispositivos que se conectam ao IoT Central são provisionados com o DPS (serviço de provisionamento de dispositivos) e o DPS, atualmente não dá suporte a cenários aninhados do IoT Edge.

O IoT Edge como um gateway de conversão de protocolo

Esse padrão permite que você conecte dispositivos que não podem usar nenhum dos protocolos aos quais IoT Central dá suporte.

IoT Edge as protocol translation gateway

O dispositivo IoT Edge é provisionado no IoT Central e qualquer telemetria de seus dispositivos downstream é representada como proveniente do dispositivo IoT Edge. Os dispositivos downstream conectados ao dispositivo IoT Edge não são provisionados no IoT Central.

O IoT Edge como um gateway de tradução de identidade

Os dispositivos downstream se conectam a um módulo no gateway que fornece o IoT Central de dispositivo para eles.

IoT Edge as identity translation gateway

O dispositivo IoT Edge é provisionado no IoT Central junto com os dispositivos downstream conectados ao dispositivo IoT Edge. Atualmente, o IoT Central não tem suporte de runtime para um gateway para fornecer uma identidade e provisionar dispositivos downstream. Se você colocar seu próprio módulo de conversão de identidade, IoT Central poderá dar suporte a esse padrão.

Relações de dispositivo downstream com um gateway e módulos

Se os dispositivos downstream se conectarem a um dispositivo de gateway IoT Edge por meio do módulo do IoT Edge hub, o dispositivo IoT Edge será um gateway transparente:

Diagram of transparent gateway

Se os dispositivos downstream se conectarem a um dispositivo de gateway IoT Edge por meio de um módulo personalizado, o dispositivo IoT Edge será um gateway tradução. No exemplo a seguir, os dispositivos downstream se conectam por meio de um módulo personalizado Modbus que faz a tradução de protocolo:

Diagram of custom module connection

O diagrama a seguir mostra a conexão a um dispositivo de gateway do IoT Edge por meio dos dois os tipos de módulos. Nesse cenário, o dispositivo IoT Edge é um gateway de conversão e transparente:

Diagram of connecting using both connection modules

Os dispositivos downstream podem se conectar a um dispositivo de gateway do IoT Edge por meio de vários módulos personalizados. O diagrama a seguir mostra os dispositivos downstream que se conectam por meio de um módulo personalizado Modbus, um módulo BLE personalizado e o módulo hub do IoT Edge:

Diagram of connecting using multiple custom modules

Para saber mais sobre os padrões de gateway do IoT Edge, consulte Como um dispositivo IoT Edge pode ser usado como um gateway.

Implantar o runtime do IoT Edge

Para saber onde pode ser executado o runtime do IoT Edge, consulte Sistemas com suporte para o Azure IoT Edge.

Também é possível instalar o runtime do IoT Edge nos seguintes ambientes:

Monitorar seus dispositivos IoT Edge

Para saber como monitorar remotamente sua frota IoT Edge, confira Coletar e transportar métricas.

Próximas etapas

Uma próxima etapa sugerida é aprender como Desenvolver seus próprios módulos de IoT Edge.