Sisukord:

Tõeline binaarkell koos NTP sünkroonimisega: 4 sammu
Tõeline binaarkell koos NTP sünkroonimisega: 4 sammu

Video: Tõeline binaarkell koos NTP sünkroonimisega: 4 sammu

Video: Tõeline binaarkell koos NTP sünkroonimisega: 4 sammu
Video: Active Directory Essentials: Navigating the Object Database for IT Pros 2024, November
Anonim
Tõeline binaarkell koos NTP sünkroonimisega
Tõeline binaarkell koos NTP sünkroonimisega
Tõeline binaarkell koos NTP sünkroonimisega
Tõeline binaarkell koos NTP sünkroonimisega

Tõeline binaarkell kuvab kellaaega terve päeva binaarmurdude summana, erinevalt traditsioonilisest "binaarkellast", mis kuvab aega binaarselt kodeeritud kümnendkohtade kujul, mis vastavad tundidele/minutitele/sekunditele. Traditsioonilised "binaarkellad" kasutavad tõesti binaarselt kodeeritud-kümnendkoodiga kodeeritud seksuaalseid. Milline segadus! Tõelised binaarkellad lihtsustavad asju tohutult.

Tõelise binaarkella puhul ütleb esimene number, et see on pool päeva, teine number on veerandpäev, kolmas number on kaheksandik päevast jne. Seda saab lugeda mis tahes eraldusvõimega väga kiiresti (muidugi harjutades)). Esimene number kodeerib tõhusalt AM -i ja PM -i, teine number kodeerib seda, kas on varahommikune/-hommikune või hiline AM/PM jne.

Oma tõelise binaarkella kujundamisel kasutasin eraldusvõime kaksteist numbrit, seega on päev jagatud 2^12 = 4096 osaks (iga sammu suurus on umbes 20 sekundit). Selle asemel, et hoida kõiki numbreid reas, eraldati 12 numbrit kolmeks 4 -kohaliseks reaks. Kuigi tegelikud kahendnumbrid on muutumatud, võimaldab see kella lugeda kolme binaarselt kodeeritud kuusnurkse numbrina, kusjuures esimene rida näitab 16. kuupäeva (1.5 tundi), teine rida näitab 256. päeva (~ 5 minutit) ja kolmas rida näitab 4096. päeva (~ 20 sekundit).

Kell sünkroonitakse NTP -ga (Network Time Protocol), kasutades ESP8266. ESP8266 on konfigureeritud nii, et käivitamisel saadab kella nupule vajutamine selle seadistusrežiimi. Seadistusrežiimis loob kell WiFi -võrgu, mis teenindab veebilehte, mida saab kasutada teie enda WiFi -seadete, NTP -serveri ja ajavööndi sisestamiseks. See teave salvestatakse ESP8266 EEPROM -is ja seda loetakse kella käivitamisel kellarežiimis, et see saaks Interneti -ühenduse luua ja aega hankida.

Tarvikud:

  • SõlmMCU ESP8266
  • WS2812B LED -riba
  • Nupp
  • 470 oomi takisti
  • 10K oomi takisti
  • 470 uF kondensaator
  • Popsicle pulgad
  • Marmorid
  • Puit (või muu materjalileht) korpuse jaoks

Samm: vooluring

Vooluring
Vooluring
Vooluring
Vooluring
Vooluring
Vooluring
Vooluring
Vooluring

Ekraani saamiseks kasutab see projekt RGB led -riba, mis on paigutatud 3 rida. Lõikasin WS2812B ledide ribalt välja 3 riba 8 ledist ja jootsin need kokku. (Need on habras ja väikeste padjade jootmine võib olla keeruline. Mätsin joodetud otsad elektrilindile, et isoleerida need kõikidest painutustest.) Kuigi mul oli vaja ainult 4 LED -i reas, lõikasin välja 8 -kohalised ribad. tulede vaheline kaugus võib olla suurem, kui kasutate ainult kõiki teisi LED -e. Need ribad kleepiti seejärel tasasele alusele, mis oli valmistatud popsicle pulgadest. Iga rea vahel on kahekordne kiht popsikepulki, mis tagab profiili nii, et esikülg saab kella korpuse siseküljele kinni jääda (vt fotot).

