Índice:

Raspberry Pi Reboot Router: 3 etapas
Raspberry Pi Reboot Router: 3 etapas

Vídeo: Raspberry Pi Reboot Router: 3 etapas

Vídeo: Raspberry Pi Reboot Router: 3 etapas
Vídeo: How To Make TOR Wi-Fi Router With Raspberry Pi 3 | Turn Your Raspberry Pi into Tor Wi-Fi Router! 2024, Novembro
Anonim
Raspberry Pi Reboot Router
Raspberry Pi Reboot Router
Raspberry Pi Reboot Router
Raspberry Pi Reboot Router

Você já percebeu que não está mais conectado à internet?

É frustrante acordar de manhã e ter que 'reiniciar' o roteador para ter a internet de volta?

Bem, isso tem acontecido comigo com mais frequência do que eu gostaria que acontecesse.

No início deste ano, saí da cidade por 3 semanas e no primeiro dia meu roteador se desconectou da internet! Isso significava que eu não tinha conexão com as coisas da minha casa nas quais confio para 'verificar' periodicamente - por exemplo, termostato Nest, câmeras Arlo … Como não estava em casa, não consegui reiniciar meu roteador. Eu realmente não queria incomodar um vizinho para passar pelo meu sistema de segurança, encontrar meu roteador e reiniciá-lo. Também pensei em ligar para a companhia de energia e mandar cortar a energia de minha casa por cerca de 5 minutos - meu S. O. não aprovou..:(Quando voltei, comecei a procurar uma boa solução, mas não consegui encontrar nada abrangente o suficiente para o que eu precisava. No início, acabei de comprar um filtro de linha com cronômetro digital e configurá-lo para desligar o roteador às 2h da manhã por 5 minutos. Infelizmente, algumas manhãs eu não tinha internet - uma revisão dos logs do roteador para aqueles dias indicou que a internet 'desconectou' por volta das 4h da manhã e meu roteador não se conectaria a menos que eu o reiniciasse.

Tendo um Raspberry Pi extra disponível e algumas habilidades em python, decidi descobrir como isso poderia ajudar no meu dilema e encontrei essa solução.

Eu testei e instalei e até agora tudo bem!

Basicamente, o Raspberry Pi verifica se há uma conexão de internet a cada 2 minutos por meio de um 'ping' em 2 sites diferentes. Contanto que pelo menos um deles responda, estamos todos bem. Se não houver 'pings' retornados, o Pi desliga a energia do hub USB interno, o que, por sua vez, faz com que o Iot Power Relay desligue o roteador. Após 2 minutos, o Pi liga o hub USB interno fazendo com que o Iot Power Relay ligue o roteador. Em seguida, espera 4 minutos antes de retomar a verificação de conectividade de 2 minutos com a Internet.

Eu também tive que considerar que talvez haja uma interrupção na minha área e a internet vai ficar fora do ar por um tempo - raro, mas ocorre (pelo menos na minha área …) e eu não queria que o roteador reiniciasse a cada 6 para 8 minutos, então coloquei um sinalizador que adiaria a próxima reinicialização por 1 hora neste caso.

Suprimentos

Lista de equipamento:

  1. Iot Power Relay para Raspberry Pi (foto acima)
  2. Conector de bloco de terminais de parafuso USB 2.0 A (se você for fazer seu próprio USB -> Cabo de régua de energia, também ilustrado acima)
  3. Cabo com 2 ou mais fios condutores ou um cabo USB antigo / extra que você pode usar. Usei um cabo de plugue fono estéreo antigo e cortei os plugues.
  4. Raspberry Pi Modelo 3+ (você pode usar um Modelo 4 e controlar portas individuais - estou usando um Modelo 3)

Posso receber uma pequena comissão por meu endosso, recomendação, depoimento e / ou link para qualquer produto listado acima.

Etapa 1: construir e conectar o hardware

Construir e conectar o hardware
Construir e conectar o hardware

Construí meu cabo para conectar o Pi ao relé de energia.

Usei o bloco de terminais de parafuso USB com 2 fios conectados aos slots + e gnd. Você deve conseguir vê-los no conector. Veja a imagem com as setas vermelha (+) e branca (-) para os slots.

Liguei a outra extremidade no relé de energia. A parte verde na lateral do relé de alimentação simplesmente puxa e você pode inserir os fios nos slots e aparafusar com força. Veja a imagem com as setas vermelha (+) e branca (-) para os fios.

Nota: se você usar um cabo USB existente, normalmente terá 4 fios na outra extremidade - o vermelho é o (+ 5v) e o preto é o (-) aterramento. Você só usará aqueles 2 para o relé de energia.

Para teste, conectei um abajur de mesa a uma das tomadas marcadas como 'normalmente desligado'. Isso é controlado pelo estado de energia do USB. Liguei o Raspberry Pi na tomada 'sempre ligado', conectei-o e liguei-o para a próxima etapa.

Etapa 2: Instale o software

Configure o Pi:

Existem alguns sites que o orientarão na configuração do RPi pela primeira vez, se necessário.

Life Hacker

Raspberry Pi Org

Eu configurei o meu como 'sem cabeça' e uso o VNC para me conectar a ele. Os links acima mostram como fazer isso.

Configuração do software:

  1. Instale o uhubctl (consulte https://github.com/mvp/uhubctl) que será usado para desligar e ligar o hub USB.
  2. Baixe e instale o software que escrevi na minha página GitHub: software RPi Router Reboot.
  3. Configure e registre internet-monitor.service se desejar executá-lo como serviço quando o Raspberry Pi for inicializado.

Etapa 3: detalhes de teste e operação

O programa python principal, rpi-internet-monitor.py, pode ser executado com 1 ou 2 parâmetros para fins de depuração e teste.

Abra uma sessão de terminal na pasta em que você colocou o código e execute o seguinte comando:

: ~ / Documents / RebootRouter $ python3 rpi-internet-monitor.py -debug -test

Observação - isso imprimirá as informações de depuração e apagará e acenderá a lâmpada, pois o teste será desconectado da Internet. Você pode apenas usar -debug e ver as mensagens. Você não pode apenas usar -test, ele deve ser o segundo parâmetro após -debug.

Você pode alterar as CONSTANTES na parte superior do programa para os valores que desejar. O primeiro conjunto é executado com o conjunto de parâmetros -test, o segundo conjunto é o que será usado em todos os outros casos.

Eu configurei um serviço para executar isso no momento da inicialização para que esteja sempre em execução no meu Raspberry Pi.

Abra internet-monitor.service e edite as linhas ExecStart e WorkingDirectory com seus caminhos completos para o código Python. Salve o arquivo.

Copie o arquivo para a pasta systemd / system:

: ~ / Documents / RebootRouter $ sudo cp internet-monitor.service /etc/systemd/system/internet-monitor.service

Teste se o serviço é iniciado sem erros:

: ~ / Documents / RebootRouter $ sudo systemctl start internet-monitor.service

Habilite o serviço para iniciar no momento da inicialização:

: ~ / Documents / RebootRouter $ sudo systemctl enable internet-monitor.service

Se tudo correr bem, você pode juntar tudo e desligar o Iot Power Relay, desconectar a lâmpada, conectar o roteador e ligar o Power Relay novamente. Seu roteador deve reiniciar e agora está monitorando a internet.

Fiz mais um teste depois de ter tudo conectado - desconectei meu cabo de internet da parede e esperei; com certeza o roteador desligou e ligou. Ele permaneceu ligado e depois de 10 minutos ou mais, eu reconectei o cabo na parede e tinha a internet - está funcionando bem até agora….:)

Recomendado: