Стал у меня зависать роутер, точнее 3G модем. долго копался в инете, все схемы слишком замудренные. А задача была простая, разорвать питание USB модема и заново подключить. Разозлился и написал первую свою программу. Что нужно: - Arduino UNO - Ethernet Shiled И собственно сам код: Код (C++): #include <Ethernet.h> #include <SPI.h> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC - адрес byte ip[] = { 192, 168, 1, 105 }; // IP Вашего устройства byte server[] = { 213, 180, 193, 3 }; // IP адрес сервера который пингуем (сейчас это ya.ru) EthernetClient client; int relay = 9; // номер ноги к которй подключаем реле (или любое другое устройство) void setup() { pinMode(relay, OUTPUT); Ethernet.begin(mac, ip); Serial.begin(9600); } void loop() { { if (client.connect(server, 80)) { Serial.println("Connect to Yandex - Good!");} // Сообщение которое выводится на монитор порта при присутствии интернета else { Serial.println("Warning!!! - not Connect to internet"); // Сообщение которое выводится на монитор порта при отсутствии интернета digitalWrite(relay, HIGH); delay(10000); //на какое время выкключить роутер при отсутствии интернета digitalWrite(relay, LOW); delay(50000); } //через какое время после включения роутера возобновить проверку } client.stop(); delay(10000); // Переодичность с которой пингуем яндекс } Нога к которой подключать устройства у нас "в конкретном случае 9 (девятая)" К ней подключается реле, которое может разрывать, как питание роутера так и самого модема (смотря какую цепь заведете) Постарался прописать все в комментариях скетча. Надеюсь кому то поможет.
1. Как Вы думаете, что будет происходить, если интернет пропадет не по вине модема, а вине провайдера минут, эдак, на 30? Или на несколько часов. 2. Вы проверяли, как все это работает при пропадании и электричества, и повторном его появлении? Может быть, Вам будет полезно ознакомится вот с этим и этим проектами. Исследовать, и сделать свой еще лучше.
Давайте конкретизируем! Я конкретно пользуюсь модемами LTE "Yota" и "МТС", ну нужен мне мониторинг. А единственный провайдер монополист дерет не мерянные деньги. А YOTA вполне себя оправдывает. Задача перезагрузить именно USB модем, для этого в USB кабеле разрываю "+" провод на нужное время, у меня это 10 сек. И так будет повторяться циклично пока не восстановиться ping. поэтому: 1. будем дергать модем пока не появится интернет. - и не вижу ничего в этом плохого. 2. При про падании электричества и восстановлении все просто и замечательно запускается. 5-й день - полет нормальный p.s. если говорить непосредственно о перезагрузке самого роутера, то решение также применимо, но все устройства будут отваливаться и подключаться заново, что не совсем хорошо. В этом случае можно увеличить время "следующей проверки после перезагрузки А Ваши ссылки я прочел первым делом. Решение классное, но для простой задачи, и новичков, которые осваивают ардуинку, - слишком мудренное.
Игорь, поверьте - ни в коем случае не хотел вас огорчить ! Для такого, как я начинающего дилетанта-программиста, важно начинать с "простого", а таких как я - много. А все решения "для простых задач" выложенные в инете - избыточно наворочены. Это потом, когда человек поймет смысл, принцип и захочет анализировать время отклика, загрузку канала и.т.д. - он сам пойдет искать.. Еще раз повторюсь, ни в коем случае не хотел Вас огорчать. Готов откупиться пивом ! )))
Нет ничего более постоянного, чем временные решения. У меня самого таких хватает. Поэтому лучше делать все правильно. Поскольку я уже прошел все это на собственной шкурке - те два вопроса, что задал, они очень важны. По первому. Я не уверен, что постоянное дерганье модема в случае отсутствия инета не по его вине в течение, например, часа, не выведет его из строя. По второму. Вам крупно повезло - при падении электричества у Вас все работает. Обычно же, требуется время на соединение с интернетом. (В моем случае - до 5 минут!!! Yota -> Zyxel) Практически всегда. Если его не хватает при старте - реле начинает дергать модем, не давая ему присоединиться никогда. Поэтому, Ваше решение, все таки, требует критического осмысления. И... я не огорчался.
1. Если не модем сдохнет, то SIM-карта, поскольку у SIM-карты есть ограничение количества регистраций в сети. Раньше на объектах с плохой связью и "тупым" оборудованием, которое перерегистрируется в сети пару-тройку раз в сутки "для гарантии нахождения на связи", SIM-карты приходилось менять раз в полтора года. Возможно, что сейчас ситуация изменилась и ресурс стал больше. 2. IMHO, гораздо проще на том же Zyxel настроить контроль канала.
1. Поверь моему опыту (10 лет работы в Вымпелком) Симка сдыхает, как и любое оборудование. Может работать вечно а может и неделю. и никак не привязана к количеству регистраций в сети. Бывают проблемы при обновлениях услуг оператора, когда в нее при Update вливают инфы больше, чем имеющаяся емкость. И Тогда всем у кого проблемы говорят - нужно менять симку(обратите внимание это происходит как эпидемия - у нескольких человек, одновременно - одна и та же проблема), и соответственно идет смена на SIM c большей памятью.- так что первый вопрос не в тему. 2. Настроить можно, но !!!!! - перезагружать весь роутер я не хочу, на нем висят файловые сервера для пользователей, (офис не большой 12 чел. - тем не менее) - а как перезагрузить только USB порт я не знаю. Если владеете такой информацией - научите, буду Вам очень благодарен.
Насколько я помню, Zyxel Keenetic не перезагружается полностью при утрате связности с контрольным хостом, а только порт перезагружает.
Я тоже так думал. Но он никаких действий не предпринимает ((( , Раньше BAT - с компа пинговал и через telnet передергивал, но получалось все подключенные устройства отваливались.