Spisu treści:

Prawdziwy zegar binarny z synchronizacją NTP: 4 kroki
Prawdziwy zegar binarny z synchronizacją NTP: 4 kroki

Wideo: Prawdziwy zegar binarny z synchronizacją NTP: 4 kroki

Wideo: Prawdziwy zegar binarny z synchronizacją NTP: 4 kroki
Wideo: Ja i Patryk nasze sprawy 2024, Listopad
Anonim
Prawdziwy zegar binarny z synchronizacją NTP
Prawdziwy zegar binarny z synchronizacją NTP
Prawdziwy zegar binarny z synchronizacją NTP
Prawdziwy zegar binarny z synchronizacją NTP

Prawdziwy zegar binarny wyświetla godzinę jako sumę ułamków binarnych całego dnia, w przeciwieństwie do tradycyjnego „zegara binarnego”, który wyświetla czas jako zakodowane binarnie cyfry dziesiętne odpowiadające godzinom/minutom/sekundom. Tradycyjne „zegary binarne” tak naprawdę używają kodowania binarnego-zakodowanego dziesiętnie-sześciokątnego. Co za bałagan! Prawdziwe zegary binarne ogromnie upraszczają sprawę.

W prawdziwym zegarze binarnym pierwsza cyfra to połowa dnia, druga cyfra to kwadrans, trzecia cyfra to ósma dnia itd. Można go bardzo szybko odczytać w dowolnej rozdzielczości (oczywiście z praktyką). Pierwsza cyfra efektywnie koduje godziny przedpołudniowe i popołudniowe, druga cyfra oznacza, czy jest wczesna przed południem/po południu, czy późna przed południem/po południu i tak dalej.

Projektując mój prawdziwy zegar binarny, użyłem dwunastu cyfr rozdzielczości, więc dzień jest podzielony na 2^12=4096 części (każdy przyrost to około 20 sekund). Zamiast trzymać wszystkie cyfry w jednym wierszu, 12 cyfr podzielono na 3 rzędy po 4 cyfry. Chociaż rzeczywiste cyfry binarne pozostają niezmienione, pozwala to na odczytywanie zegara jako 3 zakodowanych binarnie cyfr szesnastkowych, przy czym pierwsza linia pokazuje 16-ty dnia (1,5 godziny), druga linia pokazuje 256-go dnia (~5 minut) i trzecia linia pokazuje 4096. dnia (~20 sekund).

Zegar jest zsynchronizowany z NTP (Network Time Protocol) za pomocą ESP8266. ESP8266 jest skonfigurowany tak, że po uruchomieniu naciśnięcie przycisku na zegarze spowoduje przejście do trybu ustawień. W trybie ustawień zegar utworzy sieć Wi-Fi, która obsługuje stronę internetową, której można użyć do wprowadzenia własnych ustawień Wi-Fi, serwera NTP i strefy czasowej. Informacje te są przechowywane w pamięci EEPROM ESP8266 i są odczytywane, gdy zegar uruchamia się w trybie zegara, aby mógł połączyć się z Internetem i pobrać godzinę.

Kieszonkowe dzieci:

  • NodeMCU ESP8266
  • Taśma LED WS2812B
  • Naciśnij przycisk
  • Rezystor 470 Ohm
  • Rezystor 10K Ohm
  • Kondensator 470 uF
  • patyczki od lodów
  • Rzeźby
  • Drewno (lub inny arkusz materiału) na obudowę

Krok 1: Obwód

Okrążenie
Okrążenie
Okrążenie
Okrążenie
Okrążenie
Okrążenie
Okrążenie
Okrążenie

W celu uzyskania wyświetlacza w tym projekcie zastosowano taśmę LED RGB ułożoną w 3 rzędach. Wyciąłem 3 paski po 8 diod z paska diod WS2812B i zlutowałem je razem. (Są kruche i lutowanie małych padów może być trudne. Zalutowane końce owinąłem taśmą izolacyjną, aby izolować je od wszelkich zagięć.) Mimo że potrzebowałem tylko 4 ledów na rząd, wyciąłem paski po 8, aby może mieć większe odstępy między światłami, używając tylko co drugiej diody. Te paski zostały następnie przyklejone do płaskiej podstawy wykonanej z patyczków do lodów. Pomiędzy każdym rzędem podwójna warstwa patyczków do lodów zapewnia profil, dzięki czemu przednią tarczę można przykleić do wnętrza obudowy zegara (patrz zdjęcie).

