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 a H můstku do napětí 24 V jak pro polarizované impulzy, tak i pro třídrátový rozvod nepolarizovaných pulzů hodin INTERNATIONAL.

Základní parametry 

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í nerušenou funkci AP. Indikuje se připojení pracovní napětí (na výkonovém modulu červená LED), 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. 


Uvedení do provozu

Při zapnutí se NTPimpulzer snaží připojit k některé ze zadaných WiFi sítí. Pokud vhodná síť není nalezena, je tímto hledáním natolik zaneprázdněn, že nestíhá obsluhovat svůj vlastní web. Nelze se proto jednoduše připojení k internetu nastavit. 

Nejjednodušší je při prvním připojování k nové síti počkat 5 minut na automatický přechod do režimu PANIKA, který se projevuje rychlým blikáním červené LED. V tomto intervalu NTPimpulzer ukončí pokusy o připojení a čeká na zásah uživatele. Je teď možné se připojit k WiFi síti NTPimpulzéru. Síť se jmenuje NTPgenMI+poslední 4 znaky MAC adresy AP. Po připojení zadat v prohlížeči IP 192.168.4.1 přihlásit se jméno = admin a heslo zvolené při překladu programu. Na zobrazeném webu vybrat "Připojení k WiFi". Dále viz popis stránek nastavit parametry a seřídit hodiny.  

Čekání na režim PANIKA lze urychlit tlačítkem FAST. Další možnost je využití WPS režimu. Na routeru stisknout WPS tlačítko a router krátkodobě umožní připojení bez hesla. Vzápětí ihned po zapnutí řídící jednotky stisknout FAST tlačítko na ESP modulu. ESP se připojí a zapamatuje si jméno sítě a heslo WiFirouteru.


stranka 1Úvodní stránka

Na stránce jsou v hlavičce uvedeny poslední 4 znaky MAC adresy 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:15 a kód stavu GO-1 což znamená, že byl vyslán normální záporný impulz. 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.)

Další webové tlačítko umožňuje Zastavit nebo Spustit linku. Zastavení se doporučuje například při seřizování 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. Zadání provádějte raději v režimu STOP.

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 kroků, aby byl dosažen požadovaný den. Nastavení dne proběhne po nastavení hodin na požadovaný čas.

Další oblasti jsou tlačítka pro přechod na další nastavovací stránky: Připojení WiFi, Nastavení parametrů, Zobrazení protokolu chodu a Aktualizace SW. Akualizace SW otevře vlastní stránku, kde informuje o úspěchu či neúspěchu aktualizace. Funkce by měla raději být spouštěna při zastavené lince a neměla by během aktualizace být jednotka vypnuta.

Následuje několik stavových informací a tlačítko obnovení  stránky Refresch. Je dobré si všimnout IP adresy přidělené routerem sítě. Z této IP adresy se web dostupný v místní síti. Pokud je NTPimpulzer připojen k síti, mohou se počítače či telefony snáze připojovat na tuto IP bez změny WiFi sítě.

Dole je také informace o verzi, tedy datum a čas, kdy byl program přeložen. (Není na ilustračním obrázku.)

nastaveni WiFiPřipojení k WiFi

Na této stránce můžete nastavit připojení k internetu prostřednictvím 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 uváděna 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. 

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 pů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. 
  • Externí monitor  Zapnutí nebo vypnutí vysílání dat pro externí monitor. Data se vysílají na web orloj.eu. Pokud je nebudete pravidelně vyhodnocovat, nepoužívejte tuto volbu.
  • Pulz 30 sekund přepíná jednotku do půlminutového chodu. Pokud není volba aktivována vysílají se minutové pulzy.
  • 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 levém okně běží reálný externí monitor NTP impulzeru. Zobrazuje kódový stav systému, nastavení linky, případnou existenci 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. V posledním řádku je datum a čas poslední aktualizace dat. 

Ú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. 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.

V posledních verzích 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 je pro střídavé i stejnosměrné impulzy ala IBM 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.

Verze 2.1 od 12.3.2026

Nová verze hardware má další  step-down zdroj 5 V na 3.3 V pro napájení desky EEPROM. V software přibyl test, zda je fyzicky přítomný modul EEPROM. Pokud ne, řídící jednotka začne tento modul simulovat ve flash paměti ESP. Zařízení tak může fungovat i bez fyzického připojení paměťového modulu. Nevýhodou je občasná ztráta nastavení vznikající pravděpodobně při zakmitání napájecího napětí. 

Je také doplněna volba vypnutí nebo zapnutí funkce externího monitoru a zejména možnost dálkového nahrání SW po internetu.

NTPimpulzer je schopen pracovat i bez modulu EEPROM. V tomto případě ukládá data do simulované EEPROM, což je poněkud méně spolehlivé.


Text, konstrukce, SW: Petr Král    


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