Hodinárium Děčín

grafika
logo český spolek Horologický
grafika3b
www.orloj.eu
grafika3b
facebook
grafika3b
počitadla
grafika3bValid XHTML 1.0 Transitionalgrafika
grafika 7b


HOME


Novinky


Mapa


Kontakt


Vyhledávání



  

 

 

 

 


grafika

Hlavní NTP hodiny na bázi ESP8266 - NTPimpulzer + varianty

pro třídrátový nepolarizovaný rozvod dle IBM

Prototyp NTP Witty impulserElektronika je stále výkonnější a levnější. I elektronické hodiny jsou stále přesnější, případně synchronizované dle DCF 77, GPS, sítě mobilních operátorů nebo z NTP servery Internetu. Pomalu ztrácí význam řešit sítě jednotného času na bázi rozvodů polarizovaných či stejnosměrných impulzů. Přesto jsou místa, kde takové sítě jsou vhodné. Přistoupili jsme proto k vývoji SW pro co nejlevnější variantu elektronických hlavních hodin na bázi modulu ESP8266 ESP-12F do napětí 24 V jak pro polarizované impulzy, tak i pro třídrátový rozvod nepolarizovaných pulzů hodin INTERNATIONAL.

Základní parametry navrhovaných hlavních hodin pro polarizované pulzy do 24V

Naše řešení je minimalistické, bez zbytných zobrazovacích a nastavovacích prvků. Používá pouze moduly - řídící jednotku ESP8266 ESP-12F připojenou na WiFi síť pro prvotní získání času a vlastní řízení a výkonový modul s dvojitým H můstkem. Od verze 2 doplněné o EEPROM a step  down zdroj. Výhodou je, že H můstek je původně určen pro řízení krokových motorů a proto obsahuje ochranné prvky pro připojení indukční zátěže cívek podružných hodin. ( Modul zároveň napětím 5V může napájet řídící jednotku. ) Pořizovací cena potřebných modulů jen několik málo stokorun. 

Přímé ruční ovládání je redukováno pouze na FAST tlačítko, které při normálním režimu aktivuje režim rychlého chodu a ruší příkaz STOP. Při startu způsobí vynechání pokusu o připojení k WiFi a umožní nastavit parametry. Indikuje se připojení pracovní napětí (na výkonovém modulu), malou modrou LED připojení k WiFi a RGB ledkou stav řídící jednotky (červená signalizuje čekání, modrá a zelená polaritu pulzu). Složitější ovládání řídící jednotky řeší monitorovací a nastavovací WEB na IP adrese 192.168.4.1 nebo na IP adrese určené sítí, ke které je připojena. 

Navržené hlavní hodiny mají přesnost danou synchronizací ze serveru NTP. Jednotka nemá vlastní RTC hodiny, při ztrátě spojení s NTP serverem určuje čas pomocí vnitřního rezonátoru. Při startu a připojení musí na prvotní získání aktuálního času počkat.  Wifi ESP8266 ESP-12F

Propojení modulů

Schema pinů řídící jednotky je na obrázku. Jako výstupní jsou použity piny GPIO 12 a 13. Stav těchto pinů je signalizován zelenou a modrou LED v rámci RGB LED. Vedou na vstupní body můstku L298N Dual H Most DC označené jako In1 a In2 a paralelně na IN3 a IN4. Protože řídící deska nemá možnost snadného připojení vodičů, je doplněna základnou postavenou z univerzální desky a dutinkových konektorů. Výstupní dráty jsou k univerzální desce připájeny. Řídící desku lze vyjmout a připojit k její programovací základně.

Na horním obrázku je zapojení ve variantě pro polarizované pulzy generované prvním z H můstků. Linka se připojuje do horních modrých svorek OUT1 a OUT2 L298N Dual H Mostu DC. (Od verze 2 i na OUT3 a OUT4). Pracovní napětí 24 V je přivedeno na svorky označené VCC a GND. Deska má vlastní stabilizátor 5 V pro potřeby vnitřní logiky desky. Zde u verze 1 je využit i k napájení Arduina. Napětí 5V je třeba připojit  ze svorek 5V a GND na piny VCC a GND na řídící jednotce. 

Připojení prohlížečem

K řídící jednotce se můžeme připojit  internetovým prohlížečem přímo na její WiFi. Jméno WiFi je obvykle NTPgenMI- plus MAC adresa zařízení. Připojení je bez hesla. Po připojení  zadáme IP adresu 192.168.4.1 Pro vstup do  ovládání je nutné zadat jméno admin a heslo, které bylo určeno při překladu programu. Připojit se jde i na IP přidělené WiFi sítí, pokud jsme připojeni k téže síti. Pravděpodobně nám nadřízený router nepřidělil veřejnou IP. Lze však za jistých nastaveních v firewallu  nastavit DMZ tak, aby web impulzeru byl přístupný i od jinud. Podle mého názoru však nemá velký smysl nařizovat hlavní hodiny, když k nim nemám přístup. 

