Desenvolvimento de dispositivo IoT do Azure

A Internet das Coisas do Azure é uma coleção de serviços gerenciados e de plataforma que conectam, monitoram e controlam seus dispositivos IoT. A Internet das Coisas do Azure oferece aos desenvolvedores um conjunto abrangente de opções. Suas opções incluem plataformas de dispositivo, serviços de nuvem com suporte, SDKs, suporte a MQTT e ferramentas para a criação de aplicativos de nuvem habilitados para dispositivos.

Este artigo fornece uma visão geral de diversos aspectos importantes para desenvolvedores que estão começando a usar a Internet das Coisas do Azure.

Caminhos de desenvolvimento de dispositivo

Este artigo discute dois caminhos comuns de desenvolvimento de dispositivos. Cada caminho inclui um conjunto de opções e tarefas de desenvolvimento relacionadas.

  • Desenvolvimento geral de dispositivos: alinha-se às práticas modernas de desenvolvimento, visa linguagens de ordem superior e é executado em um sistema operacional de uso geral, como Windows ou Linux.

    Observação

    Se o seu dispositivo puder executar um sistema operacional de uso geral, recomendamos seguir o caminho Desenvolvimento geral do dispositivo. Ele fornece um conjunto mais rico de opções de desenvolvimento.

  • Desenvolvimento de dispositivos inseridos: descreve o desenvolvimento voltado a dispositivos com restrições de recursos. Geralmente, você usa um dispositivo com restrição de recursos para reduzir os custos por unidade, o consumo de energia ou o tamanho do dispositivo. Esses dispositivos têm controle direto sobre a plataforma de hardware em que são executados.

Desenvolvimento geral de dispositivos

Alguns desenvolvedores adaptam os dispositivos de uso geral existentes para se conectar à nuvem e integrá-los às suas soluções de IoT. Esses dispositivos podem dar suporte a linguagens de ordem superior, como C# ou Python, e muitas vezes dão suporte a um sistema operacional de uso geral robusto, como Windows ou Linux. Dispositivos de destino comuns incluem PCs, contêineres, Raspberry Pis e dispositivos móveis.

Em vez de desenvolver dispositivos restritos em escala, os desenvolvedores de dispositivos em geral se concentram em permitir um cenário específico de IoT exigido por sua solução na nuvem. Alguns desenvolvedores também trabalham em dispositivos restritos para sua solução de nuvem. Para desenvolvedores que trabalham com dispositivos com restrição de recursos, confira o caminho Desenvolvimento de dispositivos inseridos.

Importante

Para obter informações sobre os SDKs a serem usados para o desenvolvimento geral de dispositivos, consulte os SDKs de Dispositivos.

Desenvolvimento de dispositivos inseridos

O desenvolvimento inserido é destinado a dispositivos restritos com memória e processamento limitados. Dispositivos restritos restringem o que pode ser realizado em comparação com uma plataforma de desenvolvimento tradicional.

Normalmente, dispositivos inseridos usam um RTOS (sistema operacional em tempo real) ou nenhum sistema operacional. Os dispositivos inseridos têm controle total sobre seu hardware devido à falta de um sistema operacional de uso geral. Isso faz deles uma boa opção para sistemas em tempo real.

Os SDKs inseridos atuais têm como destino a linguagem C. Os SDKs inseridos não fornecem nenhum sistema operacional ou suporte ao Eclipse ThreadX. Eles são projetados tendo os destinos inseridos em mente. As considerações de design incluem a necessidade de um volume mínimo e um design de alocação sem memória.

Importante

Para obter informações sobre SDKs a serem usados com o desenvolvimento de dispositivos inseridos, consulte os SDKs de dispositivos inseridos.

Escolhendo o hardware

Os dispositivos de Internet das Coisas do Azure são os blocos de construção básicos de uma solução de IoT e são responsáveis por observar e interagir com seu ambiente. Há muitos tipos diferentes de dispositivos de IoT, e é útil entender os tipos de dispositivos que existem e como eles podem afetar o processo de desenvolvimento.

Para obter mais informações sobre a diferença entre os tipos de dispositivos abordados neste artigo, confira Sobre os tipos de dispositivo de IoT.

Escolhendo um SDK

Como desenvolvedor de dispositivos do IoT do Azure, você tem um conjunto diversificado de SDKs, protocolos e ferramentas que ajudam a criar aplicativos de nuvem habilitados para dispositivos.

