Sommario:

Router di riavvio Raspberry Pi: 3 passaggi
Router di riavvio Raspberry Pi: 3 passaggi

Video: Router di riavvio Raspberry Pi: 3 passaggi

Video: Router di riavvio Raspberry Pi: 3 passaggi
Video: Build Your Own Network Bonding Router: Raspberry Pi with Speedify for Faster Internet 2024, Dicembre
Anonim
Router di riavvio Raspberry Pi
Router di riavvio Raspberry Pi
Router di riavvio Raspberry Pi
Router di riavvio Raspberry Pi

Hai mai notato che non sei più connesso a Internet?

È frustrante alzarsi la mattina e dover "riavviare" il router per ripristinare Internet?

Bene, questo mi è successo più spesso di quanto mi preoccupi che accada.

All'inizio di quest'anno, sono andato fuori città per 3 settimane e il primo giorno il mio router si è disconnesso da Internet! Ciò significava che non avevo alcuna connessione con le cose della mia casa su cui faccio affidamento per "controllare" periodicamente, ad esempio termostato Nest, videocamere Arlo… Dato che non ero a casa, non potevo riavviare il router. Non volevo davvero disturbare un vicino per superare il mio sistema di sicurezza e poi trovare il mio router e riavviarlo. Ho anche pensato di chiamare la compagnia elettrica e far togliere loro la corrente a casa mia per circa 5 minuti - il mio S. O. non ha approvato..:(Quando sono tornato, ho iniziato a cercare una buona soluzione, ma non sono riuscito a trovare nulla di abbastanza completo per ciò di cui avevo bisogno. All'inizio, ho appena acquistato una presa multipla digitale temporizzata e l'ho impostata per spegnere il router alle 2:00 per 5 minuti. Sfortunatamente, un paio di mattine non avevo Internet: una revisione dei registri del router per quei giorni indicava che Internet si "disconnetteva" intorno alle 4:00 e il mio router non si connetteva a meno che non lo riavviassi.

Avendo un Raspberry Pi in più in giro e alcune abilità di Python, ho deciso di esaminare come potrebbe aiutare con il mio dilemma e ho trovato questa soluzione.

L'ho testato e installato e finora tutto bene!

Fondamentalmente, il Raspberry Pi verifica la presenza di una connessione Internet ogni 2 minuti tramite un "ping" su 2 siti Web diversi. Finché almeno uno di loro risponde, siamo tutti a posto. Se non vengono restituiti "ping", il Pi interrompe l'alimentazione all'hub USB interno che a sua volta fa sì che Iot Power Relay spenga il router. Dopo 2 minuti, il Pi accende l'hub USB interno facendo sì che Iot Power Relay accenda il router. Quindi attende 4 minuti prima di riprendere il controllo della connettività Internet di 2 minuti.

Ho anche dovuto considerare che forse c'è un'interruzione nella mia zona e Internet non sarà disponibile per un po' - raro, ma si verifica (almeno nella mia zona…) e non volevo che il router si riavviasse ogni 6 a 8 minuti quindi ho inserito un flag che posticiperebbe il prossimo riavvio di 1 ora in questo caso.

Forniture

Elenco attrezzature:

  1. Iot Power Relay per Raspberry Pi (nella foto sopra)
  2. Connettore per morsettiera a vite USB 2.0 A (se hai intenzione di creare il tuo USB -> Cavo ciabatta, anche nella foto sopra)
  3. Cavo con 2 o più fili conduttori o un vecchio cavo USB extra che puoi usare. Ho usato un vecchio cavo con spina phono stereo e ho tagliato le spine.
  4. Raspberry Pi Model 3+ (potresti usare un modello 4 e controllare singole porte - sto usando un modello 3)

Potrei guadagnare una piccola commissione per la mia approvazione, raccomandazione, testimonianza e/o collegamento a qualsiasi prodotto sopra elencato.

Passaggio 1: costruire e collegare l'hardware

Costruisci e collega l'hardware
Costruisci e collega l'hardware

Ho costruito il mio cavo per collegare il Pi al relè di potenza.

Ho usato la morsettiera USB a vite con 2 fili collegati agli slot + e gnd. Dovresti essere in grado di vederli sul connettore. Guarda l'immagine con le frecce rosse (+) e bianche (-) sugli slot.

Ho collegato l'altra estremità al relè di potenza. La parte verde sul lato del relè di potenza si estrae e quindi puoi inserire i fili nelle fessure e avvitare, quindi serrare. Guarda l'immagine con le frecce rosse (+) e bianche (-) ai fili.

Nota: se usi un cavo USB esistente, di solito avrai 4 fili all'altra estremità: quello rosso è il (+5v) e quello nero è la (-) massa. Userai solo quei 2 per il Power Relay.

Per il test, ho collegato una lampada da tavolo a una delle prese contrassegnate come "normalmente spenta". Questo è controllato dallo stato di alimentazione USB. Ho collegato il Raspberry Pi alla presa "sempre acceso", l'ho collegato e acceso per il passaggio successivo.

Passaggio 2: installare il software

Imposta il Pi:

Ci sono un paio di siti Web che ti guideranno nella configurazione del tuo RPi per la prima volta, se necessario.

Hacker di vita

Raspberry Pi Org

Ho impostato il mio "headless" e uso VNC per connettermi ad esso. I link sopra mostrano come farlo.

Configurazione software:

  1. Installa uhubctl (vedi https://github.com/mvp/uhubctl) che verrà utilizzato per accendere e spegnere l'hub USB.
  2. Scarica e installa il software che ho scritto dalla mia pagina GitHub: RPi Router Reboot software.
  3. Configura e registra internet-monitor.service se desideri eseguirlo come servizio all'avvio del Raspberry Pi.

Passaggio 3: dettagli sui test e sul funzionamento

Il programma Python principale, rpi-internet-monitor.py può essere eseguito con 1 o 2 parametri per scopi di debug e test.

Apri una sessione di terminale nella cartella in cui hai inserito il codice ed esegui il seguente comando:

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

Nota: questo stamperà le informazioni di debug e spegnerà e accenderà la lampada poiché risulterà non connesso a Internet. Puoi semplicemente usare -debug e vedere i messaggi. Non puoi semplicemente usare -test, deve essere il secondo parametro dopo -debug.

Puoi cambiare le COSTANTI nella parte superiore del programma con i valori che preferisci. Il primo set viene eseguito con il set di parametri -test, il secondo set è quello che verrà utilizzato in tutti gli altri casi.

Ho impostato un servizio per eseguirlo all'avvio in modo che sia sempre in esecuzione sul mio Raspberry Pi.

Apri internet-monitor.service e modifica le righe ExecStart e WorkingDirectory con i percorsi completi del codice Python. Salva il file.

Copia il file nella cartella systemd/system:

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

Verifica che il servizio si avvii senza errori:

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

Abilita l'avvio del servizio all'avvio:

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

Se tutto va bene, ora puoi mettere tutto insieme e spegnere Iot Power Relay, scollegare la lampada, collegare il router e riaccendere Power Relay. Il tuo router dovrebbe riavviarsi e ora sta monitorando Internet.

Ho fatto un altro test dopo aver collegato tutto: ho scollegato il cavo Internet dal muro e ho aspettato; sicuramente il router si è spento e poi riacceso. È rimasto acceso e dopo circa 10 minuti, ho ricollegato il cavo al muro e ho avuto Internet - finora ha funzionato bene…:)

Consigliato: