Já faz algum tempo que eu tenho um Raspberry Pi 2 Model B+, e a cada dia que passa eu encontro uma nova utilidade para ele.
Apesar do pequeno computador não possuir uma grande capacidade de processamento (comparando com os computadores “convencionais” atuais), ele possui capacidade suficiente para realizar diversas tarefas de automação. Além disso, contam muitos pontos a favor o fato de ele ter um consumo irrisório de energia elétrica, e o fato de ele custar apenas US$ 35,00, sendo portanto um dos computadores mais baratos que se pode ter rodando o tempo todo.
Começando
Quando comprei meu RPi, comprei um Kit pelo Aliexpress, onde veio o Raspberry Pi Model B+, um “Case” (gabinete) de metal, um pequeno cooler (ventoinha) e um adaptador USB para rede Wifi. O Cooler eu não estou usando, pois achei ele muito barulhento e também percebi que o computadorzinho não esquenta muito, e o cooler acaba sendo um luxo desnecessário. Já o case é fantástico, recomendo comprar sempre um case para evitar de deixar a placa solta por ai.
O cartão MicroSD eu já tinha (um de 8GB), e o cabo MicroUSB e o adaptador de tomada eu também já tinha. Todos esses componentes vieram de um celular Android velho que eu tinha jogado em uma gaveta.
Atualmente o meu RPi fica ligado dia e noite. Ele não está ligado a um monitor ou teclado ou mouse. Ele tem apenas um Dongle USB para rede Wifi, e fica esquecido em um canto do meu quarto, atrás do monitor do meu computador. Então eu realmente nem lembro que ele existe a não ser quando eu vou usa-lo.
Antes de ligar o computador pela primeira vez, eu tive que preparar o cartão MicroSD com o sistema operacional. Eu resolvi não perder muito tempo escolhendo e fui na opção padrão: Raspbian OS, que é um Linux feito especificamente para o Raspberry. Ele vem até com uma Interface gráfica, que usei na primeira vez que liguei o computador para poder configurar a rede Wifi e fazer a configuração do SSH.
Para acessa-lo remotamente, eu tive que habilitar o SSH, que é um protocolo de acesso via terminal (modo texto). É mais conhecido como “Telnet”. Por ele é possível fazer absolutamente tudo, desde que seja por linha de comando (não há interface gráfica por SSH). Uma vez que o SSH está configurado, você pode desligar o monitor, teclado e mouse, e fazer todo o resto da configuração remotamente.
Outra configuração interessante de se fazer é habilitar o modo “persistente” da rede Wifi. Por padrão, se por algum motivo a rede wifi cair, o Raspian não vai tentar reconectar-se automaticamente, e isso vai exigir que você desligue e ligue novamente o aparelho, ou plugue a ele um monitor e um teclado e comande manualmente a reconexão – e isso é chato. Então o melhor é fazer o Raspberry reconectar-se sozinho.
Mais um ajuste interessante de fazer é programar o pequeno computador a fazer um reboot de tempos em tempos. No meu caso, como uso pouco, eu configurei um reboot diário, sempre a meia noite. Mas eu acredito que um reboot semanal já é suficiente para manter o computador funcionando bem.
Para isso você vai usar o “Cron”, que é o serviço de agendamento de tarefas do Linux. Você provavelmente vai usar MUITO o Cron, então é bom aprender como ele funciona.
Para reiniciar o computador, basta usar o seguinte comando:
shutdown -r now
Uma vez que ele está funcionando sozinho e de forma independente, chegou a hora de dar algum propósito para ele, certo? Então vamos lá:
Servidor de Wake-on-lan
Wake on Lan é um recurso das redes que permite “ligar” um computador da rede a partir de outro computador. Em empresas e universidades, com centenas ou milhares de computadores, é um recurso bem útil para ligar todos os computadores de um laboratório de uma única vez, bastando para isso enviar um comando via rede.
Aqui em casa eu tenho um computador que consome bastante energia, e deixa-lo ligado o dia todo é um grande desperdício, já que raramente eu preciso acessa-lo remotamente. Mas quando eu preciso acessar, eu preciso que ele esteja ligado. Para resolver este problema, o meu Raspberry Pi, que fica ligado o dia todo, e que está na mesma rede que o meu computador, é que é o responsável por ligar o meu PC quando eu preciso.
Para isso, basta seguir este tutorial.
Reiniciador de Roteador
A Internet da minha casa é a Vivo Fibra, um serviço de Fibra ótica da Vivo. Além da Internet, tenho serviço de TV por assinatura (IPTV). A Internet chega por um cabo de fibra ótica até um pequeno modem, que converte a conexão em uma porta RJ-45 (rede ethernet gigabit), que por sua vez entra em um roteador que tem 1 entrada RJ-45, 4 saídas RJ-45 (todas gigabit), 1 saída coaxial (para o conversor da IPTV) e duas redes wireless, uma de 2,4 GHz e outra de 5 GHz. É um roteador bem bacana, mas eventualmente ele simplesmente para de funcionar, e é preciso reiniciá-lo para que ele volte ao normal.
Felizmente este roteador possui uma interface de configuração por SSH (Telnet), então isso me possibilitou criar um pequeno script no Raspberry, e através do Crontab, agendar a execução desse script para todos os dias as 4:00 da manhã.
O conteúdo do script é o seguinte:
#!/bin/bash
# Reboot Router
echo "Reiniciando o roteador..."
(sleep 5;echo reboot;sleep 5;) | sshpass -p SENHA ssh Admin@192.168.1.1
Explicando rapidamente:
- 192.168.1.1 é o IP do roteador.
- Admin é o nome de usuário
- SENHA é a senha para logar (no roteador da VIVO, a senha são os últimos caracteres do MAC Address do roteador. Tem isso colado na etiqueta em baixo do equipamento).
- sshpass é um comando utilizado apenas para “burlar” a mensagem de conexão não-confiável. Isso porque há uma troca de certificados de segurança durante a conexão ssh, e como não haverá ninguém para confirmar isso quando o processo estiver rodando sozinho, então é necessário usar isso.
- Os comandos entre parenteses são executados nesta ordem. “sleep 5” serve para criar uma pausa de 5 segundos, e “echo reboot” apenas escreve “reboot” no terminal do roteador – fazendo-o reiniciar obviamente.
Depois disso, nunca mais fiquei sem internet em casa.
Estou precisando de sua ajuda. Eu tenho um roteador e modem 3g num lugar bastante longe da minha residência. De vez em quando fica baralhado e tenho de lá ir desligar e voltar a ligar o sistema para voltar tudo ao normal. Tenho um raspberry pi mas não sei programá-lo. Eu pretendia um programa que verificasse se o roteador tem internet e caso contrário desligasse e voltasse a ligar a tomada de corrente eléctrica do roteador. Será que me pode ajudar?