Spisu treści:

Router restartu Raspberry Pi: 3 kroki
Router restartu Raspberry Pi: 3 kroki

Wideo: Router restartu Raspberry Pi: 3 kroki

Wideo: Router restartu Raspberry Pi: 3 kroki
Wideo: ЧТО МОЖНО СДЕЛАТЬ НА Raspberry Pi с AliExpress. Крутые проэкты для Raspberry Pi 2024, Listopad
Anonim
Router restartu Raspberry Pi
Router restartu Raspberry Pi
Router restartu Raspberry Pi
Router restartu Raspberry Pi

Czy zauważyłeś, że nie masz już połączenia z internetem?

Czy frustrujące jest wstawanie rano i ponowne uruchamianie routera, aby odzyskać Internet?

Cóż, zdarzało mi się to częściej, niż mi na tym zależy.

Na początku tego roku wyjechałem z miasta na 3 tygodnie i pierwszego dnia mój router odłączył się od internetu! Oznaczało to, że nie miałem połączenia z rzeczami w moim domu, które okresowo „sprawdzam”, np. termostat Nest, kamery Arlo… Ponieważ nie było mnie w domu, nie mogłem ponownie uruchomić routera. Naprawdę nie chciałem zawracać sobie głowy sąsiadem, aby ominął mój system bezpieczeństwa, a następnie znalazł mój router i zrestartował go. Myślałem też o zadzwonieniu do firmy energetycznej i kazałem odciąć prąd do mojego domu na około 5 minut - moje S. O. nie zatwierdził..:(Kiedy wróciłem, zacząłem szukać dobrego rozwiązania, ale nie mogłem znaleźć niczego wystarczająco wyczerpującego dla tego, czego potrzebowałem. Na początku po prostu kupiłem listwę zasilającą z cyfrowym zegarem i ustawiłem ją tak, aby wyłączała router o 2:00 nad ranem na 5 minut. Niestety kilka poranków nie miałem internetu - przegląd logów routera z tamtych dni wskazywał, że internet "rozłączył się" około 4:00 rano i mój router nie połączy się dopóki go nie zrestartuję.

Mając dodatkowe Raspberry Pi i trochę umiejętności pytona, postanowiłem sprawdzić, jak może pomóc w moim dylemacie i wymyśliłem to rozwiązanie.

Przetestowałem i zainstalowałem i do tej pory tak dobrze!

Zasadniczo Raspberry Pi sprawdza połączenie internetowe co 2 minuty za pomocą polecenia ping do 2 różnych stron internetowych. Dopóki przynajmniej jeden z nich odpowie, wszyscy jesteśmy dobrzy. Jeśli nie ma zwróconych „pingów”, Pi wyłącza zasilanie wewnętrznego koncentratora USB, co z kolei powoduje, że przekaźnik mocy Iot wyłącza router. Po 2 minutach Pi włącza wewnętrzny koncentrator USB, powodując włączenie przekaźnika zasilania Iot na routerze. Następnie czeka 4 minuty przed wznowieniem 2-minutowego sprawdzania połączenia internetowego.

Musiałem też wziąć pod uwagę, że może w mojej okolicy jest awaria i internet będzie przez jakiś czas nieczynny - rzadko, ale zdarza się (przynajmniej w mojej okolicy…) i nie chciałem, aby router restartował się co 6 do 8 minut, więc wstawiłem flagę, która w tym przypadku opóźniłaby kolejny restart o 1 godzinę.

Kieszonkowe dzieci

Lista wyposażenia:

  1. Przekaźnik mocy Iot dla Raspberry Pi (na zdjęciu powyżej)
  2. Złącze śrubowe USB 2.0 A (jeśli zamierzasz zrobić własny kabel USB -> Listwa zasilająca, również na zdjęciu powyżej)
  3. Kabel z 2 lub więcej przewodami przewodzącymi lub stary / dodatkowy kabel USB, którego możesz użyć. Użyłem starego stereofonicznego kabla z wtykiem gramofonowym i odciąłem wtyczki.
  4. Raspberry Pi Model 3+ (możesz użyć Modelu 4 i sterować poszczególnymi portami - ja używam Modelu 3)

Mogę otrzymać niewielką prowizję za moje poparcie, rekomendację, referencje i/lub linki do jakichkolwiek produktów wymienionych powyżej.

Krok 1: Zbuduj i podłącz sprzęt

Zbuduj i podłącz sprzęt
Zbuduj i podłącz sprzęt

Zbudowałem kabel do podłączenia Pi do przekaźnika mocy.

Użyłem listwy zacisków śrubowych USB z 2 przewodami podłączonymi do gniazd + i gnd. Powinieneś być w stanie je zobaczyć na złączu. Zobacz zdjęcie z czerwonymi (+) i białymi (-) strzałkami do gniazd.

Drugi koniec podłączyłem do przekaźnika mocy. Zielona część z boku przekaźnika mocy po prostu wyciąga się, a następnie można włożyć przewody do gniazd i przykręcić, a następnie mocno dokręcić. Zobacz zdjęcie z czerwonymi (+) i białymi (-) strzałkami na przewodach.

Uwaga: jeśli używasz istniejącego kabla USB, zwykle będziesz mieć 4 przewody na drugim końcu - czerwony to (+5v), a czarny to (-) uziemienie. Użyjesz tylko tych 2 do przekaźnika mocy.

Do testów podłączyłem lampę stołową do jednego z gniazd oznaczonych 'normalnie wyłączone'. Jest to kontrolowane przez stan zasilania USB. Podłączyłem Raspberry Pi do gniazdka „zawsze włączony”, podłączyłem go i włączyłem w następnym kroku.

Krok 2: Zainstaluj oprogramowanie

Skonfiguruj Pi:

Istnieje kilka stron internetowych, które w razie potrzeby poprowadzą Cię przez konfigurację RPi po raz pierwszy.

Haker życia

Organizacja Raspberry Pi

Ustawiłem mój „bezgłowy” i używam VNC, aby się z nim połączyć. Powyższe linki pokazują, jak to zrobić.

Konfiguracja oprogramowania:

  1. Zainstaluj uhubctl (patrz https://github.com/mvp/uhubctl), który będzie używany do wyłączania i włączania koncentratora USB.
  2. Pobierz i zainstaluj oprogramowanie, które napisałem z mojej strony GitHub: RPi Router Reboot software.
  3. Skonfiguruj i zarejestruj internet-monitor.service, jeśli chcesz uruchomić to jako usługę podczas uruchamiania Raspberry Pi.

Krok 3: Testowanie i szczegóły działania

Główny program Pythona, rpi-internet-monitor.py, można uruchomić z 1 lub 2 parametrami do celów debugowania i testowania.

Otwórz sesję terminala w folderze, w którym umieściłeś kod i wykonaj następujące polecenie:

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

Uwaga - spowoduje to wydrukowanie informacji debugowania oraz wyłączenie i włączenie lampy, ponieważ przetestuje brak połączenia z Internetem. Możesz po prostu użyć -debug i zobaczyć wiadomości. Nie możesz po prostu użyć -test, musi to być drugi parametr po -debugu.

Możesz zmienić STAŁYCH w górnej części programu na dowolne wartości. Pierwszy zestaw działa z zestawem parametrów -test, drugi zestaw będzie używany we wszystkich innych przypadkach.

Skonfigurowałem usługę do uruchamiania tego w czasie rozruchu, więc zawsze działa na moim Raspberry Pi.

Otwórz internet-monitor.service i edytuj wiersze ExecStart i WorkingDirectory z pełnymi ścieżkami do kodu Pythona. Zapisz plik.

Skopiuj plik do folderu systemd/system:

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

Sprawdź, czy usługa uruchamia się bez błędów:

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

Włącz usługę, aby uruchamiała się w czasie rozruchu:

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

Jeśli wszystko pójdzie dobrze, możesz teraz wszystko złożyć i wyłączyć przekaźnik mocy Iot, odłączyć lampę, podłączyć router i ponownie włączyć przekaźnik mocy. Twój router powinien się zrestartować i teraz monitoruje Internet.

Zrobiłem jeszcze jeden test po podłączeniu wszystkiego - odłączyłem kabel internetowy przy ścianie i czekałem; na pewno router wyłączył się, a następnie włączył. Pozostało włączone i po około 10 minutach ponownie podłączyłem kabel do ściany i miałem internet - do tej pory działał dobrze….:)

Zalecana: