
Elektronika
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.
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. 
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ř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.
Úvodní stránkaNa 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í:
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.)
Připojení k WiFiNa 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.
Ú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.
Na videu v režimu nastavení na čas (FAST).
Verze
2 od 2.8.2023Po 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.
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é.