- O que é Microsoft Azure IoT Hub?
- Criando um Hub IoT do Azure
- Componentes necessários para construir nosso circuito de teste para Azure IoT com Raspberry Pi
- Azure IoT com Raspberry Pi - esquema de hardware
- Programando Raspberry Pi para publicar dados no Hub IoT do Azure
- Publicar dados no Azure IoT Hub - Testando
Azure IoT Hub, o serviço de computação em nuvem da Microsoft permite que os desenvolvedores conectem, monitorem e gerenciem bilhões de dispositivos IoT em uma única plataforma. Ele já é usado em várias aplicações IoT, como sistemas de automação residencial, segurança, vigilância e sistemas de monitoramento. Para demonstrar os recursos do hub IoT do Azure, vamos construir um pequeno circuito com o Raspberry Pi, um sensor de temperatura e umidade DHT11, a fim de processar os dados do sensor com ele. Por fim, publicaremos os dados do sensor no servidor Azure IoT usando o protocolo MQTT. Neste tutorial, aprenderemos como instalar e configurar um servidor Azure e enviar dados usando um Raspberry Pi.
O que é Microsoft Azure IoT Hub?
O Hub IoT do Azure é uma coleção de serviços gerenciados que podem conectar, monitorar e controlar dispositivos IoT. Ele também inclui comunicação segura para dispositivos, com visualização e análise de dados que ajudam os fabricantes de dispositivos a construir, implantar e gerenciar aplicativos IoT com a ajuda da nuvem Azure . Os dados de telemetria de dispositivo para Cd do Hub IoT do Azure nos permitem saber sobre o estado dos dispositivos IoT conectados, e as mensagens de nuvem para dispositivo nos permitem enviar comandos e notificações para os dispositivos conectados. Um exemplo poderia ser como, usando um sistema de automação residencial inteligente, podemos coletar vários dados de sensor e enviá-los ao Hub IoT do Azure para visualizar, armazenar e gerenciá-los. Também podemos controlar os dispositivos de saída da interface do Hub IoT do Azure.
Hub central para comunicação bidirecional para aplicativos e dispositivos IoT suporta comunicação dispositivo-nuvem e nuvem-dispositivo, também oferece suporte a vários padrões de mensagens, como um dispositivo para telemetria de nuvem, upload de arquivo de dispositivos e métodos de solicitação-resposta e, finalmente, podemos usar o método de autenticação por dispositivo que permite que cada dispositivo se conecte com segurança ao Hub IoT. Agora, como você entendeu os princípios básicos do Hub IoT do Azure, vamos passar para a configuração do sistema.
Criando um Hub IoT do Azure
Estamos prontos para fazer todas as configurações necessárias para configurar os serviços do Microsoft Azure, mas antes disso, certifique-se de ter uma conta da Microsoft. Se você não tem, você pode simplesmente se inscrever. Depois disso, vá para o portal do Azure usando portal.azure.com e faça logon.
Depois de fazer login, vá para a página inicial do Azure, selecione o botão Criar um recurso e pesquise o Hub IoT no campo Pesquisar no Marketplace. Selecione Hub IoT nos resultados da pesquisa e selecione Criar. As imagens abaixo darão uma ideia melhor do processo.
Preencha os detalhes necessários para criar um Hub IoT.
Na seção Assinatura, você precisa selecionar a assinatura para usá-la em seu hub. No nosso caso, estamos optando por uma conta de teste e selecionamos “ Teste gratuito” .
Em seguida, na seção Grupo de recursos, selecione seu grupo de recursos . Se você não tiver um, você precisa criar um novo clicando em Criar novo e inserir o nome do Recurso.
Na seção Região, você pode usar o menu suspenso para selecionar sua região preferida.
Em Nome Seção Hub Internet das coisas, você precisa e nter um nome para o seu hub. Deve ser único. Todas as comunicações necessárias acontecerão com este nome.
Na aba “Size and Scale”, selecione “ Free Tier ” e clique em Next. Em seguida, clique em “Review + Create”. A criação do Hub IoT levará alguns minutos. Clique no nome do Hub IoT que você criou. Anote o nome do host na janela, conforme mostrado na imagem abaixo. Em seguida, clique nas políticas de acesso compartilhado nas configurações. As políticas de acesso compartilhado são destacadas na imagem abaixo. Clique na opção iothubowner em Política. Anote a chave primária e a chave primária da string de conexão para referências futuras. Agora, para registrar um novo dispositivo no Hub IoT, clique em Dispositivos IoT. No painel Device Explorer, clique em Add para adicionar um dispositivo ao hub.
Preencha as seguintes informações na guia Novos dispositivos.
- ID do dispositivo: insira a ID do dispositivo. Os IDs dos dispositivos precisam ser exclusivos.
- Tipo de autenticação: Selecione uma chave simétrica.
- Auto Generate Keys: Selecione esta caixa de seleção.
- Conecte o dispositivo ao Hub IoT: Clique em Ativar.
Uma vez que o dispositivo é criado, você pode encontrar seu dispositivo recém-criado na seção Device Explorer. Clique no nome do dispositivo. Ele mostrará os detalhes do dispositivo. Anote a chave primária e a string de conexão - chave primária do dispositivo. Isso é importante porque precisamos para a comunicação.
Agora, quando isso for feito, podemos passar para o lado do hardware.
Componentes necessários para construir nosso circuito de teste para Azure IoT com Raspberry Pi
Como a parte do hardware deste circuito é muito simples, o requisito do componente também é muito simples. Uma lista de componentes necessários é mostrada abaixo.
- Raspberry Pi 3B (também podemos usar quaisquer outros modelos de Pi)
- Cartão Micro SD-16 GB
- Sensor DHT11
- Fonte de alimentação micro USB 5V, 2,4A
Azure IoT com Raspberry Pi - esquema de hardware
O diagrama de circuito completo para o projeto Azure IoT com Raspberry Pi é mostrado abaixo. Ele foi construído usando fritzing. Siga o diagrama do circuito e as conexões para fazer o circuito você mesmo.
O circuito acima envia dados de temperatura e umidade para o Microsoft IoT Hub. Neste circuito, usamos um sensor DHT11 para coletar os dados de Temperatura e Umidade e estamos usando um Raspberry Pi 3B como um dispositivo de processamento de dados. O sensor DHT11 possui três pinos. Os pinos VCC e GND são usados para fornecer alimentação de 5 V CC ao sensor e o pino de saída de dados do DHT11 é conectado ao GPIO4 do Raspberry Pi. Se você quiser aprender como fazer a interface do sensor de temperatura e umidade DHT11 com o Raspberry Pi, consulte nosso artigo anterior sobre o assunto. Também usamos esse sensor para construir a estação meteorológica IoT Raspberry Pi.
Programando Raspberry Pi para publicar dados no Hub IoT do Azure
Antes de iniciar a codificação para este projeto, precisamos criar um shell de nuvem do Azure (CLI) no portal do Azure. Isso será útil de várias maneiras. Para isso, clique no botão Azure nuvem shell no portal conforme mostrado abaixo. Em seguida, clique na opção criar armazenamento, marcada em vermelho.
Uma vez feito isso, você pode abrir o CLI e execute os seguintes comandos para instalar o Azure add-on' s que serão utilizados para mostrar os dados do sensor.
extensão az adicionar --name azure-cli-iot-ext
Depois de fazer isso, precisamos instalar dependências no Raspberry Pi para nos comunicarmos com o sensor DHT11 e tornar o processo de comunicação fácil para os serviços IoT do Azure. Para isso, abra um Terminal Raspberry Pi para instalar os pacotes dependentes usados no projeto.
Primeiro, precisamos baixar a biblioteca DHT do Raspberry Pi, extraí-la da pasta raiz e executar o seguinte comando para instalá-la.
sudo python setup.py install
Após a instalação bem-sucedida, execute os seguintes comandos para instalar todos os pacotes dependentes no Hub IoT do Azure.
sudo pip3 install azure-iot-device sudo pip3 install azure-iot-hub sudo pip3 install azure-iothub-service-client sudo pip3 install azure-iothub-device-client
Depois de instalar todos os pré-requisitos, é hora de escrever o código em Python. Para fazer isso, primeiro importe todas as bibliotecas:
import random import Adafruit_DHT import time from azure.iot.device import IoTHubDeviceClient, Message
Neste projeto, estamos usando o pino 4 do Raspberry Pi para processar os dados dos dados DHT11, portanto, ele precisa ser declarado conforme mostrado.
sensor = Adafruit_DHT.DHT11 pin = 4
Em seguida, definimos a string de conexão do código. Substitua-o pela string de conexão primária do dispositivo que salvamos anteriormente.
CONNECTION_STRING = "HostName = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZZZ"
Em seguida, criamos uma matriz que será usada para enviar os dados para o Hub IoT do Azure. Isso pode ser feito conforme mostrado abaixo.
MSG_SND = '{{"temperatura": {temperatura}, "umidade": {umidade}}}'
Em seguida, definimos um loop while. No loop while, os dados de umidade e temperatura são processados usando a função Adafruit_DHT.read_retry . Além disso, definimos duas variáveis especiais e atribuímos os dados de saída a essas variáveis.
enquanto True: umidade, temperatura = Adafruit_DHT.read_retry (sensor, pino)
A seguir, uma função é escrita para conectar o Hub IoT usando os parâmetros de conexão que definimos anteriormente.
def iothub_client_init (): client = IoTHubDeviceClient.create_from_connection_string (CONNECTION_STRING) cliente de retorno
Finalmente, na próxima etapa, os dados de temperatura e umidade são enviados para o Hub do Azure, usando o formato mostrado no código abaixo. Além disso, usamos um método try and catch para identificar se há algum erro no código.
def iothub_client_telemetry_sample_run (): try: client = iothub_client_init () print ("Enviando dados para o Hub IoT, pressione Ctrl-C para sair") enquanto Verdadeiro: msg_txt_formatted = MSG_SND.format (temperatura = temperatura, umidade = umidade) mensagem = Mensagem (msg_txt_formatted) print ("Enviando mensagem: {}". format (mensagem)) client.send_message (mensagem) print ("Mensagem enviada com sucesso") time.sleep (3)
Publicar dados no Azure IoT Hub - Testando
Depois de escrever o código com sucesso, compile-o e verifique se há erros. Se o bloco de código for compilado com êxito, execute o código. Na janela do Terminal, você deverá ver a mensagem "Mensagem enviada com sucesso". A captura de tela da janela é mostrada abaixo:
Agora, para ver os dados no Hub IoT do Azure, vá para o portal e clique no Terminal CLI e execute os seguintes comandos substituindo suas credenciais nele.
az iot hub monitor-events --hub-name XYZ --device-id XYZ
Nota:
Substitua XYZ pelo nome do hub e ID do dispositivo.
Depois de executar o comando acima, você deve obter os dados conforme mostrado abaixo na tela. Estes são os mesmos dados enviados do Raspberry Pi.
Isso marca o fim deste tutorial, espero que tenha gostado do artigo e aprendido algo novo. Se você tiver alguma dúvida sobre o artigo, pode deixá-la na seção de comentários abaixo. Ou você pode usar nosso Fórum de Eletrônicos para obter uma resposta melhor e mais rápida.