Share via


Ligue o Raspberry Pi 3 à solução de monitorização remota e ative atualizações remotas de firmware com C

Este tutorial mostra-lhe como utilizar o Microsoft Azure IoT Starter Kit para Raspberry Pi 3 para:

  • Desenvolva um leitor de temperatura e humidade que possa comunicar com a cloud.
  • Ative e execute uma atualização de firmware remota para atualizar a aplicação cliente no Raspberry Pi.

O tutorial utiliza:

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

Descrição Geral

Neste tutorial, irá concluir os seguintes passos:

  • Implemente uma instância da solução pré-configurada de monitorização remota na sua subscrição do Azure. Este passo implementa e configura automaticamente vários serviços do Azure.
  • Configure o seu dispositivo e sensores para comunicar com o seu computador e a solução de monitorização remota.
  • Atualize o código de dispositivo de exemplo para ligar à solução de monitorização remota e envie telemetria que pode ver no dashboard da solução.
  • Utilize o código de dispositivo de exemplo para atualizar a aplicação cliente.

Pré-requisitos

Para concluir este tutorial, precisa de uma subscrição ativa do Azure.

Nota

Se não tiver uma conta, pode criar uma de avaliação gratuita em apenas alguns minutos. Para obter mais detalhes, consulte Avaliação Gratuita do Azure.

Software necessário

Precisa de um cliente SSH no seu computador de secretária para lhe permitir aceder remotamente à linha de comandos no Raspberry Pi.

Hardware necessário

Um computador de secretária para lhe permitir ligar remotamente à linha de comandos no Raspberry Pi.

Microsoft IoT Starter Kit para Raspberry Pi 3 ou componentes equivalentes. Este tutorial utiliza os seguintes itens do kit:

  • Raspberry Pi 3
  • Cartão MicroSD (com NOOBS)
  • Um Mini cabo USB
  • Um cabo Ethernet
  • Sensor BME280
  • Área de pão
  • Fios de saltador
  • Resistências
  • LEDs

Aprovisionar a solução

Se ainda não aprovisionou a solução pré-configurada de monitorização remota na sua conta:

  1. Inicie sessão no azureiotsuite.com com as credenciais da sua conta do Azure e clique + para criar uma solução.
  2. Clique em Selecionar no mosaico Monitorização remota.
  3. Introduza o Nome da solução para sua solução pré-configurada de monitorização remota.
  4. Selecione a Região e a Subscrição que pretende utilizar para aprovisionar a solução.
  5. Clique em Criar Solução para iniciar o processo de aprovisionamento. Este processo ação demora vários minutos para ser executado.

Aguarde até a conclusão do processo de aprovisionamento

  1. Clique no mosaico da sua solução com o estado Aprovisionamento.
  2. Tenha em atenção os Estados de aprovisionamento uma vez que os serviços do Azure estão implementados na sua subscrição do Azure.
  3. Depois de ter concluído o aprovisionamento, o estado passa para Pronto.
  4. Clique no mosaico para ver os detalhes da sua solução no painel da direita.

Nota

Se tiver problemas com a implementação da solução pré-configurada, consulte Permissions on the azureiotsuite.com site (Permissões no site azureiotsuite.com) e as FAQ. Se os problemas persistirem, crie um pedido de serviço no portal.

Pretendia ver certos detalhes que não se encontram listados para a sua solução? Dê-nos a suas sugestões de funcionalidades através de A Voz do Utilizador.

Aviso

A solução de monitorização remota aprovisiona um conjunto de serviços do Azure na sua subscrição do Azure. A implementação reflete uma arquitetura empresarial real. Para evitar custos de consumo desnecessários do Azure, elimine a instância da solução pré-configurada em azureiotsuite.com quando terminar. Se precisar da solução pré-configurada novamente, pode recriá-la facilmente. Para obter mais informações sobre como reduzir o consumo enquanto a solução de monitorização remota é executada, veja Configurar soluções pré-configuradas do Azure IoT Suite para fins de demonstração.

Ver o dashboard da solução

O dashboard de solução permite-lhe gerir a solução implementada. Por exemplo, pode ver telemetria, adicionar dispositivos e invocar métodos.

  1. Quando o aprovisionamento estiver concluído e o mosaico da sua solução pré-configurada indicar Pronto, escolha Iniciar para abrir o seu portal de solução de monitorização remota num novo separador.

    Iniciar a solução pré-configurada

  2. Por predefinição, o portal de solução mostra o dashboard. Pode navegar para outras áreas do portal de solução com o menu no lado esquerdo da página.

    Dashboard da solução pré-configurada de monitorização remota

Adicionar um dispositivo

Para que um dispositivo ligue à solução pré-configurada, este tem de se identificar no Hub IoT utilizando credenciais válidas. Pode obter as credenciais do dispositivo a partir do dashboard da solução. Vai incluir as credenciais do dispositivo na sua aplicação cliente mais à frente neste tutorial.

