Innholdsfortegnelse:

Raspberry Pi Reboot Router: 3 trinn
Raspberry Pi Reboot Router: 3 trinn

Video: Raspberry Pi Reboot Router: 3 trinn

Video: Raspberry Pi Reboot Router: 3 trinn
Video: Raspberry Pi - Что можно сделать? Готовые проекты. Есть ли смысл? Как научиться? 2024, Juli
Anonim
Raspberry Pi Reboot Router
Raspberry Pi Reboot Router
Raspberry Pi Reboot Router
Raspberry Pi Reboot Router

Har du noen gang lagt merke til at du ikke lenger er koblet til internett?

Er det frustrerende å stå opp om morgenen og måtte "starte" ruteren på nytt for å få internett tilbake?

Dette har skjedd med meg oftere enn jeg bryr meg om at det skal skje.

Tidligere i år dro jeg ut av byen i 3 uker, og den første dagen koblet ruteren meg fra internett! Dette betydde at jeg ikke hadde noen forbindelse til tingene i huset jeg stole på for å sjekke inn med jevne mellomrom - f.eks. Nest -termostat, Arlo -kameraer … Siden jeg ikke var hjemme, kunne jeg ikke starte ruteren på nytt. Jeg ville virkelig ikke plage en nabo for å komme forbi sikkerhetssystemet mitt og deretter finne ruteren min og starte den på nytt. Jeg tenkte også på å ringe kraftselskapet og la dem kutte strømmen til huset mitt i omtrent 5 minutter - min S. O. godkjente ikke..:(Da jeg kom tilbake begynte jeg å lete etter en god løsning, men fant ikke noe omfattende nok for det jeg trengte. Først kjøpte jeg nettopp en digital tidsstyrt strømstripe og satte den til å slå av ruteren klokken 2:00 i 5 minutter. Dessverre, et par morgener hadde jeg ikke internett - en gjennomgang av ruteloggene for de dagene indikerte at internett "koblet fra" rundt 4:00 og at ruteren min ikke ville koble til med mindre jeg startet den på nytt.

Etter å ha lagt en ekstra Raspberry Pi og litt python -ferdigheter, bestemte jeg meg for å se på hvordan det kunne hjelpe med dilemmaet mitt, og fant frem til denne løsningen.

Jeg testet og installerte det og så langt så bra!

I utgangspunktet ser Raspberry Pi etter en internettforbindelse hvert 2. minutt via en "ping" til 2 forskjellige nettsteder. Så lenge minst en av dem svarer, er vi alle flinke. Hvis det ikke er noen "pings" som er returnert, slår Pi av strømmen til den interne USB -huben, noe som igjen får Iot Power Relay til å slå av ruteren. Etter 2 minutter slår Pi på den interne USB -huben og får Iot Power Relay til å slå på ruteren. Den venter deretter i 4 minutter før den 2 minutter lange Internett -tilkoblingskontrollen gjenopptas.

Jeg måtte også vurdere at det kanskje er et avbrudd i mitt område, og at internett kommer til å ligge nede en stund - sjelden, men det forekommer (i hvert fall i mitt område …), og jeg ville ikke at ruteren skulle starte på nytt hver 6. til 8 minutter, så jeg la inn et flagg som ville utsette neste omstart i 1 time i dette tilfellet.

Rekvisita

Utstyrsliste:

  1. Iot Power Relay for Raspberry Pi (bildet ovenfor)
  2. USB 2.0 A Skrueterminalblokkkontakt (hvis du skal lage din egen USB -> Strømkabel, også avbildet ovenfor)
  3. Kabel med 2 eller flere ledende ledninger eller en gammel / ekstra USB -kabel du kan bruke. Jeg brukte en gammel stereo phono plug -kabel og kuttet pluggene.
  4. Raspberry Pi Model 3+ (du kan bruke en modell 4 og kontrollere individuelle porter - jeg bruker en modell 3)

Jeg kan tjene en liten provisjon for min anbefaling, anbefaling, attest og/eller lenke til produkter som er oppført ovenfor.

Trinn 1: Bygg og koble til maskinvaren

Bygg og koble til maskinvaren
Bygg og koble til maskinvaren

Jeg bygde kabelen min for å koble Pi til strømreléet.

Jeg brukte USB -skrueklemmen med 2 ledninger koblet til + og gnd -sporene. Du bør kunne se dem på kontakten. Se bildet med de røde (+) og hvite (-) pilene til sporene.

Jeg koblet den andre enden til strømreléet. Den grønne delen på siden av effektreléet trekker bare ut, og så kan du sette ledningene inn i sporene og skru dem godt ned. Se bildet med de røde (+) og hvite (-) pilene til ledningene.

Merk: Hvis du bruker en eksisterende USB -kabel, vil du vanligvis ha 4 ledninger i den andre enden - den røde er (+5v) og den svarte er (-) bakken. Du vil bare bruke de 2 til effektreléet.

For testing koblet jeg en bordlampe til et av stikkontaktene merket med "normalt av". Dette styres av USB -strømtilstanden. Jeg koblet Raspberry Pi til stikkontakten som alltid er på og plugget den inn og slått den på for neste trinn.

Trinn 2: Installer programvare

Sett opp Pi:

Det er et par nettsteder som vil veilede deg i konfigureringen av RPi -en din for første gang om nødvendig.

Life Hacker

Raspberry Pi Org

Jeg konfigurerte min "hodeløs" og bruker VNC for å koble til den. Koblingene ovenfor viser hvordan du gjør dette.

Oppsett av programvare:

  1. Installer uhubctl (se https://github.com/mvp/uhubctl) som skal brukes til å slå USB -huben av og på.
  2. Last ned og installer programvaren jeg skrev fra min GitHub -side: RPi Router Reboot -programvare.
  3. Sett opp og registrer internet-monitor.service hvis du vil kjøre dette som en tjeneste når Raspberry Pi starter.

Trinn 3: Test- og driftsdetaljer

Hoved-python-programmet, rpi-internet-monitor.py kan kjøres med 1 eller 2 parametere for feilsøking og testing.

Åpne en terminaløkt i mappen du legger koden til og utfør følgende kommando:

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

Merk - dette vil skrive ut feilsøkingsinformasjon og slå av og på lampen ettersom den tester at den ikke er koblet til internett. Du kan bare bruke -debug og se meldingene. Du kan ikke bare bruke -test, det må være den andre parameteren etter -debug.

Du kan endre KONSTANTER i den øverste delen av programmet til de verdiene du liker. Det første settet som kjøres med parametersettet -test, det andre settet er det som skal brukes i alle andre tilfeller.

Jeg konfigurerte en tjeneste for å kjøre dette ved oppstart, så det kjører alltid på Raspberry Pi.

Åpne internett-monitor.service og rediger ExecStart- og WorkingDirectory-linjene med hele banen til pythonkoden. Lagre filen.

Kopier filen til systemd/systemmappen:

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

Test at tjenesten starter uten feil:

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

La tjenesten starte ved oppstart:

: ~/Documents/RebootRouter $ sudo systemctl aktiver internett-monitor.service

Hvis alt går bra, kan du nå sette alt sammen og slå av Iot Power Relay, koble fra lampen, koble til ruteren og slå på Power Relay igjen. Ruteren din bør starte på nytt og overvåker nå internett.

Jeg gjorde en test til etter at jeg hadde alt tilkoblet - jeg koblet fra internettkabelen min på veggen og ventet; sikker nok gikk ruteren av og deretter på. Den ble ved og etter omtrent 10 minutter koblet jeg til kabelen på veggen igjen og hadde internett - den har gått bra så langt ….:)

Anbefalt: