Ligue o Raspberry Pi 3 à solução de monitorização remota e ative atualizações de firmware remotas com Node.js
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 consiga comunicar com a cloud.
- Ative e execute uma atualização de firmware remoto para atualizar a aplicação cliente no Raspberry Pi.
O tutorial utiliza:
- Raspbian OS, a linguagem de programação Node.js e o SDK do Microsoft Azure IoT para Node.js 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 do 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.
- O Windows não inclui um cliente SSH. Recomendamos que utilize o PuTTY.
- A maioria das distribuições do Linux e do Mac OS incluem o utilitário SSH da linha de comandos. Para obter mais informações, veja SSH Using Linux or Mac OS (Utilizar Linux ou Mac OS para SSH).
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
- Breadboard
- Fios jumper
- Resistências
- LEDs
Aprovisionar a solução
Se ainda não aprovisionou a solução pré-configurada de monitorização remota na sua conta:
- Inicie sessão no azureiotsuite.com com as credenciais da sua conta do Azure e clique + para criar uma solução.
- Clique em Selecionar no mosaico Monitorização remota.
- Introduza o Nome da solução para sua solução pré-configurada de monitorização remota.
- Selecione a Região e a Subscrição que pretende utilizar para aprovisionar a solução.
- 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
- Clique no mosaico da sua solução com o estado Aprovisionamento.
- 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.
- Depois de ter concluído o aprovisionamento, o estado passa para Pronto.
- 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.
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.
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.
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:
No canto inferior esquerdo do dashboard, clique em Adicionar um dispositivo.
No painel Dispositivo Personalizado, clique em Adicionar novo.
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 sua solução e, em seguida, clique em Criar para aprovisionar o dispositivo.
Anote as credenciais do dispositivo (ID do Dispositivo, Hub IoT Nome do anfitrião e Chave de Dispositivo). A aplicação cliente no Raspberry Pi precisa destes valores para se ligar à solução de monitorização remota. Em seguida, clique em Concluído.
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:
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.
Instalar o Node.js
Se ainda não o fez, instale Node.js no raspberry Pi. O SDK IoT para Node.js requer a versão 0.11.5 do Node.js ou posterior. Os passos seguintes mostram como instalar o Node.js v6.10.2 no Raspberry Pi:
Utilize o seguinte comando para atualizar o Raspberry Pi:
sudo apt-get update
Utilize o seguinte comando para transferir os binários Node.js para o Raspberry Pi:
wget https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-armv7l.tar.gz
Utilize o seguinte comando para instalar os binários:
sudo tar -C /usr/local --strip-components 1 -xzf node-v6.10.2-linux-armv7l.tar.gz
Utilize o seguinte comando para verificar se instalou Node.js v6.10.2 com êxito:
node --version
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-node-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-node-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).
Executar o exemplo
Execute os seguintes comandos para instalar os pacotes de pré-requisitos do exemplo:
cd ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/advance/1.0
npm install
Agora pode executar o programa de exemplo no Raspberry Pi. Introduza o comando:
sudo node ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/advanced/1.0/remote_monitoring.js
O seguinte resultado de exemplo é um exemplo da saída que vê na linha de comandos no 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.
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 é devolvido 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 suportados.
No dashboard da solução, clique em Dispositivos para visitar a página Dispositivos . Selecione o Raspberry Pi na Lista de Dispositivos. Em seguida, escolha Métodos:
Na página Invocar Método , selecione InitiateFirmwareUpdate na lista pendente Método .
No campo FWPackageURI , introduza https://raw.githubusercontent.com/Azure-Samples/iot-remote-monitoring-node-raspberrypi-getstartedkit/master/advanced/2.0/raspberry.js. Este ficheiro contém a implementação da versão 2.0 do firmware.
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:
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 reportadas no dashboard da solução:
Pode ver o progresso do processo de atualização no Raspberry Pi:
Nota
A aplicação de monitorização remota é reiniciada automaticamente quando a atualização é concluída. Utilize o comando
ps -ef
para verificar se está em execução. Se quiser terminar o processo, utilize okill
comando com o ID do processo.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:
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.