1

Temat: Sprzętowy watchdog

Kiedyś robiło się (lub kupowało) tzw relayboard - przekaźniki sterowane przez odpowiednie układy, pozwalające na włączenie i wyłączenie urządzeń. Temat był wielokrotnie omawiany na forum, powstał nawet odpowiedni plugin do Gargoyle czy aplikacja na androida. Każdy mógł to zrealizować i powstało naprawdę wiele różnych pomysłów.
Obecnie wraz z rozwojem szeroko pojętego IoT można bez problemu kupić tzw inteligentne gniazdka, czy to na serwisach aukcyjnych czy nawet w dowolnym markecie budowanym, które spełniają rolę inteligentnych włączników sterowanych przez dedykowaną aplikację.

Ja jednak miałem trochę innych problem - nie potrzebowałem inteligentnego gniazdka a sprzętowego watchdoga, czyli urządzenia które restartowało by mi sprzęt jak by nie zostało odpowiednio wysterowane. Po co mi to było? Mam pewien stary router które pracuje i robi swoje, ale od czasu do czasu lubi się zawiesić (tak, wiem, wymaga wymiany na nowy). Ponieważ jego wymiana jest dość pracochłonna, więc kiedyś wpadłem na pomysł sprzętowego rozwiązania, które odcinało by routerowi zasilanie jak by się zawiesił. Jednakże wprowadziłem sobie kilka założeń:
- po włączeniu układ musi od razu podawać zasilanie
- po upływie określonego czasu, jeżeli nie zostanie odpowiednio wysterowany to przerywa na chwilę zasilanie
- nie ma wifi (bo urządzenie do którego jest podłączony nie ma wifi)
- nie wymaga specjalnego programu/oprogramowania. Chciałem użyć czegoś co standardowo jest w systemie.

Rozwiązanie okazało się proste i cała robota zabrała z pół godziny. Ze "starych" czasów została mi płytka dwukanałowych przekaźników do arduino. Rozwiązanie nasuwa się samo - do tego dołączyć esp8266, ale to wymaga swojego zasilania, więc wolałem użyć czego co jest zasilanie z 5v dostarczonego np. przez usb - i tu padło na arduino, a dokładnie mówiąc na układ Blackbox z ATTiny85, który kiedyś już opisywałem.
Schemat połączeń jest bardzo prosty:

https://i.postimg.cc/RVQYqvvg/watchdog.jpg

Wykorzystałem zwykłe gniazdo na kablu. Jedna żyła została przecięta i dołączona do przekaźnika do styków NC (domyślnie zamknięte) co zapewnia mi realizację jednego z założeń - po włączeniu wszystko działa od razu (lub jak sam układ wykonawczy nie jest zasilany). Do sterowania przekaźnikami wykorzystany jest ATTiny85 z własnym prostym oprogramowaniem na bazie V-USB, który dostarcza interfejs szeregowy CDC, przez co w linuksie czy OpenWrt obsługiwany jest przez zwykły moduł CDC ACM, a zasilanie do układu dostarcza kabel USB.
Działa to w ten sposób:
- jeżeli układ nie jest dołączony do usb (nie ma zasilania) to całość działa jak zwykły przedłużacz
- jeżeli układ podłączony jest do usb to odlicza w dół na ok 5 minut. Jeżeli w tym czasie nie zostaje nic mu wysłane przez interfejs usb to przełącza przekaźniki na 3s i wznawia pracę
- jeżeli w trakcie działania układu zostanie mu wysłany znak "1" to resetowany jest licznik i układ od nowa zlicza swoje 5 minut

Ponieważ Blackbox ma diodę to jako dodatek zrobiłem sobie miganie diody co sekundę jako wskaźnik działania układu oraz dodatkowo bardzo szybko miga na 30s przez wyłączeniem przekaźników.

A jak to wygląda od strony routera? Zasilanie routera podłączone jest do gniazdka, kabel usb znajduje się w router i w cronie ma wpisane proste polecenie:

echo 1 > /dev/ttyACM0

które jest wykonywane co minutę. Jeżeli router działa i żyje, to co minutę resetowany jest licznik układu. Jeżeli się zawiesi to po 5 minutach odcinane jest jego zasilanie. O dziwo od kilku miesięcy działa to dość dobrze jak na pół godziny roboty.

Oprogramowanie do attiny napisałem w IDE arduino (jak ktoś chce to mogę udostępnić), ale tak naprawdę jest na tyle prymitywne, że każdy to może napisać samodzielnie (to tylko sterowanie gpio - nawet w przykładach do arduino można to znaleźć).

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

2 (edytowany przez MiG25 2021-07-10 11:01:14)

Odp: Sprzętowy watchdog

Ja bym tylko uważał na te przekaźniki , kiepsko nadają się do zasilaczy impulsowych , szczególnie w tych w lampkach led.
Miałem podłączone 6 lampek led 3W na schodach , sterowane czujnikiem z alarmu , i srednio po 3 miesiacach ten niebiski stycznik mial sklejone styki ( mimo ,że teoretycznie wylaczony , to diody swieciły dalej). Teraz przezuciłem to na SSR i problem zniknął ( pojawił się za to inny , SSR ma wiekszy prąd uplwu , przez co ,co jakiś czas lampki led sobie losowo mrugały , ale to juz inny temat).

Także może się okazać ,że za jakiś czas styk będzie sklejony , i router mimo to nie bedzie zresetowany.

EDIT: Być może podłączenie od strony DC rozwiązałoby ten problem. Chyba z paoma amperami po niskim napięciu ten przekaźnik dałby radę , bo po stronie 230v wchodzą zjawiska takie jak łączenie małych prądów pojemnościowych.