Exercício: Implantar aplicativo no Raspberry Pi

Concluído

Você construiu o dispositivo de protótipo e escreveu o aplicativo de console que o conduz. Agora, é hora de implantar seu aplicativo no dispositivo.

Importante

Certifique-se de que seu Raspberry Pi esteja configurado conforme descrito na unidade Introdução. O serviço SSH deve ser habilitado para acesso seguro ao shell do computador de desenvolvimento. O serviço I2C precisa ser habilitado para permitir que o código acesse o barramento I2C. Verifique se o Raspberry Pi está conectado à sua rede via WiFi ou Ethernet.

Para obter mais informações sobre a configuração do Raspberry Pi, confira a documentação do Raspberry Pi.

Tipos de implantação

O .NET fornece dois modos de publicação: dependente de estrutura e autônomo. Em uma implantação dependente de estrutura, o aplicativo depende de uma instalação do runtime do .NET no dispositivo de destino. Em uma implantação autônoma, o aplicativo inclui todas as dependências de runtime do .NET com os assemblies compilados. Há vantagens em cada abordagem. Para este módulo, você implantará seu aplicativo como um aplicativo autônomo.

Criar um diretório de destino no Raspberry Pi

Conclua as seguintes etapas em uma nova janela de terminal:

  1. Abra uma sessão de shell segura para o Raspberry Pi.

    ssh pi@raspberrypi
    

    No comando anterior:

    • ssh é o comando para iniciar o OpenSSH.
    • pi é o nome de usuário no Raspberry Pi.
    • raspberrypi é o nome de host para o Raspberry Pi. Se você tiver alterado o nome do host em seu dispositivo, use o nome do host ou o endereço IP do dispositivo.

    Observação

    A maioria dos sistemas operacionais modernos tem o OpenSSH pré-instalado. Se o comando ssh não for resolvido, instale o OpenSSH.

  2. Na sessão SSH, crie um diretório chamado cheesecave.net no diretório inicial. Alterne para o novo diretório.

    mkdir cheesecave.net
    cd cheesecave.net
    

    Seu local atual é ~/cheesecave.net.

    A screenshot of an SSH session on a Raspberry Pi with the above steps.

Publicar um aplicativo autônomo no Raspberry Pi

Conclua as seguintes etapas na janela do terminal original em seu computador de desenvolvimento:

  1. Publique o aplicativo como um aplicativo autônomo.

    dotnet publish --runtime linux-arm64 --self-contained
    

    Importante

    Isso pressupõe que você esteja usando o SO recomendado de 64 bits. Se estiver usando uma versão de 32 bits do SO do Raspberry Pi, use --runtime linux-arm no comando anterior para direcionar o SO correto.

    O comando anterior cria um diretório com os arquivos necessários para uma implantação autônoma do runtime do linux-arm64. Anote o local da pasta publicar.

    A screenshot of a terminal session showing the output from dotnet publish.

  2. Copie os arquivos da pasta publish para o local de implantação no Raspberry Pi.

    scp ./bin/Debug/net7.0/linux-arm64/publish/* pi@raspberrypi:~/cheesecave.net
    

    No comando anterior:

    • scp é o comando de cópia de arquivo seguro incluído no OpenSSH.
    • ./bin/Debug/net7.0/linux-arm64/publish/* especifica os arquivos a serem copiados. Nesse caso, todos os arquivos no diretório ./bin/Debug/net7.0/linux-arm64/publish/ são incluídos. Insira o caminho correto se você estiver usando uma versão diferente do SDK do .NET ou direcionando ao linux-arm, pois o caminho será diferente.
    • pi@raspberrypi:~/cheesecave.net é o destino.
      • pi@raspberrypi é o nome de usuário e o nome do host, como antes.
      • ~/cheesecave.net é o local no Raspberry Pi para o qual os arquivos serão copiados.

Conceder permissões de execução

Em sistemas operacionais baseados em Linux, como o SO do Raspberry Pi, os arquivos binários não têm permissão para execução até que sejam marcados como executáveis no sistema de arquivos.

Na sessão SSH no Raspberry Pi, execute o seguinte comando:

chmod +x ./cheesecave.net

O arquivo executável cheesecave.net agora tem permissão para ser executado.

Na próxima unidade, você vai testar o código em seu dispositivo.