Desenvolvimento de dispositivos IoT do Azure

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

Este artigo apresenta várias considerações importantes para desenvolvedores que estão começando a usar o Azure IoT.

Caminhos de desenvolvimento de dispositivos

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 com as práticas de desenvolvimento modernas, destina-se a linguagens de ordem superior e é executado em um sistema operacional de uso geral, como Windows ou Linux.

    Nota

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

  • Desenvolvimento de dispositivos incorporados: descreve o desenvolvimento direcionado a dispositivos com restrição de recursos. Muitas vezes, você usa um dispositivo com restrição de recursos para reduzir os custos unitários, 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 dispositivos existentes de uso geral para se conectar à nuvem e integrar suas soluções de IoT. Esses dispositivos podem suportar linguagens de ordem superior, como C# ou Python, e geralmente suportam um sistema operacional robusto de uso geral, como Windows ou Linux. Os dispositivos alvo comuns incluem PCs, contêineres, Raspberry Pis e dispositivos móveis.

Em vez de desenvolver dispositivos restritos em escala, os desenvolvedores de dispositivos gerais se concentram em habilitar um cenário de IoT específico exigido por sua solução de 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, consulte o caminho de desenvolvimento de dispositivo incorporado.

Importante

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

Desenvolvimento de dispositivos incorporados

O desenvolvimento incorporado tem como alvo dispositivos restritos que têm memória e processamento limitados. Dispositivos restritos restringem o que pode ser alcançado em comparação com uma plataforma de desenvolvimento tradicional.

Os dispositivos incorporados normalmente usam um sistema operacional em tempo real (RTOS) ou nenhum sistema operacional. Os dispositivos embarcados têm controle total sobre seu hardware, devido à falta de um sistema operacional de uso geral. Esse fato torna os dispositivos embarcados uma boa escolha para sistemas em tempo real.

Os SDKs incorporados atuais destinam-se à linguagem C . Os SDKs incorporados não fornecem nenhum sistema operacional ou suporte ao Eclipse ThreadX. Eles são projetados com alvos incorporados em mente. As considerações de design incluem a necessidade de uma pegada mínima e um design de alocação sem memória.

Importante

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

Escolher o seu hardware

Os dispositivos IoT 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. Existem muitos tipos diferentes de dispositivos IoT, e é útil entender os tipos de dispositivos que existem e como eles podem afetar seu processo de desenvolvimento.

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

Escolhendo um SDK

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

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

  • Use os SDKs do Azure IoT. Na maioria dos casos, recomendamos que você use os SDKs do Azure IoT em vez de usar MQTT diretamente. Os SDKs otimizam seu esforço de desenvolvimento e simplificam a complexidade de conectar e gerenciar dispositivos. O Hub IoT suporta o protocolo MQTT v3.1.1 e os SDKs IoT simplificam o processo de uso do MQTT para se comunicar com o Hub IoT.
  • Use o protocolo MQTT diretamente. Existem algumas vantagens de criar uma solução de Hub IoT para usar o MQTT diretamente. Por exemplo, uma solução que usa MQTT diretamente sem os SDKs pode ser construída no padrão MQTT aberto. Uma abordagem baseada em padrões torna a solução mais portátil e oferece mais controle sobre como os dispositivos se conectam e se comunicam. No entanto, o Hub IoT não é um broker MQTT completo e não suporta 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 pesar as compensações de usar os SDKs de dispositivos IoT versus usar MQTT diretamente. Para obter mais informações, consulte Comunicar com um 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 IoT)
  • SDKs de dispositivos incorporados (para conectar dispositivos com restrição de recursos a aplicativos IoT)
  • SDKs de serviço (para criar soluções do Azure IoT que conectam dispositivos a serviços)

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

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 do Azure IoT para conectar e gerenciar dispositivos: Hub IoT e IoT Central.

  • Hub IoT do Azure. Use o Iot Hub para hospedar aplicativos IoT e conectar dispositivos. O Hub IoT é um aplicativo de plataforma como serviço (PaaS) que atua como um hub de mensagens central para comunicação bidirecional entre aplicativos IoT e dispositivos conectados. O Hub IoT pode ser dimensionado para suportar milhões de dispositivos. Em comparação com outros serviços do Azure IoT, o Hub IoT oferece o maior controle e personalização sobre o design do seu aplicativo. Ele também oferece a maioria das opções de ferramentas de desenvolvedor para trabalhar com o serviço, ao custo de algum aumento na complexidade de desenvolvimento e 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 uma 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 para o usuário.

Ferramentas para ligar e gerir dispositivos

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

Ferramenta Documentação Description
Portal do Azure Criar um hub IoT com o portal do Azure Portal baseado em navegador para Hub IoT e dispositivos. Também funciona com outros recursos do Azure, incluindo 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. Muitas vezes usado com CLI ou Portal.
CLI do Azure Criar um hub IoT com 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 VS Code para aplicativos do Hub IoT.

Nota

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 do serviço Hub IoT.

Próximos passos

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

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