Há duas opções principais para conectar dispositivos e se comunicar com Hub IoT:

  • Use os SDKs da IoT do Azure. Na maioria dos casos, recomendamos que você use os SDKs da IoT do Azure em vez de usar o MQTT diretamente. Os SDKs simplificam o esforço de desenvolvimento e grande parte da complexidade da conexão e do gerenciamento de dispositivos. O Hub IoT dá suporte ao protocolo MQTT v3.1.1 e os SDKs de IoT simplificam o processo de uso do MQTT para se comunicar com Hub IoT.
  • Use o protocolo MQTT diretamente. Há algumas vantagens em criar uma solução do Hub IoT para usar o MQTT diretamente. Por exemplo, uma solução que usa MQTT diretamente sem os SDKs pode ser criada no padrão MQTT aberto. Uma abordagem baseada em padrões torna a solução mais portátil e fornece mais controle sobre como os dispositivos se conectam e se comunicam. Entretanto, o Hub IoT não é um agente MQTT completo e não dá suporte a todos os comportamentos especificados no padrão MQTT v3.1.1. O suporte parcial para MQTT v3.1.1 adiciona custo de desenvolvimento e complexidade. Os desenvolvedores de dispositivos devem avaliar as vantagens de usar os SDKs do dispositivo IoT em vez de usar o MQTT diretamente. Para saber mais, consulte Comunicar-se com o Hub IoT usando o protocolo MQTT.

Há três conjuntos de SDKs de IoT para desenvolvimento de dispositivos:

  • SDKs de dispositivo (para usar linguagens de ordem superior para conectar dispositivos de uso geral existentes a aplicativos de IoT)
  • SDKs de dispositivos inseridos (para conectar dispositivos com restrição de recursos a aplicativos IoT)
  • SDKs de serviço (para criar soluções de Internet das Coisas do Azure que conectam dispositivos a serviços)

Para saber mais sobre como escolher um dispositivo IoT do Azure ou um SDK de serviço, consulte SDKs de IoT do Azure.

Selecionar um serviço

Uma etapa fundamental no processo de desenvolvimento é selecionar um serviço ao qual conectar seus dispositivos. Há duas opções principais de serviço de Internet das Coisas do Azure para conectar e gerenciar dispositivos: Hub IoT e IoT Central.

  • Hub IoT do Azure. Você pode usar o Hub IoT para hospedar aplicativos IoT e conectar dispositivos. O Hub IoT é um aplicativo de PaaS (plataforma como serviço) que atua como um hub central de mensagens para comunicação bidirecional entre aplicativos IoT e os dispositivos conectados. Um Hub IoT pode ser dimensionado para lidar com milhões de dispositivos. Em comparação com outros serviços de Internet das Coisas do Azure, o Hub IoT oferece o maior controle e personalização sobre o design do aplicativo. Ele também oferece a maioria das opções de ferramentas para desenvolvedores para trabalhar com o serviço, às custas de algum aumento na complexidade de desenvolvimento e de gerenciamento.
  • Azure IoT Central. O IoT Central foi projetado para simplificar o processo de trabalho com soluções de IoT. Você pode usá-lo como prova de conceito para avaliar suas soluções de IoT. O IoT Central é um aplicativo SaaS (software como serviço) que fornece uma interface do usuário da Web para simplificar as tarefas de criação de aplicativos e conexão e gerenciamento de dispositivos. O IoT Central usa o Hub IoT para criar e gerenciar aplicativos, mas mantém a maioria dos detalhes transparentes ao usuário.

Ferramentas para conectar e gerenciar dispositivos

Depois de selecionar um hardware e um SDK de dispositivo para usar, você terá várias opções de ferramentas de desenvolvedor. Você pode usar essas ferramentas para conectar seu dispositivo ao Hub IoT e gerenciá-lo. A tabela a seguir resume as opções de ferramentas mais comuns.

Ferramenta Documentação Descrição
Portal do Azure Criar um hub IoT usando o portal do Azure Portal baseado em navegador para o Hub IoT e os dispositivos. Também funciona com outros recursos do Azure, inclusive o IoT Central.
Azure IoT Explorer Azure IoT Explorer Não é possível criar Hubs IoT. Conecta-se a um Hub IoT existente para gerenciar dispositivos. Frequentemente usado com a CLI ou o portal.
CLI do Azure Criar um hub IoT com a CLI Interface de linha de comando para criar e gerenciar aplicativos IoT.
Azure PowerShell Criar um Hub IoT com o PowerShell Interface do PowerShell para criar e gerenciar aplicativos IoT
Azure IoT Tools para VS Code Criar um Hub IoT com ferramentas para VS Code Extensão do VS Code para aplicativos do Hub IoT.

Observação

Além das ferramentas listadas anteriormente, você pode criar e gerenciar programaticamente aplicativos IoT usando APIs REST, SDKs do Azure ou modelos do Azure Resource Manager. Saiba mais na documentação dos serviços Hub IoT.

Próximas etapas

Para saber mais sobre SDKs de dispositivo que você pode usar para conectar dispositivos ao Internet das Coisas do Azure, consulte o artigo a seguir.

Para começar a usar o desenvolvimento prático de dispositivos, selecione um tutorial de desenvolvimento de dispositivos relevante para os dispositivos que você estiver usando. Os tutoriais a seguir são bons pontos de partida para desenvolvimento geral de dispositivos ou desenvolvimento de dispositivo inserido.