Obsah:

Skutečné binární hodiny se synchronizací NTP: 4 kroky
Skutečné binární hodiny se synchronizací NTP: 4 kroky

Video: Skutečné binární hodiny se synchronizací NTP: 4 kroky

Video: Skutečné binární hodiny se synchronizací NTP: 4 kroky
Video: VYBRALI JSME 6 NEJ: Pánské rádiem řízené hodinky (do 10 tisíc) 2024, Červenec
Anonim
Skutečné binární hodiny se synchronizací NTP
Skutečné binární hodiny se synchronizací NTP
Skutečné binární hodiny se synchronizací NTP
Skutečné binární hodiny se synchronizací NTP

Skutečné binární hodiny zobrazují denní dobu jako součet binárních zlomků celého dne, na rozdíl od tradičních „binárních hodin“, které zobrazují čas jako binárně kódované desetinné číslice odpovídající hodinám/minutám/sekundám. Tradiční „binární hodiny“skutečně používají sexagesimal s binárním kódováním-desítkovým kódováním. Takový nepořádek! Skutečné binární hodiny věci nesmírně zjednodušují.

Ve skutečných binárních hodinách vám první číslice říká půl dne, druhá číslice čtvrt dne, třetí číslice osmina dne atd. Lze ji velmi rychle přečíst v jakémkoli rozlišení (samozřejmě s nácvikem)). První číslice efektivně kóduje AM versus PM, druhá číslice kóduje, zda je časná AM/PM nebo pozdní AM/PM atd.

Při navrhování mých skutečných binárních hodin jsem použil dvanáct číslic rozlišení, takže den je rozdělen na 2^12 = 4096 částí (každý přírůstek je přibližně 20 sekund). Místo toho, aby byly všechny číslice v řádku, bylo 12 číslic rozděleno do 3 řad po 4 číslicích. Ačkoli jsou skutečné binární číslice nezměněny, umožňují to hodiny číst jako 3 binární kódované hexadecimální číslice, první řádek ukazuje 16tiny dne (1,5 hodiny), druhý řádek ukazuje 256 minut dne (~ 5 minut) a třetí řádek zobrazující 4096 minut dne (~ 20 sekund).

Hodiny jsou synchronizovány s protokolem NTP (Network Time Protocol) pomocí ESP8266. ESP8266 je nakonfigurován tak, že při spuštění se stisknutím tlačítka na hodinách přepne do režimu nastavení. V režimu nastavení hodiny vytvoří síť WiFi, která slouží webové stránce, do které lze zadat vlastní nastavení wifi, server NTP a časové pásmo. Tyto informace jsou uloženy v EEPROM ESP8266 a jsou načteny při spuštění hodin v režimu hodin, aby se mohly připojit k internetu a načíst čas.

Zásoby:

  • NodeMCU ESP8266
  • WS2812B LED pásek
  • Stiskněte tlačítko
  • Odpor 470 ohmů
  • Rezistor 10K Ohm
  • 470 uF kondenzátor
  • Nanukové tyčinky
  • Kuličky
  • Dřevo (nebo jiný list materiálu) pro pouzdro

Krok 1: Okruh

Obvod
Obvod
Obvod
Obvod
Obvod
Obvod
Obvod
Obvod

Aby bylo možné mít displej, tento projekt používá RGB LED pás položený ve 3 řadách. Z pásu WS2812B jsem odřízl 3 proužky po 8 ledkách a spojil je dohromady. (Jsou křehké a pájení malých podložek může být obtížné. Pájené konce jsem omotal elektrickou páskou, abych je izoloval od jakéhokoli ohýbání.) I když jsem potřeboval pouze 4 diody na řadu, vystřihl jsem proužky po 8, abych mohl mít větší rozestup mezi světly pouze pomocí všech ostatních LED. Tyto proužky byly poté přilepeny na plochý základ z nanukových tyčinek. Mezi každou řadou poskytuje profil dvojitá vrstva nanuků, takže přední stranu lze přilepit na vnitřní stranu pouzdra hodin (viz foto).

