Introdução ao Microsoft Azure IoT

O que vem na sua mente quando você ouve o termo IoT? Na minha mente sempre costumava pensar em sistemas embarcados e conectividade. Uma visão um tanto quanto limitada e genérica. As demandas comerciais requerem soluções IoT completas, muito mais amplas que sejam escaláveis, seguras e de desenvolvimento ágil. 

E o que seria uma solução IoT completa? Uma solução que engloba desde o dispositivo remoto, o envio dos dados, o processamento dos dados e a visualização dos dados. Ah, e talvez o que mais a imaginação permitir, em tempos de metaverso… Mas, tudo isso ainda não é suficiente para uma solução robusta com o potencial de atender as demandas reais de um cliente. Outras demandas formam os grandes diferenciais  para soluções comercializáveis: a escalabilidade, o gerenciamento do ciclo de vida dos dispositivos, o monitoramento do estado de saúde dos dispositivos, o provisionamento automático de milhões de dispositivos, a segurança sob diferentes aspectos (Autenticidade, Integridade e Disponibilidade), a atualização de firmware OTA programada e, sob o meu ponto de vista o mais importante: a capacidade de implantar tudo isso de maneira ágil, isto é, em pouco tempo.

Como desenvolvedora, a vontade de botar a mão na massa e construir toda a solução do zero é grande, afinal de contas, aprendemos tanta coisa neste processo, a gente se diverte e ainda sai com o orgulho lá em cima “eu fiz tudo do zero”! A gente vai lá e monta um broker MQTT aqui, cria um modelo de IA ali, desenvolve uma UI acolá… Porém, soluções assim frequentemente custam mais tempo de desenvolvimento, e consequentemente, aumentam os custos do projeto. As chances de não serem continuamente testadas e mantidas também são grandes, diminuindo a qualidade da solução. 

Outro problema de business muito comum em soluções assim é a dificuldade de precificar custos inerentes à solução, como, por exemplo: o preço individual da adesão de um dispositivo que ingressa a rede, o preço de mensagens, de serviço de armazenamento, de serviços de IA, etc. 

Foi pensando nessas demandas e problemas, que no início de 2016 a Microsoft começou a lançar serviços dentro do Azure que dessem suporte a implantação dessas features para compor soluções IoT completas. Esse conjunto de serviços gerenciados pela Microsoft voltados para IoT, compõem o Azure IoT. 

Neste artigo vou comentar brevemente sobre os principais serviços IoT e algumas arquiteturas de soluções IoT.

Principais Serviços

A seguir veremos alguns serviços que fazem parte do Azure IoT ou são frequentemente usados para compor soluções IoTs.

Azure IoT Hub

O Azure IoT Hub é um PaaS, que funciona como um cloud gateway. Sua principal função é permitir a comunicação entre dispositivos e nuvem, porém oferece muitas outras funcionalidades.

Microsoft Azure IoT
Figura 1 - Arquitetura com IoT Hub.

A comunicação com dispositivos se dá através dos protocolos MQTT, AMQP ou HTTPS. Existem basicamente dois tipos de dispositivos na arquitetura do Azure IoT: dispositivos IoT e dispositivos IoT Edge.

Os dispositivos IoT são sistemas embarcados com sensores e/ou atuadores que usualmente direcionam seus dados locais de telemetria para a nuvem, onde haverá o processamento destes dados. Já os dispositivos IoT Edge são usualmente dispositivos mais robustos, como uma Raspberry Pi, que executam serviços do Azure localmente ou aplicações customizadas dentro de contêineres compatíveis com Docker e transferem parte dos resultados para a nuvem, compondo soluções híbridas. Essa arquitetura traz como vantagens a redução da latência e o aumento da segurança. Existe também a possibilidade de implantar uma hierarquia de dispositivos para atender cenários de redes híbridas, por exemplo, digamos que os dispositivos IoT utilizem protocolos como LoRaWAN, Sigfox ou Modbus. Neste caso, podemos colocar um dispositivo IoT Edge para funcionar como um gateway e realizar a conversão dos protocolos das mensagens. 

Microsoft Azure IoT
Figura 2 – Algumas possíveis arquiteturas com IoT Hub.

    Ainda falando sobre dispositivos IoT, você deve estar se perguntando na prática como os dispositivos enviam e recebem mensagens, ou melhor, o que  você, enquanto desenvolvedor, precisa usar para se conectar ao IoT Hub. E a resposta para isso é o Azure IoT SDK. Atualmente os SDKs estão disponíveis em “diferentes sabores”, tais como C, C#, Python, Noje.js e Java. Inclusive, já há integração com o famoso Arduino e no framework nativo dos SoCs da Espressif: o ESP-IDF. Há também o IoT Hub SDK, que permite desenvolver aplicações no back-end seja na nuvem ou localmente no seu computador para fazer o monitoramento de telemetria, enviar comandos para os dispositivos, gerenciá-los, realizar invocação de método remoto e etc.

    Além dessas features principais, no portal do Azure, o IoT Hub disponibiliza várias funcionalidades como monitoramento gráfico de métricas (nº de dispositivos conectados, quantidade de mensagens enviadas, métricas de falhas, etc), configuração de alertas (via e-mails, SMS) quando falhas ou eventos ocorrem, queries SQL-like e o roteamento de mensagens para diversos endpoints, permitindo a integração com vários serviços do Azure.    

    Custos e escalabilidade 

    O Azure IoT Hub é um serviço altamente escalável sendo oferecido em 2 camadas (Basic e Standard) e em 3 níveis, conforme mostra a tabela a seguir:

