Compartilhar via


Conectar o Raspberry Pi3 à solução de monitoramento remoto e enviar telemetria de um sensor real usando o C

Este tutorial mostra como usar o Microsoft Azure IoT Starter Kit do Raspberry Pi 3 para desenvolver um leitor de temperatura e umidade que possa se comunicar com a nuvem. O tutorial usa:

  • SO Raspbian, a linguagem de programação C e o SDK do Microsoft Azure IoT para C a fim de implementar um dispositivo de exemplo.
  • A solução pré-configurada de monitoramento remoto do IoT Suite como o back-end baseado na nuvem.

Visão geral

Neste tutorial, você completa as seguintes etapas:

  • Implantar uma instância da solução pré-configurada de monitoramento remoto em sua assinatura. Esta etapa implanta e configura automaticamente vários serviços do Azure.
  • Configurar seu dispositivo e sensores para comunicação com seu computador e com a solução de monitoramento remoto.
  • Atualizar o exemplo de código de dispositivo para conectar-se à solução de monitoramento remoto e enviar telemetria, que pode ser exibida no painel da solução.

Pré-requisitos

Para concluir este tutorial, você precisa de uma assinatura ativa do Azure.

Observação

Se você não tiver uma conta, poderá criar uma conta de avaliação gratuita em apenas alguns minutos. Para obter detalhes, consulte Avaliação gratuita do Azure.

Software necessário

É necessário um cliente SSH em seu computador desktop para que você possa acessar remotamente a linha de comando no Raspberry Pi.

  • O Windows não inclui um cliente SSH. Recomendamos o uso de PuTTY.
  • A maioria das distribuições do Linux e Mac OS incluem o utilitário de linha de comando do SSH. Para obter mais informações, consulte SSH usando o Linux ou Mac OS.

Requisitos de hardware

Um computador desktop para que você possa se conectar remotamente à linha de comando no Raspberry Pi.

Kit de início de IoT da Microsoft para Raspberry Pi 3 ou componentes equivalentes. Este tutorial usa os seguintes itens do kit:

  • Raspberry Pi 3
  • Cartão MicroSD (com NOOBS)
  • Um cabo USB Mini
  • Um cabo Ethernet
  • Sensor BME280
  • Placa universal
  • Cabos de jumper
  • Resistores
  • LEDs

Provisionar a solução

Se você já não tiver provisionado a solução pré-configurada de monitoramento remoto em sua conta:

  1. Entre no azureiotsuite.com usando suas credenciais de conta do Azure e clique + para criar uma solução.
  2. Clique em Selecionar no bloco Monitoramento remoto.
  3. Digite um Nome de solução para a solução pré-configurada de monitoramento remoto.
  4. Selecione a Região e a Assinatura que você deseja usar para provisionar a solução.
  5. Clique em Criar Solução para iniciar o processo de provisionamento. Este processo normalmente leva vários minutos para ser executado.

Aguarde o processo de provisionamento ser concluído

  1. Clique no bloco da sua solução com o status Provisionamento .
  2. Observe os estados de Provisionamento à medida que os serviços do Azure são implantados em sua assinatura do Azure.
  3. Após o provisionamento ser concluído, o status será alterado para Pronto.
  4. Clique no bloco para ver os detalhes da solução no painel à direita.

Observação

Se estiver tendo problemas para implantar a solução pré-configurada, dê uma olhada em Permissões no site azureiotsuite.com e nas Perguntas frequentes. Se os problemas persistirem, crie um tíquete de serviço no portal.

Há detalhes que você esperaria ver e que não estão listados para sua solução? Envie sugestões de recursos no User Voice.

Aviso

A solução de monitoramento remoto provisiona um conjunto de serviços do Azure na sua assinatura do Azure. A implantação reflete uma arquitetura empresarial real. Para evitar encargos desnecessários de consumo do Azure, exclua a instância da solução pré-configurada em azureiotsuite.com quando tiver terminado de realizar as tarefas nela. Caso precise da solução novamente, você poderá recriá-la facilmente. Para saber mais sobre como reduzir o consumo durante a execução da solução de monitoramento remoto, confira Configuração de soluções pré-configuradas do Azure IoT Suite para fins de demonstração.

Exibir o painel de solução

O painel de solução permite que você gerencie a solução implantada. Por exemplo, você pode exibir telemetria, adicionar dispositivos e invocar métodos.

  1. Quando o provisionamento for concluído e o bloco da solução pré-configurada indicar Pronto, escolha Iniciar para abrir o portal de solução de monitoramento remoto em uma nova guia.

    Iniciar a solução pré-configurada

  2. Por padrão, o portal de solução mostra o painel. Você pode navegar para outras áreas do portal de solução usando o menu ao lado esquerdo da página.

    Painel de solução pré-configurada de monitoramento remoto

Adicionar um dispositivo

Para um dispositivo conectar-se à solução pré-configurada, ele deve identificar-se no Hub IoT usando credenciais válidas. Você pode recuperar as credenciais do dispositivo no painel da solução. Você pode incluir as credenciais do dispositivo em seu aplicativo cliente posteriormente neste tutorial.

Se você ainda não fez isso, adicione um dispositivo personalizado à sua solução de monitoramento remota. Conclua as etapas a seguir no painel de solução:

  1. No canto inferior esquerdo do painel, clique em Adicionar um dispositivo.

    Adicionar um dispositivo

  2. No painel Dispositivo Personalizado, clique em Adicionar novo.

    Adicionar um dispositivo personalizado

  3. Escolha Deixe-me definir minha própria ID de Dispositivo. Insira uma ID do Dispositivo como rasppi, clique em Verificar ID para verificar se você já não usou o nome na sua solução, em seguida, clique em Criar para provisionar o dispositivo.

    Adicionar ID do dispositivo

  4. Anote as credenciais do dispositivo (ID do dispositivo, Hub IoT Nome do Host e Chave do Dispositivo). Seu aplicativo cliente no Raspberry Pi precisa desses valores para se conectar à solução de monitoramento remoto. Em seguida, clique em Concluído.

    Exibir credenciais do dispositivo

  5. Selecione seu dispositivo na lista de dispositivos do painel da solução. Em seguida, no painel Detalhes do Dispositivo, clique em Habilitar Dispositivo. O status do seu dispositivo agora é Executando. Agora a solução de monitoramento remoto poderá receber telemetria do seu dispositivo e invocar métodos nele.

Preparar seu Raspberry Pi

Instalar Raspbian

Se esta for a primeira vez que você estiver usando o Raspberry Pi, você precisa instalar o sistema operacional do Raspbian usando NOOBS no cartão SD incluído no kit. O Guia de Software do Raspberry Pi Software guia descreve como instalar um sistema operacional em seu Raspberry Pi. Este tutorial presume que você instalou o sistema operacional Raspbian em seu Raspberry Pi.

Observação

O cartão SD incluído no Microsoft Azure IoT Starter Kit do Raspberry Pi 3 já tem NOOBS instalado. Você pode inicializar o Raspberry Pi neste cartão e optar por instalar o sistema operacional do Raspbian.

Configurar o hardware

Este tutorial usa o sensor BME280 incluído no Microsoft Azure IoT Starter Kit do Raspberry Pi 3 para gerar dados de telemetria. Ele usa um LED para indicar quando o Raspberry Pi processa uma invocação de método no painel da solução.

Os componentes da placa universal são:

  • LED vermelho
  • Resistor de 220 Ohm (vermelho, vermelho, marrom)
  • Sensor BME280

O diagrama a seguir mostra como conectar seu hardware:

Configuração de hardware para Raspberry Pi

A tabela a seguir resume as conexões do Raspberry Pi para os componentes na placa universal:

Raspberry Pi Placa universal Cor
GND (Pino 14) Pin do LED - ve (18A) Roxo
GPCLK0 (pino 7) Resistor (25A) Laranja
SPI_CE0 (Pino 24) CS (39A) Azul
SPI_SCLK (Pino 23) SCK (36A) Amarelo
SPI_MISO (Pino 21) SDO (37A) Branca
SPI_MOSI (Pino 19) SDI (38A) Verde
GND (pino 6) GND (35A) Preto
3.3 V (Pino 1) 3Vo (34A) Vermelho

Para concluir a configuração de hardware, você precisa:

  • Conectar seu Raspberry Pi à fonte de alimentação incluída no kit.
  • Conectar seu Raspberry Pi à sua rede usando o cabo Ethernet incluído em seu kit. Como alternativa, você pode configurar Conectividade sem fio para o Raspberry Pi.

Agora você concluiu a configuração de hardware do seu Raspberry Pi.

Entre e acesse o terminal

Você tem duas opções para acessar um ambiente de terminal no seu Raspberry Pi:

  • Se você tiver um teclado e um monitor conectado ao seu Raspberry Pi, você pode usar a GUI do Raspbian para acessar uma janela de terminal.

  • Acesse a linha de comando em seu Raspberry Pi usando o SSH em seu computador desktop.

Use uma janela de terminal na GUI

As credenciais padrões para Raspbian são o nome de usuário pi e a senha raspberry. Na barra de tarefas na GUI, você pode iniciar o utilitário Terminal usando o ícone que se parece com um monitor.

Entre com o SSH

Você pode usar o SSH para acesso de linha de comando para o Raspberry Pi. O artigo SSH (Secure Shell) descreve como configurar SSH em seu Raspberry Pi e como conectar-se a partir do Windows ou Linux e Mac OS.

Entre com o nome de usuário pi e a senha raspberry.

Opcional: Compartilhar uma pasta em seu Raspberry Pi

Opcionalmente, você talvez queira compartilhar uma pasta em seu Raspberry Pi com seu ambiente de área de trabalho. Compartilhar uma pasta permite que você use seu editor de texto preferido de área de trabalho (como Visual Studio Code ou Sublime Text) para editar arquivos em seu Raspberry Pi em vez de usar nano ou vi.

