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:
- Entre no azureiotsuite.com usando suas credenciais de conta do Azure e clique + para criar uma solução.
- Clique em Selecionar no bloco Monitoramento remoto.
- Digite um Nome de solução para a solução pré-configurada de monitoramento remoto.
- Selecione a Região e a Assinatura que você deseja usar para provisionar a solução.
- 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
- Clique no bloco da sua solução com o status Provisionamento .
- Observe os estados de Provisionamento à medida que os serviços do Azure são implantados em sua assinatura do Azure.
- Após o provisionamento ser concluído, o status será alterado para Pronto.
- 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.
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.
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.
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:
No canto inferior esquerdo do painel, clique em Adicionar um dispositivo.
No painel Dispositivo Personalizado, clique em Adicionar novo.
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.
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.
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:
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:
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.
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:
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:
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.