PlanoPreço unitário mensalNº msgs por dia
Gratuito (Standard)R$ 0,008 K
Básico B1R$ 111,94400 K
Básico B2R$ 559,686 M
Básico B3R$ 5.596,80300 M
Standard S1R$ 279,841400 K
Standard S2R$ 2.798,406 M
Standard S3R$ 27.984,00300 M
Tabela 1 – Custos do IoT Hub de acordo com os diferentes planos 12/2021.

O plano Standard se difere do básico por permitir comunicação C2D (Cloud to Device), gerenciamento de dispositivos IoT Edge, entre outras features.

Observe que o custo do IoT Hub é proporcional ao tráfego. Caso a demanda aumente, o administrador pode criar múltiplas instâncias de um mesmo plano ou contratar um acima.

Azure IoT Central

O Azure IoT Central é também um PaaS com carinha de SaaS. Ele é um serviço construído no topo de outros serviços como o IoT Hub, serviços de storage, Stream Analytics Jobs, entre outros, com o objetivo de simplificar e acelerar a criação de soluções completas e de rápida implementação.

O Azure IoT Central permite o gerenciamento de dispositivos e a criação No-Code de aplicações com dashboards ricos contendo recursos como gráficos e mapas que são alimentados a partir dos dados dos dispositivos. Além disso, ele permite o envio de comandos, por exemplo, para parametrização ou requisição de atualização, assim como a invocação de métodos remotos e a apresentação do retorno dos métodos. Observe a imagem a seguir de uma aplicação construída usando o IoT Central.

Microsoft Azure IoT
Figura 3 – Exemplo de aplicação usando IoT Central.

Na figura acima, do lado esquerdo do painel podemos observar outras features como Rules, Analytics e Jobs. Com Rules podemos criar regras customizadas com condições e ações a serem disparadas ao acontecimento de um evento, como, por exemplo, o envio de notificação via e-mail quando uma variável ultrapassa um threshold ou implementação de webhooks. Com Analytics é possível realizar queries básicas e visualizar informações como média de variáveis no tempo, comparar essas informações entre os dispositivos, entre outras funcionalidades. Com Jobs podemos agendar a execução de tarefas em um dispositivo ou em um grupo de dispositivos.

O Azure IoT Central também permite criar diferentes níveis de acesso ao sistema como administrador e operador, protegendo a aplicação e estabelecendo responsabilidades bem definidas para cada usuário. Por fim, uma aplicação construída com o IoT Central não precisa ficar limitada a ele, podendo interagir com aplicações clientes usando API REST tanto para ingerir dados, quanto para exportar. A plataforma também permite o direcionamento de evento para alguns endpoints do Azure como Event Hub, Service Bus, Storage, Data Explorer, etc. 

Limitações

Embora o IoT Central seja uma solução extremamente atraente e prática, ela possui algumas limitações. Como, por exemplo, a inviabilidade de criar seus próprios widgets, é necessário usar os que são oferecidos. As views são atualizadas a cada minuto, portanto não é indicado para criar aqueles gráficos real time, para isso é melhor contar com um Power BI ou outro serviço de visualização. As funções de Analytics também são bem básicas, não permitindo criar queries chamando modelos de machine learning externos, por exemplo. Para isso, é necessário exportar os dados para outros serviços.

Custos e escalabilidade 

O Azure IoT Central tem o custo atrelado ao número de dispositivos e ao número de mensagens. 

PlanoPreço por dispositivo*Nº msgs por dia por dispositivoCusto de excedente de mensagem (1000 msgs)
Standard 0R$ 0,44400R$ 0,392
Standard 1R$ 2,205 KR$ 0,084
Standard 2R$ 3,9230 KR$ 0,084
Tabela 2 – Custos do IoT Central de acordo com os diferentes planos 12/2021.

*Todos os planos incluem 2 dispositivos gratuitos com suas cotas de mensagens inclusas.

    Alguns pontos interessantes a serem observados é que o IoT Central é um serviço com um ótimo custo benefício. Porém, a partir de um determinado número de dispositivos e densidade de tráfego, pode ser interessante avaliar uma solução usando o IoT Hub. 

Se ficar em dúvida, vale a pena ler este artigo.

Conclusão

Neste artigo vimos os dois principais serviços do Azure IoT: o Azure IoT Hub e o Azure IoT Central e como eles podem ser empregados em soluções IoT.  Outros serviços, como de armazenamento, inteligência e visualização são normalmente usados juntos a esses para compor soluções completas, iremos explorar alguns deles nos próximos artigos práticos.

Stay tuned!

Teste seu conhecimento

Acesse o quiz a seguir e avalie o quanto você aprendeu hoje!

https://www.goconqr.com/pt-BR/quiz/34759891/Introdu–o-ao-Azure-IoT

Saiba Mais

Microsoft Azure Sphere é anunciado como disponibilidade geral

Enviando dados para a nuvem com Azure IoT Hub

Plataforma IoT – Como prototipar nossas ideias (Parte 1)

Referências 

https://docs.microsoft.com/en-us/azure/iot-fundamentals/iot-introduction

https://github.com/Azure/azure-iot-sdk-c

https://docs.microsoft.com/pt-br/azure/iot-develop/about-iot-sdks

https://docs.microsoft.com/en-us/azure/iot-central/core/overview-iot-central

https://docs.microsoft.com/en-us/azure/architecture/example-scenario/iot/iot-central-iot-hub-cheat-sheet

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Home » Internet Das Coisas » Introdução ao Microsoft Azure IoT
Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:
Nenhum resultado encontrado.

Séries

[vc_widget_sidebar sidebar_id=”us_widget_area_series”]
Menu