Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Urządzenie do automatycznego resetu routera

y0yster 15 Aug 2017 19:50 8907 33
IGE-XAO
  • #31
    _Arecki_
    Level 15  
    y0yster wrote:
    Co do samego programu to co racja to racja. Można było wykorzystać licznik, który dałby większą dokładność, ale to nie było istotą problemu.

    Koledze chodziło o skorzystanie z timera w celu zmniejszenia poboru prądu przez to twoje urządzenie. Mikrokontroler powinien cały czas spać, bo nic nie robi, do tego powinien chodzić na jakimś niskim zegarze. Timer powinien obudzić go i wykonać reset.
    Z tego co się domyślam, to zasilanie jest z USB routera, więc ciąg dalszy programu nie ma większego sensu, bo twój układ resetuje się razem routerem.

    Powiedz mi jeszcze dlaczego resetujesz go co ok 1h?
    Code:
    (...)
    
    delay(3 * 24 * 60 * 1000);
    (...)

    Według super skomplikowanych obliczeń masz:
    3 * 24 * 60 *1000 ms -> 3 * 24 * 60 s -> 3 * 24 min -> 72 min
  • IGE-XAO
  • #32
    andrzejlisek
    Level 28  
    _Arecki_ wrote:
    Powiedz mi jeszcze dlaczego resetujesz go co ok 1h?
    Code:
    (...)
    
    delay(3 * 24 * 60 * 1000);
    (...)

    Według super skomplikowanych obliczeń masz:
    3 * 24 * 60 *1000 ms -> 3 * 24 * 60 s -> 3 * 24 min -> 72 min

    Moim zdaniem, jest to ewidentnie pomyłka przy pisaniu wzoru. Wartość musi być pomnożona jeszcze raz przez 60 i wtedy wyjdzie dokładnie 3 doby.
  • IGE-XAO
  • #33
    y0yster
    Level 19  
    _Arecki_ wrote:
    y0yster wrote:
    Co do samego programu to co racja to racja. Można było wykorzystać licznik, który dałby większą dokładność, ale to nie było istotą problemu.

    Koledze chodziło o skorzystanie z timera w celu zmniejszenia poboru prądu przez to twoje urządzenie. Mikrokontroler powinien cały czas spać, bo nic nie robi, do tego powinien chodzić na jakimś niskim zegarze. Timer powinien obudzić go i wykonać reset.


    Tak, oczywiście. Oszczędzanie energii to jedno. Uważam, że w projekcie typu miganie diodą nie ma takiej potrzeby. Natomiast jeśli chodzi o dokładność to miałem na myśli o sposób w jaki jest realizowana sama funkcja delay().

    _Arecki_ wrote:

    Powiedz mi jeszcze dlaczego resetujesz go co ok 1h?
    Code:
    (...)
    
    delay(3 * 24 * 60 * 1000);
    (...)

    Według super skomplikowanych obliczeń masz:
    3 * 24 * 60 *1000 ms -> 3 * 24 * 60 s -> 3 * 24 min -> 72 min


    Dzięki za spostrzeżenie. Oryginalnie miałem to zapisane w formie pętli odliczającej dni, gdyż przekroczony zostałby zakres -- tak też poprawiłem pierwszą wiadomość.

    _Arecki_ wrote:

    Z tego co się domyślam, to zasilanie jest z USB routera, więc ciąg dalszy programu nie ma większego sensu, bo twój układ resetuje się razem routerem.


    Układ nie jest zasilany z portu routera, a nawet jeśli by był to i tak przypuszczam, że pełniłby swoją rolę. Natomiast czas braku zasilania był by jednak krótszy.

    Problem samego resetowania routera rozwiązałem już zupełnie inaczej. Niedługo postaram się opisać szczegóły. Po części kolega JacekCz ma rację :)

    JacekCz wrote:
    proponuję dla większej pewności reseter do resetera resetującego router. Ale ten poniżej STM32 nie będzie chodził. I reseter do lutownicy którą kolega tę prowizorkę będzie utrwalał, tu już wymagany jest raspebry
  • #34
    y0yster
    Level 19  
    Tak, jak obiecywałem problem został rozwiązany trochę inaczej niż za pomocą "zewnętrznej elektroniki". Do rebootu routera wykorzystałem swój skrypt w Pythonie, który monitoruje sieć, a jeśli zostanie zauważony brak Internetu wykonuje on restart routera za pomocą jego weboowego interfejsu. Skrypt chodzi cały czas na Raspberry Pi, które pełni jeszcze kilka innych funkcji i jest podpięte do sieci lokalnej.

    Szczegóły opisu, jak taki skrypt został stworzy znajdują się na moim blogu: Link.