LED -riba saab toite NodeMCU sõidukiüksusest ja GND -st. Sõidukiüksus saab toite (peaaegu) otse USB -lt, seega annab see WS2812B LED -idele 5 V, kuigi ESP8266 töötab 3,3 V pingel. Ledide kaitsmiseks asetasin WS2812B riba toite kohale 470 uF kondensaatori. LED -riba andmed on 470 oomi takisti kaudu ühendatud NodeMCU D3 kontaktiga. Sellest juhendist leiate lisateavet WS2812B LED -ide juhtimise kohta ESP8266 abil. Vooluahel joodeti NodeMCU jaoks mõnede meeste ja naiste päistega proto-plaadile.

NodeMCU D6 külge kinnitati ka nupp. Seda klahvi saab vajutada kella käivitamisel, et saata see seadistusrežiimi (kus saab muuta WiFi -seadeid, NTP -serverit ja ajavööndi eelistusi). Ühest otsast on nupp ühendatud D6 -ga ja ka GND -ga 10K oomi takisti kaudu ning teises otsas on see vooluvõrku ühendatud. Kui nupp on alla vajutamata, kuvatakse D6 madal; kui seda vajutada, kuvatakse D6 kõrge.

Samm 2: Tarkvara

Tarkvara
Tarkvara

ESP8266 tarkvara kirjutati Arduino koodi abil. Valgusdioode töödeldakse FastLED -teeki kasutades ja NTP -sünkroonimist teostab NTPClient. Aega sünkroonib NTP iga tund.

Seadistusfunktsiooni alguses kontrollib programm, kas D6 -ga ühendatud nuppu on vajutatud. Kui see on nii, loob ESP8266 WiFi -võrgu (SSID -d ja parooli saab koodis muuta, vaikimisi SSID on „TrueBinary” ja parool on „thepoweroftwo”). Ühendage selle võrguga mis tahes seadmest ja liikuge aadressile 192.168.1.1. ESP8266 teenindab veebilehte vormidega, kuhu saate sisestada oma wifi SSID ja parooli, eelistatud NTP -serveri ja ajavööndi nihke UTC -st. Pärast nende vormide esitamist ESP8266 -le salvestab see teabe oma sisemisse EEPROM -i mällu.

Kui nuppu ei vajutata, käivitub kell normaalselt, loeb seaded EEPROM -ist, loob NTP kasutamiseks WiFi -ühenduse ja hakkab kuvama aega.

MÄRKUS. Funktsioon setDisplay (int indeks) võtab numbrite arvu vahemikus 0-11, kus 0 on esimene number (pool päeva) ja 11 on viimane (1/4096 päevast), ning lülitab sisse vastava valgusdioodi, kasutades ledid massiiv. See funktsioon tuleb täita vastavalt kuvari konfigureerimisele. Minu kommenteeritud näide vastab sellele, kuidas ma jootsin ridu siksakiliselt, mitte otsast lõpuni ja jätsin iga teise LED-i vahele.

3. samm: eluase

Eluase
Eluase
Eluase
Eluase
Eluase
Eluase

Kella paigutamiseks kasutasin maalitud puidu nurka, mis mul juhtumisi oli. Ühel välispinnal puurisin 12 auku võrku, mis vastab valgusdioodide positsioonidele. Seejärel kinnitasin valgusdioodid nurga siseküljele, liimides popsicle pulgade kõrgendatud pinnad ridade vahele puidu külge (nagu näidatud). Valgusdioodide valguse hajutamiseks kleepisin aukude peale klaasmarmorid. Ma saavutasin selle, kastes iga marmori alumise poole epoksüvaiku ja asetades need seejärel aukudesse. NodeMCU ja proto-plaat kruviti nurga teise sisepinna sisse. Küljed kaeti väikeste puukolmnurkade abil, mis kinnitati puiduliimiga. Ühel küljel on auk NodeMCU mikro -USB -pordi jaoks ja sisselõige nurgas nupu jaoks.

4. samm: valmis

Valmis!
Valmis!
Valmis!
Valmis!

Meie tõeline binaarkell on lõppenud! Selle seadistamiseks hoidke nuppu ühendamise ajal all, et see seadistusrežiimi lülitada, ja seejärel sisestage selle veebisaidile WiFi mandaat. Pärast seadistamist saab kella ühendada kõikjal ja see loob automaatselt Interneti -ühenduse ning hakkab kellaaega kuvama binaarsena.

Aja lugemiseks tõelises binaarses vormingus kulub palju harjutamist, kuid see on lõbus harjutus ja mõne aja pärast muutub see kiireks viisiks aja leidmiseks vaid pilguga!

Soovitan: