Оглавление:

Маршрутизатор перезагрузки Raspberry Pi: 3 шага
Маршрутизатор перезагрузки Raspberry Pi: 3 шага

Видео: Маршрутизатор перезагрузки Raspberry Pi: 3 шага

Видео: Маршрутизатор перезагрузки Raspberry Pi: 3 шага
Видео: Home Assistant 2019. Установка на Raspberry Pi 3 b+ 2024, Июль
Anonim
Маршрутизатор перезагрузки Raspberry Pi
Маршрутизатор перезагрузки Raspberry Pi
Маршрутизатор перезагрузки Raspberry Pi
Маршрутизатор перезагрузки Raspberry Pi

Вы когда-нибудь замечали, что больше не подключены к Интернету?

Разве неприятно вставать утром и «перезагружать» роутер, чтобы снова подключиться к Интернету?

Что ж, это случалось со мной чаще, чем мне хотелось бы.

Ранее в этом году я уехал за город на 3 недели, и в первый же день мой роутер отключился от Интернета! Это означало, что у меня не было связи с вещами в моем доме, которые я должен периодически «проверять» - например, термостат Nest, камеры Arlo… Так как меня не было дома, я не мог перезапустить свой маршрутизатор. Я действительно не хотел беспокоить соседа, чтобы он обошел мою систему безопасности, а затем нашел мой маршрутизатор и перезапустил его. Я также подумал о том, чтобы позвонить в энергетическую компанию и попросить их отключить электричество в моем доме примерно на 5 минут - мой S. O. не одобрял..:(Когда я вернулся, я начал искать хорошее решение, но не смог найти ничего достаточно всеобъемлющего для того, что мне было нужно. Сначала я только что купил удлинитель с цифровым таймером и настроил его на выключение роутера в 2 часа ночи на 5 минут. К сожалению, пару раз по утрам у меня не было Интернета - просмотр журналов маршрутизатора за те дни показал, что интернет «отключился» около 4:00 утра, и мой маршрутизатор не подключился, если я не перезапущу его.

Имея под рукой дополнительный Raspberry Pi и некоторые навыки работы с питоном, я решил изучить, как это может помочь с моей дилеммой, и придумал это решение.

Я протестировал и установил его, и пока все хорошо!

По сути, Raspberry Pi проверяет подключение к Интернету каждые 2 минуты с помощью пинга на 2 разных веб-сайтах. Пока хотя бы один из них ответит, у нас все хорошо. Если нет возвращенных «пингов», Pi отключает питание внутреннего USB-концентратора, что, в свою очередь, заставляет Iot Power Relay выключить маршрутизатор. Через 2 минуты Pi включает внутренний USB-концентратор, в результате чего Iot Power Relay включает маршрутизатор. Затем он ждет 4 минуты, прежде чем возобновить 2-минутную проверку подключения к Интернету.

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

Запасы

Перечень оборудования:

  1. Реле питания Iot для Raspberry Pi (на фото выше)
  2. Разъем USB 2.0 A с винтовым клеммным блоком (если вы собираетесь сделать свой собственный кабель USB -> удлинитель, также изображенный выше)
  3. Вы можете использовать кабель с двумя или более проводящими проводами или старый / дополнительный кабель USB. Я использовал старый кабель со стереофонической вилкой и отрезал вилки.
  4. Raspberry Pi Model 3+ (вы можете использовать Model 4 и управлять отдельными портами - я использую Model 3)

Я могу получить небольшую комиссию за свою поддержку, рекомендацию, отзыв и / или ссылку на любые продукты, перечисленные выше.

Шаг 1. Соберите и подключите оборудование

Сборка и подключение оборудования
Сборка и подключение оборудования

Я построил свой кабель для подключения Pi к реле питания.

Я использовал винтовой клеммный блок USB с двумя проводами, подключенными к слотам + и gnd. Вы должны увидеть их на разъеме. Смотрите картинку с красными (+) и белыми (-) стрелками к прорезям.

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

Примечание: если вы используете существующий USB-кабель, на другом конце у вас обычно будет 4 провода: красный - это (+ 5В), а черный - это (-) земля. Вы будете использовать только эти 2 для реле мощности.

Для тестирования я подключил настольную лампу к одной из розеток с пометкой «нормально выключен». Это контролируется состоянием питания USB. Я подключил Raspberry Pi к розетке «всегда включен», воткнул в розетку и включил для следующего шага.

Шаг 2: Установите программное обеспечение

Настройте Pi:

Есть несколько веб-сайтов, которые помогут вам настроить RPi в первый раз, если это необходимо.

Лайф-хакер

Raspberry Pi Org

Я установил свой безголовый и использую VNC для подключения к нему. Ссылки выше показывают, как это сделать.

Настроено программное обеспечение:

  1. Установите uhubctl (см. Https://github.com/mvp/uhubctl), который будет использоваться для включения и выключения концентратора USB.
  2. Загрузите и установите программное обеспечение, которое я написал со своей страницы GitHub: Программное обеспечение для перезагрузки маршрутизатора RPi.
  3. Настройте и зарегистрируйте internet-monitor.service, если вы хотите запускать его как службу при запуске Raspberry Pi.

Шаг 3: Тестирование и подробности работы

Основная программа Python, rpi-internet-monitor.py, может запускаться с 1 или 2 параметрами для целей отладки и тестирования.

Откройте сеанс терминала в папке, в которую вы поместили код, и выполните следующую команду:

: ~ / Документы / 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 start internet-monitor.service

Включите запуск службы во время загрузки:

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

Если все пойдет хорошо, теперь вы можете собрать все вместе и выключить Iot Power Relay, отсоединить лампу, подключить маршрутизатор и снова включить Power Relay. Ваш маршрутизатор должен перезагрузиться, и теперь он контролирует Интернет.

Я сделал еще один тест после того, как все было подключено - я отключил свой интернет-кабель от стены и стал ждать; конечно, маршрутизатор выключился, а затем включился. Он оставался включенным, и примерно через 10 минут я снова подключил кабель к стене и подключился к Интернету - до сих пор он работает нормально….:)

Рекомендуемые: