Por que eu devo ler este artigo:Este artigo é útil para desenvolvedores que desejam começar a trabalhar com o Microsoft Azure IoT para conectar seus dispositivos da Internet das Coisas à nuvem. Veremos neste artigo como conectar uma aplicação na Plataforma Universal do Windows, simulando um dispositivo IoT, ao Microsoft Azure IoT para transmissão de informações e como consumir essas informações enviadas para a nuvem. Se você deseja conectar seus dispositivos IoT à nuvem da Microsoft, este artigo com certeza irá lhe ajudar.

Hoje em dia muitas empresas precisam de soluções práticas e com possibilidade de escalar rapidamente, de acordo com o aumento de demanda. Para isso existem várias empresas com serviços de computação na nuvem, sendo talvez as mais famosas: Google, Amazon e Microsoft. Neste artigo vamos abordar o serviço da Microsoft, o Microsoft Azure.

O Microsoft Azure é a solução da Microsoft para computação em nuvem (cloud computing), sendo anunciado pela primeira vez em outubro de 2008 e lançado oficialmente em 1 de fevereiro de 2010 com o nome Windows Azure, até que em 25 de março de 2014 foi renomeado para Microsoft Azure. Já se vão mais de 6 anos de contínua evolução, e hoje podemos fazer uma série de coisas utilizando a plataforma em nuvem, que vão desde o uso de banco de dados SQL Server e Biztalk Server a máquinas virtuais Windows ou Linux e Active Directory. A lista de serviços oferecidos não para de crescer, e atualmente a plataforma disponibiliza mais de 50 serviços diferentes.

Quando falamos de internet das coisas, escalabilidade se torna um fator importante. Como dispositivos desse tipo podem se expandir rapidamente devido a um sucesso repentino, nossa plataforma precisa se escalar rapidamente, o que é algo automático quando estamos utilizando o Microsoft Azure, muito diferente se estivéssemos utilizando uma solução on-premise (ver BOX 1), onde teríamos que adquirir novos servidores, por exemplo, para que nossa aplicação suportasse a nova quantidade de acessos por hora.

Outra vantagem é poder contar com o conteúdo em múltiplos servidores, agilizando a entrega de conteúdo, já que o servidor de entrega vai ser escolhido de acordo com a localização do usuário. Isso faz com que o site esteja rápido tanto para um usuário na América Latina quanto na Oceania, por exemplo.

BOX 1. Solução on-premise

Refere-se à data centers instalados localmente na própria empresa ou organização, onde todo o suporte e manutenção é de responsabilidade da empresa proprietária.

Este artigo fornece uma visão geral do Hub IoT do Azure e apresenta um exemplo de como usar esse serviço ao implementar uma solução IoT.

Hub IoT do Azure

O Hub IoT do Azure nos permite conectar nossos dispositivos IoT à nuvem, o que nos possibilita coletar informações desses dispositivos através de mensagens e da mesma forma enviar informações para os dispositivos.

Quando precisamos coletar uma informação de um dispositivo IoT precisamos que esse dispositivo envie os dados para o Hub IoT do Azure. Com a mensagem enviada para o Azure podemos conectar nossa aplicação back-end, por exemplo, ao Hub IoT para fazer a leitura das mensagens enviadas e processá-las. Da mesma forma, quando precisamos enviar uma mensagem para um dispositivo IoT, necessitamos apenas que ela seja enviada ao Hub IoT e ele se encarregará de realizar a entrega ao dispositivo IoT, isso com garantia de entrega, o que traz mais confiança para certas aplicações que precisam da certeza que as mensagens foram enviadas e recebidas no destinatário, que no nosso caso são os dispositivos IoT.

Com o Hub IoT do Azure o desafio de conectar nossos dispositivos IoT ao back-end da nossa solução se torna uma tarefa menos árdua. Essa tarefa não é simples pois dispositivos IoT são geralmente sistemas sem operadores, ou seja, não dependem de um ser humano para coletar e transmitir dados, podem estar nos mais diversos locais, têm recursos de energia e processamento limitados, além do problema de conectividade.

Além dos desafios mencionados anteriormente, como o crescimento de soluções IoT pode ocorrer mais rápido do que podemos imaginar, soluções para conectar esses dispositivos devem sempre levar em consideração a escalabilidade, segurança e disponibilidade. Por isso a escolha de uma plataforma como o Hub IoT do Azure pode nos ajudar a enfrentar esses desafios. Quando falamos em segurança, podemos, por exemplo, fornecer ao nosso dispositivo IoT uma chave que permite a sua conexão com o Hub IoT, e então as informações de identificação e a chave do nosso dispositivo são armazenadas, nos permitindo auditar essas mensagens sempre que necessário, além de possibilitar a configuração de blacklists de dispositivos para um maior controle desses acessos.

Outro ponto importante é o monitoramento desses dispositivos, uma vez que eles podem estar nos mais diversos lugares. Através do Microsoft Azure conseguimos gerenciar todos os dispositivos IoT conectados ao nosso Hub IoT, bem como as mensagens enviadas, problemas de conectividades e rejeição de mensagens, além de podermos habilitar ou desabilitar os dispositivos já registrados.

Nosso projeto e seus pré-requisitos

Para começarmos a utilização do Hub IoT do Azure vamos precisar escolher nossa linguagem de programação, sim isso mesmo, podemos nos conectar ao Hub IoT não somente utilizando C#, mas também Java ou até mesmo Node.js.

Neste artigo vamos utilizar C# com o Visual Studio 2015. Além disso vamos precisar de uma conta ativa no Azure para criarmos nosso Hub. Se você não possui uma conta no Azure você pode criar uma para testes durante 30 dias. Se você já utilizou esse prazo de teste uma outra vez e sua conta foi desativada será necessário reativar sua conta novamente informando o número de um cartão de crédito. É importante lembrar que você só paga pelo o que utilizar, ou seja, não existe um custo mensal fixo, só haverá custo caso seja utilizado algum recurso de processamento ou armazenamento no Azure.

Para testes no Hub IoT do Azure você pode configurar a camada de escalabilidade do tipo F1, que possui uma limitação de 1 dispositivo com no máximo 8.000 mensagens por dia, o que é perfeitamente suficiente para os nossos testes e não acarretará em custos adicionais para sua assinatura no Azure.

Nesse projeto vamos criar uma aplicação na Plataforma Universal do Windows, que enviará mensagens de telemetria (ver BOX 2) para o Hub IoT do Azure, e outra, do tipo Console Application, que irá ler as informações enviadas para o Hub IoT do Azure. Também criaremos uma segunda aplicação console para enviarmos mensagens para nossa aplicação na Plataforma Universal do Windows, assim testaremos o envio bidirecional de informações, ou seja, do dispositivo IoT para a nuvem e da nuvem para o dispositivo IoT.

A aplicação que enviará as informações de telemetria para o Hub IoT seria o nosso dispositivo IoT, que poderia obter informações através de sensores, como o de temperatura e umidade, e enviá-las para a nuvem. Nesse nosso exemplo iremos simular esses sensores através de uma classe C# que gerará informações ...

Quer ler esse conteúdo completo? Tenha acesso completo