Se ainda não o fez, adicione um dispositivo personalizado à sua solução de monitorização remota. Conclua os seguintes passos no dashboard da solução:

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

    Adicionar um dispositivo

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

    Adicionar um dispositivo personalizado

  3. Escolha Definir o meu próprio ID do Dispositivo. Introduza um ID do Dispositivo, como rasppi, clique em Verificar ID para verificar se ainda não utilizou o nome na solução e, em seguida, clique em Criar para aprovisionar o dispositivo.

    Adicionar ID do dispositivo

  4. Anote as credenciais do dispositivo (ID do Dispositivo, Hub IoT Nome do Anfitrião e Chave de Dispositivo). A sua aplicação cliente no Raspberry Pi precisa destes valores para se ligar à solução de monitorização remota. Em seguida, clique em Concluído.

    Ver as credenciais do dispositivo

  5. Selecione o seu dispositivo na lista de dispositivos no dashboard da solução. Em seguida, no painel Detalhes do Dispositivo, clique em Ativar Dispositivo. O estado do seu dispositivo é agora Em execução. A solução de monitorização remota pode agora receber telemetria do seu dispositivo e invocar métodos no dispositivo.

Preparar o Raspberry Pi

Instalar Raspbian

Se esta for a primeira vez que está a utilizar o Raspberry Pi, tem de instalar o sistema operativo Raspbian com NOOBS no cartão SD incluído no kit. O Raspberry Pi Software Guide descreve como instalar um sistema operativo no seu Raspberry Pi. Este tutorial pressupõe que instalou o sistema operativo Raspbian no seu Raspberry Pi.

Nota

O cartão SD incluído no Microsoft Azure IoT Starter Kit para Raspberry Pi 3 já tem o NOOBS instalado. Pode arrancar o Raspberry Pi a partir deste cartão e optar por instalar o SO Raspbian.

Configurar o hardware

Este tutorial utiliza o sensor BME280 incluído no Microsoft Azure IoT Starter Kit para Raspberry Pi 3 para gerar dados telemétricos. Utiliza um LED para indicar quando o Raspberry Pi processa uma invocação de método a partir do dashboard da solução.

Os componentes na placa de pão são:

  • LED vermelho
  • Resistência 220-Ohm (vermelho, vermelho, castanho)
  • Sensor BME280

O diagrama seguinte mostra como ligar o hardware:

Configuração de hardware para Raspberry Pi

A tabela seguinte resume as ligações do Raspberry Pi aos componentes no painel de pão:

Raspberry Pi Breadboard Cor
GND (Afixar 14) Pin led -ve (18A) Roxo
GPCLK0 (Afixar 7) Resistência (25A) Laranja
SPI_CE0 (Afixar 24) CS (39A) Blue
SPI_SCLK (Afixar 23) SCK (36A) Amarelo
SPI_MISO (Afixar 21) SDO (37A) Branco
SPI_MOSI (Afixar 19) SDI (38A) Green
GND (Afixar 6) GND (35A) Negra
3,3 V (Afixar 1) 3Vo (34A) Red

Para concluir a configuração de hardware, tem de:

  • Ligue o Raspberry Pi à fonte de alimentação incluída no kit.
  • Ligue o Raspberry Pi à sua rede com o cabo Ethernet incluído no kit. Em alternativa, pode configurar a Conectividade Sem Fios para o Raspberry Pi.

Concluiu agora a configuração de hardware do Raspberry Pi.

Iniciar sessão e aceder ao terminal

Tem duas opções para aceder a um ambiente terminal no raspberry Pi:

  • Se tiver um teclado e um monitor ligados ao Raspberry Pi, pode utilizar a GUI raspbiana para aceder a uma janela de terminal.

  • Aceda à linha de comandos no Raspberry Pi através de SSH a partir do computador de secretária.

Utilizar uma Janela de terminal na GUI

As credenciais predefinidas para Raspbian são o nome de utilizador pi e a palavra-passe raspberry. Na barra de tarefas na GUI, pode iniciar o utilitário Terminal com o ícone que se assemelha a um monitor.

Iniciar sessão com SSH

Pode utilizar o SSH para aceder à linha de comandos ao Raspberry Pi. O artigo SSH (Secure Shell) descreve como configurar o SSH no Raspberry Pi e como ligar a partir do Windows ou Linux & Mac OS.

Inicie sessão com o nome de utilizador pi e a palavra-passe raspberry.

Opcional: Partilhar uma pasta no Raspberry Pi

Opcionalmente, poderá querer partilhar uma pasta no raspberry Pi com o ambiente de trabalho. Partilhar uma pasta permite-lhe utilizar o seu editor de texto de ambiente de trabalho preferido (como o Visual Studio Code ou o Sublime Text) para editar ficheiros no raspberry Pi em vez de utilizar nano ou vi.

Para partilhar uma pasta com o Windows, configure um servidor Samba no Raspberry Pi. Em alternativa, utilize o servidor SFTP incorporado com um cliente SFTP no seu ambiente de trabalho.

Ativar o SPI