Pasek led jest zasilany z VU i GND NodeMCU. VU jest zasilany (prawie) bezpośrednio z USB, więc dostarcza 5V do diod LED WS2812B, mimo że ESP8266 pracuje przy 3,3V. Umieściłem kondensator 470 uF na zasilaniu dla listwy WS2812B, aby chronić diody led. Dane dla taśmy ledowej są podłączone do pinu D3 NodeMCU za pośrednictwem rezystora 470 Ohm. Zapoznaj się z tą instrukcją, aby uzyskać więcej informacji na temat sterowania diodami led WS2812B za pomocą ESP8266. Obwód został przylutowany do płytki prototypowej z kilkoma nagłówkami męskimi do żeńskich dla NodeMCU.

Przycisk został również dołączony do D6 NodeMCU. Ten przycisk można nacisnąć podczas uruchamiania zegara, aby wysłać go do trybu ustawień (w którym można modyfikować ustawienia Wi-Fi, serwer NTP i preferencje strefy czasowej). Z jednej strony przycisk jest podłączony do D6, a także do GND przez rezystor 10K Ohm, a z drugiej strony jest podłączony do zasilania. Gdy przycisk jest nienaciśnięty, D6 odczytuje niski; kiedy jest wciśnięty, D6 odczytuje wysoki.

Krok 2: Oprogramowanie

Oprogramowanie
Oprogramowanie

Oprogramowanie dla ESP8266 zostało napisane przy użyciu kodu Arduino. Diody LED są obsługiwane przy użyciu biblioteki FastLED, a synchronizacja NTP jest wykonywana przez bibliotekę NTPClient. Czas jest synchronizowany przez NTP co godzinę.

Na początku funkcji konfiguracji program sprawdza, czy przycisk podłączony do D6 jest wciśnięty. Jeśli tak, ESP8266 tworzy sieć Wi-Fi (SSID i hasło można zmienić w kodzie, domyślny SSID to „TrueBinary”, a hasło to „thepoweroftwo”). Połącz się z tą siecią z dowolnego urządzenia i przejdź do 192.168.1.1. ESP8266 wyświetli stronę internetową z formularzami, na których można wprowadzić identyfikator SSID i hasło Wi-Fi, preferowany serwer NTP i przesunięcie strefy czasowej względem UTC. Po przesłaniu tych formularzy do ESP8266, zapisze informacje w swojej wewnętrznej pamięci EEPROM.

Jeśli przycisk nie jest wciśnięty, zegar uruchamia się normalnie, odczytuje ustawienia z EEPROM, łączy się z Wi-Fi, aby korzystać z NTP i zaczyna wyświetlać czas.

UWAGA: funkcja setDisplay(int index) przyjmuje numer cyfry od 0-11, gdzie 0 to pierwsza cyfra (pół dnia), a 11 to ostatnia (1/4096 dnia) i włącza odpowiednią diodę LED za pomocą diody”. Tę funkcję należy wypełnić zgodnie z konfiguracją wyświetlacza. Mój skomentowany przykład odpowiada temu, jak lutowałem rzędy w sposób zygzakowaty, a nie od końca do końca i pominąłem każdą inną diodę LED.

Krok 3: Mieszkanie

Mieszkania
Mieszkania
Mieszkania
Mieszkania
Mieszkania
Mieszkania

Do umieszczenia zegara użyłem kątownika z malowanego drewna, który miałem. Na jednej zewnętrznej powierzchni wywierciłem 12 otworów w siatce odpowiadającej pozycjom diod LED. Następnie przykleiłem diody LED do wnętrza kąta, przyklejając uniesione powierzchnie patyczków do lodów między rzędami do drewna (jak pokazano). Aby rozproszyć światło z diod LED, przykleiłem szklane kulki na otworach. Osiągnąłem to, zanurzając dolną połowę każdej kulki w żywicy epoksydowej, a następnie umieszczając ją w otworach. NodeMCU i płyta prototypowa zostały przykręcone do drugiej wewnętrznej powierzchni kątownika. Boki pokryto małymi trójkątami z drewna, sklejonymi klejem do drewna. Po jednej stronie znajduje się otwór na port micro USB NodeMCU oraz wycięcie w rogu na przycisk.

Krok 4: Gotowe

Gotowe!
Gotowe!
Gotowe!
Gotowe!

Nasz prawdziwy zegar binarny jest gotowy! Aby go skonfigurować, przytrzymaj przycisk wciśnięty podczas podłączania, aby wprowadzić go w tryb ustawień, a następnie wprowadź dane uwierzytelniające Wi-Fi na swojej stronie internetowej. Po skonfigurowaniu zegar można podłączyć w dowolnym miejscu i automatycznie połączy się z Internetem i zacznie wyświetlać czas w postaci binarnej.

Odczytanie czasu w prawdziwym formacie binarnym wymaga trochę praktyki, ale jest to zabawne ćwiczenie i po chwili staje się szybkim sposobem na zmierzenie czasu tylko jednym spojrzeniem!

Zalecana: