Compartilhar via


Conecte o Raspberry Pi 3 à solução de monitoramento remoto e envie telemetria de um sensor real usando Node.js

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

  • O sistema operacional Raspbian, a linguagem de programação Node.js e o SDK do Microsoft Azure IoT para Node.js para implementar um dispositivo de exemplo.
  • A solução pré-configurada de monitoramento remoto do IoT Suite funciona como o back-end baseado em nuvem.

Visão geral

Neste tutorial, você completa as seguintes etapas:

  • Implante uma instância da solução pré-configurada de monitoramento remoto em sua assinatura do Azure. Esta etapa implanta e configura automaticamente vários serviços do Azure.
  • Configure seu dispositivo e sensores para se comunicar com seu computador e a solução de monitoramento remoto.
  • Atualize o código do dispositivo de exemplo para se conectar à solução de monitoramento remoto e envie a telemetria que você pode exibir 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

Você precisa de um cliente SSH em seu computador desktop para permitir que você acesse remotamente a linha de comando no Raspberry Pi.

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

Hardware necessário

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

Microsoft IoT Starter Kit 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 MINI USB
  • Um cabo Ethernet
  • Sensor BME280
  • Breadboard
  • Fios de jumper
  • Resistências
  • Leds

Provisionar a solução

Se você ainda não provisionou a solução pré-configurada de monitoramento remoto em sua conta:

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

Aguarde a conclusão do processo de provisionamento

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

Observação

Se você estiver encontrando problemas ao implantar a solução pré-configurada, examine as Permissões de no site azureiotsuite.com e as perguntas frequentes . Se os problemas persistirem, crie um ticket de serviço no portal .

Há detalhes que você esperaria ver que não estão listados para sua solução? Dê sugestões de funcionalidades em User Voice.

Aviso

A solução de monitoramento remoto provisiona um conjunto de serviços do Azure em sua assinatura do Azure. A implantação reflete uma arquitetura empresarial real. Para evitar encargos desnecessários de consumo do Azure, exclua sua instância da solução pré-configurada em azureiotsuite.com quando terminar de usá-la. Se você precisar da solução pré-configurada novamente, poderá recriá-la facilmente. Para obter mais informações sobre como reduzir o consumo enquanto a solução de monitoramento remoto é executada, consulte Configurar soluções pré-configuradas do Azure IoT Suite para fins de demonstração.

Exibir o painel da solução

O painel da solução permite que você gerencie a solução implantada. Por exemplo, você pode exibir a 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 da solução de monitoramento remoto em uma nova guia.

    iniciar a solução pré-configurada

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

    painel da solução pré-configurada de monitoramento remoto

Adicionar um dispositivo

Para que um dispositivo se conecte à solução pré-configurada, ele deve se identificar ao Hub IoT usando credenciais válidas. Você pode recuperar as credenciais do dispositivo do painel da solução. Você inclui as credenciais do dispositivo em seu aplicativo cliente mais adiante neste tutorial.

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

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

    Adicionar um dispositivo

  2. No painel do dispositivo personalizado , clique em Adicionar novo.

    Adicionar um dispositivo personalizado

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

    Adicionar ID do dispositivo

  4. Anote as credenciais do dispositivo (de ID do Dispositivo, de Nome de Host do Hub IoT e de 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 no painel da solução. Em seguida, no painel Detalhes do Dispositivo, clique em Habilitar Dispositivo. O status do dispositivo agora está Em execução. A solução de monitoramento remoto agora pode receber telemetria do seu dispositivo e invocar métodos no dispositivo.

Preparar seu Raspberry Pi

Instalar o Raspbian

Se esta for a primeira vez que você estiver usando o Raspberry Pi, será necessário instalar o sistema operacional Raspbian usando NOOBS no cartão SD incluído no kit. O do Raspberry Pi Software Guide descreve como instalar um sistema operacional no Raspberry Pi. Este tutorial pressupõe que você instalou o sistema operacional Raspbian no Raspberry Pi.

Observação

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

Configurar o hardware

Este tutorial usa o sensor BME280 incluído no Microsoft Azure IoT Starter Kit for 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 do painel de solução.

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

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

O diagrama a seguir mostra como conectar seu hardware:

Configuração de hardware do para o Raspberry Pi

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

Raspberry Pi Breadboard 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) Branco
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:

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

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

