Compartilhar via


Conectar o Raspberry Pi 3 à solução de monitoramento remoto e habilitar as atualizações de firmware remotas usando C

Este tutorial mostra como usar o Microsoft Azure IoT Starter Kit para Raspberry Pi 3 para:

  • Desenvolver um leitor de temperatura e umidade que possa se comunicar com a nuvem.
  • Habilitar e executar uma atualização de firmware remota para atualizar o aplicativo cliente no Raspberry Pi.

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.
  • Use o exemplo de código de dispositivo para atualizar o aplicativo cliente.

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 seu Pi:

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

Atualizar a cadeia de conexão do dispositivo

Abra o exemplo de arquivo de configuração no editor nano usando o seguinte comando:

nano ~/iot-remote-monitoring-c-raspberrypi-getstartedkit/advanced/config/deviceinfo

Substitua os valores do espaço reservado pelas informações de ID do dispositivo e do Hub IoT que você criou e salvou no início deste tutorial.

Quando terminar, o conteúdo do arquivo deviceinfo deverá parecer com o exemplo a seguir:

yourdeviceid
HostName=youriothubname.azure-devices.net;DeviceId=yourdeviceid;SharedAccessKey=yourdevicekey

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

Compilar o exemplo

Se você ainda não tiver feito isso, 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 no Raspberry Pi:

chmod +x ~/iot-remote-monitoring-c-raspberrypi-getstartedkit/advanced/1.0/build.sh
~/iot-remote-monitoring-c-raspberrypi-getstartedkit/advanced/1.0/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

Iniciar a atualização do firmware

O processo de atualização de firmware baixa e instala uma versão atualizada do aplicativo cliente do dispositivo no Raspberry Pi. Para obter mais informações sobre o processo de atualização de firmware, consulte a descrição do padrão de atualização de firmware em Visão geral do gerenciamento de dispositivos com o Hub IoT.

Você pode iniciar o processo de atualização de firmware invocando um método no dispositivo. Esse método é assíncrono e retorna assim que o processo de atualização é iniciado. O dispositivo usa propriedades relatadas para notificar a solução sobre o progresso da atualização.

Você invoca métodos em seu Raspberry Pi a partir do painel de solução. Quando o Raspberry Pi se conecta à solução de monitoramento remota pela primeira vez, ele envia informações sobre os métodos que ele suporta.

  1. 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

  2. Na página Invocar Método escolha InitiateFirmwareUpdate na lista suspensa Método.

  3. No campo FWPackageURI, insira https://github.com/Azure-Samples/iot-remote-monitoring-c-raspberrypi-getstartedkit/raw/master/advanced/2.0/package/remote_monitoring.zip. Esse arquivo contém a implementação da versão 2.0 do firmware.

  4. Escolha InvokeMethod. O aplicativo no Raspberry Pi envia uma confirmação de volta para o painel da solução. Em seguida, ele inicia o processo de atualização de firmware baixando a nova versão do firmware:

    Mostrar o histórico do método

Observar o processo de atualização do firmware

Observe o processo de atualização do firmware enquanto ele é executado no dispositivo e exibindo as propriedades relatadas no painel de solução:

  1. Você pode exibir o progresso no processo de atualização no Raspberry Pi:

    Mostrar progresso da atualização

    Observação

    O aplicativo de monitoramento remoto reinicia silenciosamente após a conclusão da atualização. Use o comando ps -ef para verificar se ele está em execução. Se você quiser encerrar o processo, use o comando kill com a id do processo.

  2. Veja o status da atualização de firmware, conforme indicado pelo dispositivo, no portal da solução. A captura de tela a seguir mostra o status e a duração de cada estágio do processo de atualização e a nova versão do firmware:

    Mostrar status do trabalho

    Se você navegar de volta para o painel, poderá verificar que o dispositivo ainda está enviando telemetria após a atualização do firmware.

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.