Para compartilhar uma pasta com o Windows, configure um servidor Samba no Raspberry Pi. Como alternativa, use o servidor interno SFTP com um cliente SFTP em sua área de trabalho.

Habilitar SPI

Antes de executar o aplicativo de exemplo, você deve habilitar o barramento Serial Peripheral Interface (SPI) no Raspberry Pi. O Raspberry Pi se comunica com o dispositivo do sensor BME280 pelo barramento da SPI. Abra o arquivo de configuração executando o seguinte comando:

sudo nano /boot/config.txt

Localize a linha:

#dtparam=spi=on

  • Para remover os comentários da linha, exclua o # no início.

  • Salve suas alterações (Ctrl-O, Enter) e saia do editor (Ctrl-X).

  • Para habilitar o SPI, reinicialize o Raspberry Pi. Reinicializar desconecta o terminal, você precisa entrar novamente quando reinicia o Raspberry Pi:

    sudo reboot
    

Baixar e configurar o exemplo

Agora você pode baixar e configurar o aplicativo cliente de monitoramento remoto em seu Raspberry Pi.

Clonar os repositórios

Caso ainda não tenha feito isso, clone os repositórios necessários executando os seguintes comandos em um terminal no Pi:

cd ~
git clone --recursive https://github.com/Azure-Samples/iot-remote-monitoring-c-raspberrypi-getstartedkit.git
git clone --recursive https://github.com/WiringPi/WiringPi.git

Atualizar a cadeia de conexão do dispositivo

Abra o arquivo de origem de exemplo no editor nano usando o seguinte comando:

nano ~/iot-remote-monitoring-c-raspberrypi-getstartedkit/basic/remote_monitoring/remote_monitoring.c

Localize as seguintes linhas:

static const char* deviceId = "[Device Id]";
static const char* connectionString = "HostName=[IoTHub Name].azure-devices.net;DeviceId=[Device Id];SharedAccessKey=[Device Key]";

Substitua os valores do espaço reservado pelas informações de dispositivo e Hub IoT que você criou e salvou no início deste tutorial. Salve suas alterações (Ctrl-O, Enter) e saia do editor (Ctrl-X).

Compilar o exemplo

Instale os pacotes de pré-requisito para o SDK do dispositivo IoT do Microsoft Azure para C executando os seguintes comandos em um terminal no Raspberry Pi:

sudo apt-get update
sudo apt-get install g++ make cmake git libcurl4-openssl-dev libssl-dev uuid-dev

Agora você pode compilar a solução de exemplo atualizada no Raspberry Pi:

chmod +x ~/iot-remote-monitoring-c-raspberrypi-getstartedkit/basic/build.sh
~/iot-remote-monitoring-c-raspberrypi-getstartedkit/basic/build.sh

Agora você pode executar o programa de exemplo no Raspberry Pi. Insira o comando:

sudo ~/cmake/remote_monitoring/remote_monitoring

O que você vê a seguir é um exemplo da saída vista no prompt de comando do Raspberry Pi:

Saída do aplicativo Raspberry Pi

Pressione Ctrl-C para sair do programa a qualquer momento.

Exibir a Telemetria

O Raspberry Pi agora está enviando a telemetria para a solução de monitoramento remota. Você pode exibir a telemetria no painel de solução. Você também pode enviar mensagens para o Raspberry Pi a partir do painel da solução.

  • Navegue para o painel da solução.
  • Selecione o dispositivo na lista suspensa Dispositivo para exibição.
  • A telemetria do Raspberry Pi é exibida no painel.

Exibir a telemetria do Raspberry Pi

Atuar no dispositivo

No painel de solução, você pode invocar métodos em seu Raspberry Pi. Quando o Raspberry Pi se conecta a solução de monitoramento remota, ele envia informações sobre os métodos que ele suporta.

  • No painel de solução, clique em Dispositivos para visitar a página Dispositivos. Selecione seu Raspberry Pi na Lista de Dispositivos. Depois, escolha Métodos:

    Listar dispositivos no painel

  • Na página Invocar Método escolha LightBlink na lista suspensa Método.

  • Escolha InvokeMethod. O LED conectado ao Raspberry Pi pisca várias vezes. O aplicativo no Raspberry Pi envia uma confirmação de volta para o painel da solução:

    Mostrar o histórico do método

  • Você pode ligar e desligar o LED usando o método ChangeLightStatus com LightStatusValue definido como 1 para ligar ou 0 para desligar.

Aviso

Se você deixar a solução de monitoramento remoto em execução em sua conta do Azure, você receberá uma cobrança pelo tempo de execução. Para saber mais sobre como reduzir o consumo durante a execução da solução de monitoramento remoto, confira Configuração de soluções pré-configuradas do Azure IoT Suite para fins de demonstração. Exclua a solução pré-configurada de sua conta do Azure quando terminar de usá-la.

Próximas etapas

Visite o Centro de Desenvolvimento do Azure IoT para obter mais exemplos e a documentação sobre o Azure IoT.