LED pás je napájen z VU a GND NodeMCU. VU je napájení (téměř) přímo z USB, takže poskytuje 5V LED WS2812B, přestože ESP8266 pracuje na 3,3V. Přes výkon pro pás WS2812B jsem umístil kondenzátor 470 uF, abych chránil LED diody. Data pro LED pásek jsou připojena ke kolíku D3 NodeMCU přes odpor 470 Ohm. Další informace o tom, jak ovládat diody WS2812B pomocí ESP8266, naleznete v tomto pokynu. Obvod byl připájen na proto-board s některými hlavičkami mezi mužem a ženou pro NodeMCU.

K D6 NodeMCU bylo také připojeno tlačítko. Toto tlačítko lze stisknout během spouštění hodin a odeslat je do režimu nastavení (ve kterém lze upravit nastavení wifi, server NTP a předvolby časového pásma). Na jednom konci je tlačítko připojeno k D6 a také k GND přes odpor 10K Ohm a na druhém konci je připojeno k napájení. Když není tlačítko stisknuto, D6 čte nízko; když je stisknuto, D6 čte vysoko.

Krok 2: Software

Software
Software

Software pro ESP8266 byl napsán pomocí kódu Arduino. LED diody jsou zpracovávány pomocí knihovny FastLED a synchronizaci NTP provádí knihovna NTPClient. Čas je synchronizován pomocí NTP každou hodinu.

Na začátku funkce nastavení program zkontroluje, zda není stisknuto tlačítko připojené k D6. Pokud ano, ESP8266 vytvoří wifi síť (SSID a heslo lze v kódu změnit, výchozí SSID je „TrueBinary“a heslo je „thepoweroftwo“). Připojte se k této síti z jakéhokoli zařízení a přejděte na adresu 192.168.1.1. ESP8266 zobrazí webovou stránku s formuláři, kde můžete zadat své SSID a heslo wifi, preferovaný server NTP a časový posun od UTC. Poté, co jsou tyto formuláře odeslány do ESP8266, informace uloží do svého interního úložiště EEPROM.

Pokud tlačítko nestisknete, hodiny se spustí normálně, načtou nastavení z EEPROM, připojí se k wifi a použijí NTP a začnou zobrazovat čas.

POZNÁMKA: funkce setDisplay (int index) převezme číslici od 0 do 11, kde 0 je první číslice (půlden) a 11 je poslední (1/4096 dne) a rozsvítí odpovídající LED pomocí „ pole LED. Tuto funkci je třeba vyplnit podle toho, jak jste nakonfigurovali displej. Můj komentovaný příklad odpovídá tomu, jak jsem řady pájel cik-cak spíše než end-to-end a přeskakoval každou druhou LED.

Krok 3: Bydlení

Bydlení
Bydlení
Bydlení
Bydlení
Bydlení
Bydlení

K uložení hodin jsem použil úhel malovaného dřeva, který jsem náhodou měl. Na jednom vnějším povrchu jsem vyvrtal 12 otvorů do mřížky odpovídající pozicím LED diod. Poté jsem přilepil LED diody na vnitřní stranu úhlu přilepením vyvýšených ploch tyčinek nanuku mezi řádky ke dřevu (jak je znázorněno). Abych rozptýlil světlo z LED, nalepil jsem na otvory otvory skleněné kuličky. Toho jsem dosáhl tak, že jsem spodní polovinu každého mramoru namočil do epoxidové pryskyřice a poté je umístil do otvorů. NodeMCU a proto-board byly zašroubovány do druhé vnitřní strany úhlu. Boky byly pokryty malými trojúhelníky ze dřeva, připevněnými lepidlem na dřevo. Jedna ze stran má otvor pro port micro USB NodeMCU a výřez v rohu pro tlačítko.

Krok 4: Hotovo

Hotovo!
Hotovo!
Hotovo!
Hotovo!

Naše skutečné binární hodiny jsou hotové! Chcete -li jej nastavit, podržte tlačítko stisknuté a připojte jej, abyste jej přepnuli do režimu nastavení, a poté zadejte pověření WiFi na jeho webové stránce. Po nastavení lze hodiny připojit kamkoli a automaticky se připojí k internetu a začnou zobrazovat čas binárně.

Čtení času ve skutečném binárním formátu vyžaduje místo v praxi, ale je to zábavné cvičení a po chvíli se z něj stane rychlý způsob, jak získat čas pouhým pohledem!

Doporučuje: