Como controlar um Raspberry Pi usando o WhatsApp
ComoVocê usa o Raspberry Pi para um projeto sem cabeça, como um media player, servidor NAS, caixa de sementes ou câmera de segurança? Se você fizer isso, então o seu Raspberry Pi é provavelmente escondido em algum lugar que não é facilmente acessível.
Você pode sempre fazer o login remotamente, mas como você o monitora em tempo real? Como você sabe se está superaquecendo? Ou ficar sem espaço em disco? Neste projeto, vamos brincar de Deus e tornar seu Raspberry Pi autoconsciente, e dar a ele a capacidade de se comunicar.
Em termos mais terrestres, vamos instalar a ferramenta sendxmpp no Raspberry Pi, que permite a comunicação através do popular protocolo de mensagens XMPP. Usaremos isso para enviar notificações para nós por meio de mensagens instantâneas sempre que um evento predeterminado for acionado.
Primeiro, você precisará obter uma conta de mensagens instantâneas XMPP para o Raspberry Pi. Se você não estiver usando um servidor XMPP, poderá se registrar em qualquer um dos servidores XMPP listados publicamente. Estamos usando o serviço Hot Chilli, que recebe uma classificação de segurança de alto nível do xmpp.net e permite que você registre uma conta no próprio site..
Depois de registrar uma conta para o seu Raspberry Pi, certifique-se de adicioná-lo como amigo em sua conta normal, no qual deseja receber notificações. Agora faça o login no Raspberry Pi, atualize os repositórios e então baixe a ferramenta sendxmpp com sudo apt-get install sendxmpp.
É um script Perl e vai puxar as dependências necessárias do Perl. Quando estiver instalado, crie um arquivo chamado .sendxmpprc em seu diretório pessoal com as credenciais da conta XMPP do Raspberry Pi, como:
$ nano /.sendxmpprc
[email protected] my-secret-password
Lembre-se de substituir o nome de usuário e a senha pelas credenciais da conta registrada para o Raspberry Pi. Depois de salvar o arquivo, você pode enviar uma mensagem com:
$ echo "Oi, isso é Pi!" | sendxmpp -t [email protected]
O comando acima envia uma mensagem do Raspberry Pi para o ID XMPP especificado com a opção -t. Troque o ID no exemplo acima com seu próprio ID XMPP. Se você estiver conectado à sua conta de MI normal, receberá a saudação como uma mensagem normal da conta XMPP do Raspberry Pi.
Você também pode passar a saída de comandos Bash, como:
$ echo "É" $ (data) | sendxmpp -t [email protected]
Este comando envia a saída do comando date. Aqui está outro exemplo que é um pouco mais útil:
$ echo $ (/ opt / vc / bin / vcgencmd measure_temp) | sendxmpp -t
Este comando consulta os sensores de temperatura no Raspberry Pi usando os utilitários instalados pelo pacote raspberrypi-firmwaretools, que nós enviamos ao nosso usuário regular de IM.
Você pode usar essa declaração para monitorar o Raspberry Pi e enviar um alerta por mensagem instantânea quando a temperatura ultrapassar um limite predefinido. Copie o conteúdo do arquivo chamado status.sh (clique no link para ver o código). Em seguida, defina um crontab entrada correndo crontab -e e inserindo a seguinte linha:
* / 5 * * * * /status.sh
Aqui estamos pedindo ao Raspberry Pi para executar o script status.sh a cada cinco minutos. Lembre-se de alterar a localização do arquivo status.sh para o local no seu Raspberry Pi.
Então, o que há no script status.sh? O script armazena a temperatura do Raspberry Pi em uma variável chamada 'temp' depois de remover o texto detalhado e o decimal, porque o Bash só pode manipular inteiros.
O script então verifica se o valor é maior que 40 ° C e, se estiver, nos alerta com uma mensagem. Você pode estender este script para acompanhar os acontecimentos no Raspberry Pi. Por exemplo, você pode pedir para enviar alertas sempre que encontrar uma mensagem específica em um arquivo de log ou sempre que o status de um daemon mudar.
O script sendxmpp ajuda você a acompanhar as atividades no Raspberry Pi - no entanto, você não pode atuar nelas sem fazer login no Raspberry Pi. Mas e se isso não for possível??
E se você receber um aviso de temperatura do Raspberry Pi monitorando sua casa enquanto estiver fora do trabalho? Não seria ótimo se você pudesse controlar o Raspberry Pi através de mensagens bem?