Antes de poder executar o exemplo de aplicação, tem de ativar o barramento da Interface de Periférico de Série (SPI) no Raspberry Pi. O Raspberry Pi comunica com o dispositivo de sensor BME280 através do barramento SPI. Utilize o seguinte comando para editar o ficheiro de configuração:

sudo nano /boot/config.txt

Localizar a linha:

#dtparam=spi=on

  • Para anular o comentário da linha, elimine o # no início.

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

  • Para ativar o SPI, reinicie o Raspberry Pi. Reiniciar desliga o terminal, tem de iniciar sessão novamente quando o Raspberry Pi reiniciar:

    sudo reboot
    

Transferir e configurar o exemplo

Agora pode transferir e configurar a aplicação cliente de monitorização remota no raspberry Pi.

Clonar os repositórios

Se ainda não o tiver feito, clone os repositórios necessários ao executar os seguintes comandos no pi:

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

Atualizar a cadeia de ligação do dispositivo

Abra o ficheiro de configuração de exemplo no editor nano com o seguinte comando:

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

Substitua os valores do marcador de posição pelo ID do dispositivo e Hub IoT informações que criou e guardou no início deste tutorial.

Quando terminar, os conteúdos do ficheiro deviceinfo devem ter o seguinte aspeto:

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

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

Criar o exemplo

Se ainda não o tiver feito, instale os pacotes de pré-requisitos para o SDK do Dispositivo IoT do Microsoft Azure para C ao executar os seguintes comandos num terminal no Raspberry Pi:

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

Agora, pode criar 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 pode executar o programa de exemplo no Raspberry Pi. Introduza o comando:

sudo ~/cmake/remote_monitoring/remote_monitoring

O seguinte resultado de exemplo é um exemplo da saída que vê na linha de comandos no Raspberry Pi:

Saída da aplicação Raspberry Pi

Prima Ctrl-C para sair do programa em qualquer altura.

Ver a telemetria

O Raspberry Pi está agora a enviar telemetria para a solução de monitorização remota. Pode ver a telemetria no dashboard da solução. Também pode enviar mensagens para o Raspberry Pi a partir do dashboard da solução.

  • Navegue para o dashboard da solução.
  • Selecione o seu dispositivo na lista pendente Dispositivo a Ver .
  • A telemetria do Raspberry Pi é apresentada no dashboard.

Apresentar telemetria do Raspberry Pi

Iniciar a atualização de firmware

O processo de atualização de firmware transfere e instala uma versão atualizada da aplicação cliente do dispositivo no Raspberry Pi. Para obter mais informações sobre o processo de atualização de firmware, veja a descrição do padrão de atualização de firmware em Descrição geral da gestão de dispositivos com Hub IoT.

Inicia o processo de atualização de firmware ao invocar um método no dispositivo. Este método é assíncrono e devolve assim que o processo de atualização é iniciado. O dispositivo utiliza propriedades comunicadas para notificar a solução sobre o progresso da atualização.

Pode invocar métodos no Raspberry Pi a partir do dashboard da solução. Quando o Raspberry Pi se liga pela primeira vez à solução de monitorização remota, envia informações sobre os métodos que suporta.

  1. No dashboard da solução, clique em Dispositivos para visitar a página Dispositivos . Selecione o Raspberry Pi na Lista de Dispositivos. Em seguida, selecione Métodos:

    Listar dispositivos no dashboard

  2. Na página Invocar Método , selecione InitiateFirmwareUpdate na lista pendente Método .

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

  4. Selecione InvokeMethod. A aplicação no Raspberry Pi envia uma confirmação de volta para o dashboard da solução. Em seguida, inicia o processo de atualização de firmware ao transferir a nova versão do firmware:

    Mostrar histórico de métodos

Observar o processo de atualização de firmware

Pode observar o processo de atualização de firmware à medida que é executado no dispositivo e ao ver as propriedades comunicadas no dashboard da solução:

  1. Pode ver o progresso do processo de atualização no Raspberry Pi:

    Mostrar o progresso da atualização

    Nota

    A aplicação de monitorização remota reinicia automaticamente quando a atualização for concluída. Utilize o comando ps -ef para verificar se está em execução. Se quiser terminar o processo, utilize o kill comando com o ID do processo.

  2. Pode ver o estado da atualização de firmware, conforme comunicado pelo dispositivo, no portal da solução. A captura de ecrã seguinte mostra o estado e a duração de cada fase do processo de atualização e a nova versão de firmware:

    Mostrar estado da tarefa

    Se voltar ao dashboard, pode verificar se o dispositivo ainda está a enviar telemetria após a atualização de firmware.

Aviso

Se deixar a solução de monitorização remota em execução na sua conta do Azure, é-lhe faturado o tempo de execução. Para obter mais informações sobre como reduzir o consumo enquanto a solução de monitorização remota é executada, veja Configurar soluções pré-configuradas do Azure IoT Suite para fins de demonstração. Elimine a solução pré-configurada da sua conta do Azure quando terminar de a utilizar.

Passos seguintes

Visite o Azure IoT Dev Center para obter mais exemplos e documentação sobre o Azure IoT.