Съдържание:

Рестартиращ рутер на Raspberry Pi: 3 стъпки
Рестартиращ рутер на Raspberry Pi: 3 стъпки

Видео: Рестартиращ рутер на Raspberry Pi: 3 стъпки

Видео: Рестартиращ рутер на Raspberry Pi: 3 стъпки
Видео: How to network monitor using Raspberry PI | Zabbix | NETVN 2024, Юли
Anonim
Рестартиращ рутер на Raspberry Pi
Рестартиращ рутер на Raspberry Pi
Рестартиращ рутер на Raspberry Pi
Рестартиращ рутер на Raspberry Pi

Забелязали ли сте някога, че вече не сте свързани с интернет?

Разочароващо ли е да ставате сутрин и да трябва да „рестартирате“рутера, за да си върнете интернет?

Е, това ми се е случвало по -често, отколкото ми пука да се случи.

По -рано тази година излязох от града за 3 седмици и на първия ден маршрутизаторът ми се изключи от интернет! Това означаваше, че нямам връзка с нещата в дома си, на които разчитам да се „проверявам“периодично - например термостат Nest, камери Arlo … Тъй като не бях у дома, не можех да рестартирам рутера си. Наистина не исках да притеснявам съсед да мине покрай системата ми за сигурност и след това да намери моя рутер и да го рестартира. Мислех също да се обадя на енергийната компания и да ги накарам да прекъснат захранването на къщата ми за около 5 минути - моят S. O. не одобри..:(Когато се върнах, започнах да търся добро решение, но не можах да намеря нищо достатъчно изчерпателно за това, от което имах нужда. Отначало току -що купих дигитален разклонител и го настроих да изключва маршрутизатора в 2 часа сутринта за 5 минути. За съжаление няколко сутрини нямах интернет - прегледът на регистрационните файлове на рутера за тези дни показа, че интернет „се прекъсна“около 4:00 сутринта и маршрутизаторът ми няма да се свърже, освен ако не го рестартирам.

Като разполагах с допълнително Raspberry Pi и имах умения в python, реших да разгледам как може да помогне с моята дилема и измислих това решение.

Тествах го и го инсталирах и засега е добре!

По принцип Raspberry Pi проверява за интернет връзка на всеки 2 минути чрез „пинг“към 2 различни уебсайта. Докато поне един от тях отговори, всички сме добре. Ако няма върнати „пингове“, Pi изключва захранването към вътрешния USB хъб, което от своя страна кара Iot Power Relay да изключи рутера. След 2 минути Pi захранва вътрешния USB хъб, което кара Iot Power Relay да включи рутера. След това изчаква 4 минути, преди да възобнови двуминутната проверка на интернет връзката.

Също така трябваше да помисля, че може би има прекъсване в моя район и интернет ще спре за известно време - рядко, но се случва (поне в моя район …) и не исках рутерът да се рестартира на всеки 6 до 8 минути, така че поставих флаг, който в този случай би отложил следващото рестартиране за 1 час.

Консумативи

Списък на оборудването:

  1. Iot Power Relay за Raspberry Pi (на снимката по -горе)
  2. USB 2.0 A винтов конектор (ако ще направите свой собствен USB -> кабел за захранваща лента, също на снимката по -горе)
  3. Кабел с 2 или повече проводящи проводника или стар / допълнителен USB кабел, който можете да използвате. Използвах стар стереофоничен кабел и отрязах щепселите.
  4. Raspberry Pi Model 3+ (можете да използвате модел 4 и да контролирате отделни портове - използвам модел 3)

Възможно е да спечеля малка комисионна за моето одобрение, препоръка, препоръка и/или връзка към всички продукти, изброени по -горе.

Стъпка 1: Изградете и свържете хардуера

Изградете и свържете хардуера
Изградете и свържете хардуера

Изградих кабела си за свързване на Pi към релето за захранване.

Използвах винтовия клемен блок на USB с 2 проводника, свързани към слотовете + и gnd. Трябва да можете да ги видите на конектора. Вижте картината с червените (+) и белите (-) стрелки към слотовете.

Свързах другия край в релето за захранване. Зелената част отстрани на захранващото реле просто се изважда и след това можете да поставите проводниците в слотовете и след това да ги завиете здраво. Вижте снимката с червените (+) и белите (-) стрелки към проводниците.

Забележка: ако използвате съществуващ USB кабел, обикновено ще имате 4 проводника в другия край - червеният е (+5v), а черният е (-) земята. Ще използвате само тези 2 за релето за захранване.

За тестване свързах настолна лампа към един от контактите с надпис „нормално изключен“. Това се контролира от състоянието на захранването на USB. Включих Raspberry Pi в контакта „винаги включен“и го включих и включих за следващата стъпка.

Стъпка 2: Инсталирайте софтуер

Настройте Pi:

Има няколко уебсайта, които ще ви насочат при настройването на вашия RPi за първи път, ако е необходимо.

Лайф хакер

Raspberry Pi Org

Настроих моя „без глава“и използвам VNC, за да се свържа с него. Горните връзки показват как да направите това.

Настройка на софтуера:

  1. Инсталирайте uhubctl (вижте https://github.com/mvp/uhubctl), който ще се използва за изключване и включване на USB концентратора.
  2. Изтеглете и инсталирайте софтуера, който написах от моята страница на GitHub: Софтуер за рестартиране на RPi Router.
  3. Настройте и регистрирайте internet-monitor.service, ако искате да стартирате това като услуга при стартиране на Raspberry Pi.

Стъпка 3: Подробности за тестване и работа

Основната програма на python, rpi-internet-monitor.py може да се изпълнява с 1 или 2 параметъра за отстраняване на грешки и тестване.

Отворете терминална сесия в папката, в която сте поставили кода, и изпълнете следната команда:

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

Забележка - това ще отпечата информация за отстраняване на грешки и ще изключи и включи лампата, тъй като ще тества, че не е свързана с интернет. Можете просто да използвате -debug и да видите съобщенията. Не можете просто да използвате -test, той трябва да е вторият параметър след -debug.

Можете да промените КОНСТАНТИТЕ в горната част на програмата на стойностите, които харесвате. Първият набор се изпълнява с набор от параметри -test, вторият набор е това, което ще се използва във всички останали случаи.

Настроих услуга, която да стартира това по време на зареждане, така че винаги да работи на моя Raspberry Pi.

Отворете internet-monitor.service и редактирайте редовете ExecStart и WorkingDirectory с пълните си пътища към кода на python. Запазете файла.

Копирайте файла в папката systemd/system:

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

Проверете дали услугата стартира без никакви грешки:

: ~/Documents/RebootRouter $ sudo systemctl стартирайте internet-monitor.service

Активирайте услугата да стартира по време на зареждане:

: ~/Documents/RebootRouter $ sudo systemctl активира internet-monitor.service

Ако всичко върви добре, сега можете да съберете всичко и да изключите Iot Power Relay, да изключите лампата, да свържете рутера и да включите отново Power Relay. Вашият рутер трябва да се рестартира и сега наблюдава интернет.

Направих още един тест, след като свързах всичко - изключих интернет кабела си на стената и зачаках; сигурно рутерът се е изключил и след това се е включил. Той остана включен и след около 10 минути отново свързах кабела към стената и имах интернет - досега работеше добре….:)

Препоръчано: