Uma das formas de utilizar a RPi sem a necessidade de um monitor é acessá-la remotamente através de ‘ssh’ ou até mesmo de um servidor VNC. Entretanto, quando o IP atribuído a RPi não é fixo, precisamos de alguma forma descobri-lo sem acessar a RPi diretamente. Um das saídas para este problema é apresentada a seguir e consiste em fazer a RPi enviar o seu IP por e-mail toda vez que o cabo Ethernet for conectado e um IP for atribuído.
Os passos apresentados abaixo foram testados em uma RPi modelo B rodando o sistema operacional Raspbian wheezy.
- Primeiramente precisamos baixar o pacote ssmtp, ele é um cliente smtp utilizado para enviar mensagens para um servidor smtp.
sudo apt-get install -y ssmtp
- Abrir o arquivo ‘/etc/ssmtp/ssmtp.conf’, este é o arquivo de configuração do cliente smtp.
sudo vim /etc/ssmtp/ssmtp.conf
- Editar o arquivo ‘/etc/ssmtp/ssmtp.conf’ com as informações abaixo:
############################################################################ root=postmaster # Como utilizamos o gmail, colocamos o servidor smtp dele. mailhub=smtp.gmail.com:587 # nome do host(parte posterior ao @ do email) hostname=gmail.com # usuario(parte anterior ao @ do email) AuthUser=jua_labs # senha AuthPass=juapw # criptografia UseSTARTTLS=YES ############################################################################
- Criar arquivo ‘/etc/network/if-up.d/mailip’.
sudo vim /etc/network/if-up.d/mailip
- Inserir as informações abaixo no arquivo ‘/etc/network/if-up.d/mailip’.
############################################################################ #!/bin/sh # email destino mailreceiver=jua.labs@gmail.com # salvamos a data today=$(date) # guardamos o IP na variavel my_ip my_ip=`ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{print $1}'` #o '\n\n' sinaliza que o que virá apos será o corpo do email my_pi="Subject: RPi reiniciada!\n\n" #mensagem a ser enviada message="$my_pi reiniciada em: $today.\nIP atual = $my_ip" #salvamos a mensagem em um txt echo $message > message.txt #enviamos o 'message.txt' por meio do programa 'ssmtp' ao jua.labs@gmail.com ssmtp ${mailreceiver} < message.txt ############################################################################
- Reinicie a RPi e a reconecte a rede, toda vez que ela receber um endereço IP ela enviará para o email especificado na variável mailreceiver do código do tópico 5.
Referências:
Muito bacana e necessário! Recentemente bolei uma solução parecida…
A diferença, no caso, foi a necessidade de ser avisado também quando meu IP externo é alterado. No python eu fiz a comparação do IP atual com um antigo, salvo em um .txt, e sequencialmente envia um e-mail, caso o IP tenha sido alterado.
Depois foi só adicionar uma cron com intervalo de segundos/minutos.
Parabéns, e abraços!
CurtirCurtir
Muito boa a ideia. Mais um caso de uso! 😀
CurtirCurtir
o meu nao enviou
CurtirCurtir