feed-image Odebírat tento obsah čtečkou
Nabídka
csenderusktr

Arduino UNO - PINGÁTOR

Protože mám na chalupě LTE router se SIM kartou a občas se stává, že se router sekne a tím pádem se nemohu připojit k zalévači trávníku atd... jsem si postavil "resetátor" napájení routeru. Zařízení pracuje následovně: po připojení desky (ATmega 328) k napájení blikají obě LED diody v pouzdru RGB diody (zelená a červená) po dobu 5 minut. Tímto krokem čekáme na první naběhnutí routeru do sítě. Po 5 minutách se inicializuje kontroler ENC28J60, který plní funkci ethernetového připojení k Internetu (Arduino tedy ATmega 328 neumí být připojen rovnou k RJ45 - nemá síťové rozhraní). Pokud není k dispozici DHCP server (přidělování IP adresy), nebo DNS server (překlad názvů na IP adresu) zůstane svítit (jednou za čas rychle bliká) červená LED (signalizuje chybu DHCP, nebo DNS) po cca 3 minutách dojde k vypnutí a opětovnému zapnutí napájení routeru (tím se zajistí případné zamrznutí připojení k Internetu). Vypnutí routeru trvá 5 vteřin a je signalizováno červenou LED (rychlé blikání 100ms ON/ 100ms OFF). Pokud pingátor dostane od DHCP IP adresu (po zapnutí napájeno a odpočítání 5 minut se čeká na DHCP! pingátor musí dostat IP adresu - tento krok se neustále opakuje dokud nedostane adresu) položí dotaz na DNS server www.seznam.cz (aktuálně IP 77.75.76.3), stáhne si z NTP serveru tik.cesnet.cz (195.113.144.201) síťový čas a datum. Každou minutu je proveden ping na server www.seznam.cz a čeká se na odezvu. Pokud neproběhne ping do 3 minut (tedy 3x pokus o ping) dojde opět k resetu napájení LTE routeru. V případě úspěšného pingu svítí zelená LED dioda (v případě výpadku pingu svítí oranžová barva). Na webovém rozhraní je vidět aktuální NTP čas a datum, čas úspěšného pingu a čas posledního vypnutí napájení routeru. Tato konstrukce obsahuje HW Watchdog 4 sec (interně v CPU ATmega 328), tedy pokud zamrzne program pingátoru dojde za 4 vteřiny k restartu.

ZDARMA

  • FW: 23.6.2016 hex pro procesor ATmega 328P

DONATE

  • FW: 19.10.2015, FW: 28.12.2015 zdroj + hex pro procesor, plošný spoj (Eagle, Gerber, CAM)
  • FW: 23.6.2016 zdroj + hex pro procesor, plošný spoj (Eagle, Gerber, CAM)

Změny v novém FW: 23.6.2016

  • zrušen FET tranzistor na výstupu a zapojeno relé (kontakt spíná 230V zásuvku routeru)
  • rudá LED:
      - pomalé blikání po dobu 5 vteřin (je restart napájení - relé je vypnuté)
      - po zapnutí napájení svití a pak rychle bliká po dobu 2 vteřin (když je chyba DHCP a čekáme na IP)
  • zelená LED:
      - svití pokud je PING OK
  • zelená/rudá LED:
      - obě střídavě blikají po zapnuti napajení 5 minut potom teprve startuje web a ping (z důvodu čekání na naběhnutí routeru a DHCP - stačilo by méně, ale takto je to univerzální)
  • oranžová (zelená + rudá LED společně):
      - svítí když není ping úspěšný do doby restartu relé (rozsvítí se po cca 2 minutách od posledního pingu)
  • při restartu relé se zároveň udělá reboot celého pingátoru
  • do eeprom se před rebootem uloží čas a datum posledního rebootu (nesmaže se vypnutím napájení pingátoru)
  • přidán odkaz na pihrt.com
  • oprava několika chyb
  • teplotní čidlo DS18B20 je nutné umístit mimo plošný spoj na kablík (stabilizátor ohřívá celou desku a zkresluje naměřenou teplotu...)

Pohled na web FW:23.6.2016

fw23062016

Pohled na sériovou linku

fw23062016 serial

Schéma zapojení - verze s relé

 schema

Foto - pohled na bastl
(s převodníkem USB - serial RX,TX a relé)

DSC 0022

DSC 0023

Video - pohled na prototyp verze s relé
(po uplynutí 5 minut - boot routeru se čeká na IP adresu ve smyčce - rudá LED, po zapojení UTP během 2 vteřin načte IP, NTP a provede ping - zelená LED)

Oštítkován jako: Arduino ATMEGA328

Komentáře   

#5 Jakub 2015-12-02 15:43
Cituji Martin Pihrt:
Pokud program upravíte k lepšímu (třeba ukládání přes administraci na webu do eeprom, nebo tlačítka atd... budu rád pokud se podělíte. Kód bych dal na web pod vaším jménem pro ostatní) MP

Určitě se rád podělím, s tlačítky tak nějak počítám, rád bych přidal i vstupy/výstupy. Jen čekám na LAN modul, abych se mohl pustit do experimentování .
#4 Martin Pihrt 2015-11-20 11:48
Pokud program upravíte k lepšímu (třeba ukládání přes administraci na webu do eeprom, nebo tlačítka atd... budu rád pokud se podělíte. Kód bych dal na web pod vaším jménem pro ostatní) MP
#3 Jakub 2015-11-20 11:41
Dobrý den,
ano jsem si jistý :lol: Chiňan na desce modulu udělal stabilizátor na 3,3V z 5V a přizpůsobil SPI pomocí rezistorů na 5V. Vše funguje jak má až na jeden problém a to:
a) teplota měří špatně (někde v kódu kde je měření mám chybu) př: venku je 8 st. a ukazuje 19.
Dále předělám zobrazení času běhu na dny,hod,min,sec namísto pouze hod,min,sec (ale to je kosmetická záležitost). Nemám teď desku u sebe (běhá ne chatě) na jaře kód opravím...
MP

Děkuji za vysvětlení, kód si lehce přizpůsobím, pokud se nebudete zlobit. Vzhledem k větší síti přidám asi další ping na lokální zařízení, a možná zkusím nějaké web tlačítko. S web modulem jsem ještě nedělal, tak jsem rád že je kde brát inspiraci. Děkuji
+1 #2 Martin Pihrt 2015-11-20 06:08
Cituji Jakub:
Přesně tohle jsem hledal, díky za projekt a za sdílení kódu. Mám otázku k tomu lan modulu, ten modul je na 3,3v ale vy tam vedete 5v. Jste si tím jistý?

Dobrý den,
ano jsem si jistý :lol: Chiňan na desce modulu udělal stabilizátor na 3,3V z 5V a přizpůsobil SPI pomocí rezistorů na 5V. Vše funguje jak má až na jeden problém a to:
a) teplota měří špatně (někde v kódu kde je měření mám chybu) př: venku je 8 st. a ukazuje 19.
Dále předělám zobrazení času běhu na dny,hod,min,sec namísto pouze hod,min,sec (ale to je kosmetická záležitost). Nemám teď desku u sebe (běhá ne chatě) na jaře kód opravím...
MP
#1 Jakub 2015-11-19 21:31
Přesně tohle jsem hledal, díky za projekt a za sdílení kódu. Mám otázku k tomu lan modulu, ten modul je na 3,3v ale vy tam vedete 5v. Jste si tím jistý?

Nemáte oprávnění pro vkládání komentářů (You have no rights to post comments.)