Prvotní zadání jména a hesla WiFi sítě a nastavení všech parametrů

Jak již bylo popsáno impulzer nemá vlastní nastavovací prvky, proto umožňuje veškerá nastavení pomocí mobilního telefonu či notebooku. Jednotka při startu spustí WiFi v režimu AP + STA a snaží se připojit k zadané WiFi. Režimy AP a STA jsou trochu konkurenční, tedy v případě, že se modul stále neúspěšně pokouší o připojení, nestíhá obsluhovat WEB. Aby i v tomto případě šlo zadat jméno a heslo sítě, program při stlačení FAST tlačítka při zapnutí přeskočí pokus o připojení a vstoupí rovnou do nastavovacího režimu PANIKA. Stav je signalizován rychlým blikáním červené LED. Nastavovací web jednotky má čtyři stránky.

stranka 1Úvodní stránka

Na stránce je v hlavičce uvedena MAC adresa bez oddělovacích dvojteček. V barevném rámečku je okno aktuálního stavu. Momentálně má olivovou barvu, je tedy vše v pořádku. Zobrazen je datum a čas dle NTP serveru. V dalším řádku je stav linky - zde 16:54 a kód stavu. Zde chod na základě záporného impulzu. Toto okno se obnovuje buď jednou za minutu  nebo při rychlém chodu jednou za 2 sekundy. 

Kódy stavu jsou následující:

  •  GO+1,  GO-1 = Normální chod; kladný nebo záporný impulz.
    (Signalizují střídavě zelená a modrá LEDka.)
       
  •  FAST+1, FAST-1 = Rychlý krok celé linky pro dosažení aktuálního času po výpadku.
       
  •  WAIT = Čekání, až aktuální čas dosáhne stavu linky. Používá se maximálně pro odchylku do 60 minut. (Při konci letního času se čeká.)
  •  STOP = Linka je zastavena povelem. Slouží například ke změně topologie linky.
    (V tomto stavu červená LEDka každou minutu krátce blikne.)
  • Všechny stavy - fialová barva značí poruchu EEPROM paměti.  Po novém nastavení může impulzer do vypnutí fungovat. 

Další webové tlačítko umožňuje Zastavit nebo Spustit linku. Zastavení se doporučuje například při zadávání opravného stavu linky. 

Do formuláře času na hodinách se zadává aktuální hodnota zobrazená na hodinách. Pozor, zadává se bez oddělovacího znaku mezi hodinami a minutami tedy například 832 je ve významu 8:32. Po zadání dojde k automatickému nastavení podružných hodin na správný čas buď rychlým posunem nebo naopak vyčkáním na dosažený čas.

nastaveni WiFi

Další oblast  webová tlačítka na další nastavovací stránky a případné obnovení  stránky.

Připojení k WiFi

Na této stránce můžete nastavit připojení k nadřízené WiFi. Modul nejprve provede Scan sítí v okolí a nalezené sítě seřadí do výběrového menu. Zjišťování sítí nějakou dobu trvá, takže mějte trpělivost. Ve výběrovém řádku je síla signálu v dBm a SSID. 

Pokud to síť vyžaduje, zadáte heslo a případně i NTP server. Přednastavená hodnota cz.pool.ntp.org je pool českých NTP serverů. Pool znamená, že jsou automaticky NTP servery střídány, aby nedocházelo k přetěžování některého z nich. Většinou není vhodné toto nastavení měnit.

Po zadání připojovacích informací modul restartuje. 

Ze stránky se můžete vrátit odkazem Zpět

Pokud se jednotka neúspěšně snaží připojit k nezadané či neexistující síti, případně s chybně zadaným heslem, je touto činností zcela vytížena a nestihne vysílat webové stránky. 

Dobu čekání lze zkrátit vyvoláním režimu PANIKA bez připojování k WiFi. Tento režim se hlásí rychlým blikáním červené LED. Režim vyvoláme stisknutím tlačítka FAST na modulu při zapnutí napájecího napětí. Automaticky jednotka do tohoto "panického" režimu přejde po cca 5 minutách marných pokusů o připojení. Bez prvotního získání času z NTP nemůže jednotka pracovat.

stránka 3

Nastavení parametrů

  • SE(L)C -  nastavení časového pásma; implicitně čas GMT.
  • Cyklus 12:00  Při aktivace hodiny ukazují čas pouze v intervalu 00:00 až 12:00, jinak je cyklus 24 hodin.
  • Opakovat poslední pulz  (Tento parametr byl doplněn 5.9.2024 není na obrázku) Způsobí, že při startu zařízení se nejprve opakuje poslední vysílaný polarizovaný impulz. Na opakovaný polarizovaný impulz hodiny podružné hodiny typu Elektročas nereagují. Dojde však ke sjednocení hodin, pokud byly hlavní hodiny vypnuty právě během pulzu. Pokud v síti jsou hodiny reagující na nepolarizované pulzy, je potřeba volbu vypnout. 
  • Délka impulzu v rozmezí 75 až 4000 [ms].
  • Délka mezery v rozmezí 75 až 4000 [ms]. (Uplatní se pouze při rychlém chodu.)
  • Zadat Tlačítko pro provedení změn. 
  • RESTART Tlačítko pro vynucení restartu jednotky. 
  • Následují informace o místu a době připojení.
  • Zpět  - návrat na úvodní stránku.