Entrar e acessar o terminal

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

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

  • Acesse a linha de comando no Raspberry Pi usando o SSH do computador da área de trabalho.

Usar uma janela de terminal na GUI

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

Entrar com o SSH

Você pode usar o SSH para acesso de linha de comando ao Raspberry Pi. O artigo SSH (Secure Shell) descreve como configurar o SSH no Raspberry Pi e como se conectar de Windows ou Linux & Mac OS.

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

Opcional: compartilhar uma pasta no Raspberry Pi

Opcionalmente, talvez você queira compartilhar uma pasta no Raspberry Pi com seu ambiente de área de trabalho. Compartilhar uma pasta permite que você use seu editor de texto de área de trabalho preferencial (como do Visual Studio Code ou de Texto Sublime) para editar arquivos no 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 SFTP interno com um cliente SFTP em sua área de trabalho.

Habilitar SPI

Antes de executar o aplicativo de exemplo, é necessário ativar o barramento SPI (Serial Peripheral Interface) no Raspberry Pi. O Raspberry Pi se comunica com o dispositivo de sensor BME280 pelo barramento SPI. Use o seguinte comando para editar o arquivo de configuração:

sudo nano /boot/config.txt

Localize a linha:

#dtparam=spi=on

  • Para descomentar a 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. A reinicialização desconecta o terminal, você precisa entrar novamente quando o Raspberry Pi for reiniciado:

    sudo reboot
    

Baixar e configurar o exemplo

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

Instalar Node.js

Instale Node.js no Raspberry Pi. O SDK do IoT para Node.js requer a versão 0.11.5 de Node.js ou posterior. As etapas a seguir mostram como instalar Node.js v6.10.2 no Raspberry Pi:

  1. Use o seguinte comando para atualizar o Raspberry Pi:

    sudo apt-get update
    
  2. Use o seguinte comando para baixar os binários de Node.js para o Raspberry Pi:

    wget https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-armv7l.tar.gz
    
  3. Use 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
    
  4. Use o seguinte comando para verificar se você instalou Node.js v6.10.2 com êxito:

    node --version
    

Clonar os repositórios

Se você ainda não fez 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-node-raspberrypi-getstartedkit.git`

Atualizar a cadeia de conexão do dispositivo

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

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

Localize a linha:

var connectionString = 'HostName=[Your IoT hub name].azure-devices.net;DeviceId=[Your device id];SharedAccessKey=[Your device key]';

Substitua os valores placeholder pelas informações do dispositivo e do 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).

Executar o exemplo

Execute os seguintes comandos para instalar os pacotes de pré-requisitos para o exemplo:

cd ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/basic
npm install

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

sudo node ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/basic/remote_monitoring.js

A saída de exemplo a seguir é um exemplo da saída que você vê no prompt de comando no 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 telemetria para a solução de monitoramento remoto. Você pode exibir a telemetria no painel da solução. Você também pode enviar mensagens para o Raspberry Pi no painel da solução.

  • Navegue até o painel da solução.
  • Selecione seu dispositivo no menu suspenso Dispositivo para Visualizar.
  • A telemetria do Raspberry Pi é exibida no painel.

Exibir telemetria do Raspberry Pi

Interaja com o dispositivo

No painel da solução, você pode invocar métodos no Raspberry Pi. Quando o Raspberry Pi se conecta à solução de monitoramento remoto, ele envia informações sobre os métodos aos quais ele dá suporte.

  • No painel 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:

    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 histórico do método

  • Você pode ligar e desligar o LED usando o método ChangeLightStatus com um 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, será cobrado pelo tempo em que ela for executada. Para obter mais informações sobre como reduzir o consumo enquanto a solução de monitoramento remoto é executada, consulte Configurar 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 do Centro de Desenvolvimento do IoT do do Azure para obter mais exemplos e documentação sobre a IoT do Azure.