Pozn. Ke změně voleb dojde až po zpracování v modulu ESP8266. Platné aktivní zatržení je signalizované podbarvením olivovou barvou.




Externí monitor dostupný z internetu

V pravém okně běží reálný externí monitor NTP impulzeru. Zobrazuje kódový stav systému, nastavení linky, případnou existence letního času a používanou délku pulzu a délku minimální mezery. Vzhledem k tomu, že NTPimpulzer má nastaveno několik možných AP, je zobrazeno jméno sítě, ke které je právě připojen a "síla" signálu. Pro rozlišení je uvedena i MAC adresa konkrétního NTPimpulzeru. 

Údaje monitoru nejsou internetové hodiny. Je to zpožděná informace o nastavení linky. Zpoždění je zejména proto, že na obrazovce vašeho počítače se nová hodnota objeví až nastane Refresch okna. Refresch je prováděn v normálním režimu jednou za minutu tak, aby byl několik sekund po celé minutě. Impulzer posílá tuto informaci až po dokončení pohybu ručiček. 

Je však třeba připomenout, že původní účel použitého čipu ESP8266, byl přenos sériové komunikace pomocí WiFi. Pro zpracovaní vlastního kódu se musí přerušit původní rutina obsluhující WiFi a když se zase její běh v krátkém čase neobnoví tak to může dělat různá zpoždění v komunikaci. Zároveň se asi uplatňují úspory napájení, kdy modul upadá do různě hlubokého spánku. To také lehce ovlivňuje přesnost odeslání impulzu. Tato chyba se však při připojení k NTP serveru nekumuluje a asi nebude v daném okamžiku větší než zlomek sekundy. 


Příklad použití pro historický podružný strojek s kývavou kotvou.

Na videu v režimu nastavení na čas (FAST).     

Odkazy na další použití a externí informace




verze 2Verze 2 od 2.8.2023

Po asi ročním provozu jsem přikročil k vývoji druhé varianty. Tato varianta má vypuštěné volby Generování kódu P1, Generování kódu P2 a kódu Mobatime. Doplněno hlášení chyby EEPROM fialovou barvou ve všech režimech. Chyba vznikne v okamžiku, kdy se nepodaří zápis do EEPROM reálné či simulované. Podstatné je odstranění občasné chyby, kdy patrně při zakmitání napájecího napětí došlo k vymazání paměti nastavení. Patrně to bylo proto, že použité Arduino nemá reálnou paměť EEPROM. Tato paměť je u první varianty pouze softwarově simulovaná. Použitý HW druhé varianty je rozšířen o modul  I2C EEPROM AT24C256. Tím je do impulzeru přidána reálná EEPROM paměť. Konstrukce se o několik desetikorun prodražila. 

Lehce se také zvětšila spotřeba energie. Při použití pro 24 V linku se vestavěný zdroj 5 V až moc zahříval. Na snímku přidán chladič bez většího úspěchu. Nakonec byl zdroj na desce H můstku vypnut a nahražen napájecím modulem  Mini Step Down Buck  3A DC 5-23 na DC 1-17 umístěným pod desku ESP8266.

Ve verzi 2 jsou zapojeny oba H můstky paralelně, takže lze řídit dvě výstupní linky. Zvýší se tak možnost připojení více podružných hodin. Zároveň je zvoleno takové propojení, že HW pro střídavé i stejnosměrné impulzy ala IBM je stejný. Liší se jen použitý SW.  

Funkce nastavení linky byla rozšířena o možnost nastavení kalendářních hodin například CPJ061. Pokud je nastaven cyklus 24 hodin, je na stránce hlavních voleb výběrový seznam pro nastavení dne v týdnu, který hodiny ukazují. Pokud je zobrazený den v týdnu na hodinách odlišný od aktuálního dne, provede řídící jednotka tolik skupin 1440 impulzů, aby byl dosažen požadovaný den. Nastavení dne proběhne po nastavení hodin na požadovaný čas. Nejnovější rozšíření funkce je zavedení režimu vysílání půlminutových pulzů. Volba je přidána do stránky nastavení parametrů. Implicitně jednotka vysílá minutové pulzy. 

Text, konstrukce, SW: Petr Král    

8 Přepínač DIL.


Telefon: 603 502 735, email: info (kyselá ryba) orloj . eu