Satura rādītājs:

Patiesais binārais pulkstenis ar NTP sinhronizāciju: 4 soļi
Patiesais binārais pulkstenis ar NTP sinhronizāciju: 4 soļi

Video: Patiesais binārais pulkstenis ar NTP sinhronizāciju: 4 soļi

Video: Patiesais binārais pulkstenis ar NTP sinhronizāciju: 4 soļi
Video: Sieviešu rokas pulkstenis ar mirdzošajiem kristāliem un silikona siksniņu 2024, Jūlijs
Anonim
Patiess binārais pulkstenis ar NTP sinhronizāciju
Patiess binārais pulkstenis ar NTP sinhronizāciju
Patiess binārais pulkstenis ar NTP sinhronizāciju
Patiess binārais pulkstenis ar NTP sinhronizāciju

Patiess binārais pulkstenis parāda diennakts laiku kā pilnas dienas bināro daļu summu pretstatā tradicionālajam "binārajam pulkstenim", kas parāda laiku kā bināri kodētus decimālos ciparus, kas atbilst stundām/minūtēm/sekundēm. Tradicionālie "binārie pulksteņi" patiešām izmanto bināro kodējumu-decimālo kodējumu-sexagesimal. Kāda nekārtība! Patiesie binārie pulksteņi lietas ārkārtīgi vienkāršo.

Patiesā binārajā pulkstenī pirmais cipars norāda, ka ir puse dienas, otrais cipars ir ceturtā diena, trešais cipars ir astotā daļa no dienas utt. To var ļoti ātri nolasīt jebkurā izšķirtspējā (protams). Pirmais cipars faktiski kodē AM pret PM, otrais cipars kodē, vai tas ir agrs AM/PM vai vēls AM/PM utt.

Izstrādājot savu patieso bināro pulksteni, es izmantoju divpadsmit izšķirtspējas ciparus, tāpēc diena ir sadalīta 2^12 = 4096 daļās (katrs solis ir aptuveni 20 sekundes). Tā vietā, lai visus ciparus saglabātu rindā, 12 cipari tika sadalīti 3 4 ciparu rindās. Lai gan faktiskie binārie cipari nemainās, tas ļauj pulksteni nolasīt kā 3 binārus kodētus heksadecimālos ciparus, pirmajā rindā parādot dienas 16. daļas (1,5 stundas), otrajā rindā-256 dienas daļas (~ 5 minūtes) un trešā rinda parāda 4096. dienas daļu (~ 20 sekundes).

Pulkstenis tiek sinhronizēts ar NTP (tīkla laika protokols), izmantojot ESP8266. ESP8266 ir konfigurēts tā, ka, startējot, nospiežot pulksteņa pogu, tas tiks nosūtīts iestatījumu režīmā. Iestatījumu režīmā pulkstenis izveidos WiFi tīklu, kas apkalpo tīmekļa lapu, kuru var izmantot, lai ievadītu savus wifi iestatījumus, NTP serveri un laika joslu. Šī informācija tiek glabāta ESP8266 EEPROM un tiek nolasīta, kad pulkstenis tiek ieslēgts pulksteņa režīmā, lai tas varētu izveidot savienojumu ar internetu un iegūt laiku.

Piegādes:

  • NodeMCU ESP8266
  • WS2812B LED sloksne
  • Uzspied pogu
  • 470 omu rezistors
  • 10K omu rezistors
  • 470 uF kondensators
  • Popsicle spieķi
  • Marmors
  • Koks (vai cita materiāla loksne) korpusam

1. darbība: ķēde

Ķēde
Ķēde
Ķēde
Ķēde
Ķēde
Ķēde
Ķēde
Ķēde

Lai būtu displejs, šajā projektā tiek izmantota RGB LED sloksne, kas novietota 3 rindās. No WS2812B LED sloksnes es izgriezu 3 sloksnes ar 8 gaismas diodēm un pielodēju tās kopā. (Tie ir trausli, un mazo spilventiņu lodēšana var būt sarežģīta. Lodētos galus iesaiņoju elektriskajā lentē, lai izolētu tos no jebkādas saliekšanas.) Lai gan man vajadzēja tikai 4 gaismas diodes katrā rindā, es izgriezu 8 sloksnes, lai var būt lielāks attālums starp gaismām, izmantojot tikai katru citu LED. Pēc tam šīs sloksnes tika pielīmētas pie plakanas pamatnes, kas izgatavota no spieķu nūjām. Starp katru rindu divkāršs popsicle nūju slānis nodrošina profilu tā, lai priekšpusi varētu piestiprināt pret pulksteņa korpusa iekšpusi (skat. Fotoattēlu).

LED sloksne tiek darbināta no NodeMCU transportlīdzekļa bloka un GND. Transportlīdzekļa bloks tiek piegādāts (gandrīz) tieši no USB, tāpēc tas nodrošina 5 V WS2812B gaismas diodēm, lai gan ESP8266 darbojas ar 3,3 V. Es ievietoju 470 uF kondensatoru WS2812B sloksnes barošanai, lai aizsargātu gaismas diodes. LED sloksnes dati ir savienoti ar NodeMCU D3 tapu, izmantojot 470 omu rezistoru. Skatiet šo pamācību, lai iegūtu vairāk informācijas par to, kā kontrolēt WS2812B gaismas diodes, izmantojot ESP8266. Ķēde tika pielodēta uz pamatplāksnes ar dažām galvenēm no vīriešiem līdz sievietēm NodeMCU.

Spiedpoga tika pievienota arī NodeMCU D6. Šo spiedpogu var nospiest, kamēr pulkstenis sāk darboties, lai to nosūtītu iestatījumu režīmā (kurā var mainīt wifi iestatījumus, NTP serveri un laika joslas preferences). Vienā galā spiedpoga ir savienota ar D6 un arī ar GND, izmantojot 10K omu rezistoru, bet otrā galā - ar strāvu. Kad poga nav nospiesta, D6 rāda zemu; kad tas tiek nospiests, D6 rāda augstu.

2. darbība: programmatūra

Programmatūra
Programmatūra

ESP8266 programmatūra tika uzrakstīta, izmantojot Arduino kodu. Gaismas diodes tiek apstrādātas, izmantojot FastLED bibliotēku, un NTP sinhronizāciju veic NTPClient bibliotēka. Laiku NTP sinhronizē katru stundu.

Iestatīšanas funkcijas sākumā programma pārbauda, vai ir nospiesta poga, kas savienota ar D6. Ja tā ir, ESP8266 izveido wifi tīklu (SSID un paroli var mainīt kodā, noklusējuma SSID ir "TrueBinary" un parole ir "thepoweroftwo"). Izveidojiet savienojumu ar šo tīklu no jebkuras ierīces un dodieties uz vietni 192.168.1.1. ESP8266 nodrošinās tīmekļa lapu ar veidlapām, kurās varat ievadīt savu wifi SSID un paroli, vēlamo NTP serveri un laika joslas nobīdi no UTC. Pēc šo veidlapu iesniegšanas ESP8266 tā saglabās informāciju savā iekšējā EEPROM krātuvē.

Ja poga netiek nospiesta, pulkstenis sāk darboties normāli, nolasa iestatījumus no EEPROM, izveido savienojumu ar wifi, lai izmantotu NTP, un sāk rādīt laiku.

PIEZĪME. Funkcija setDisplay (int indekss) ņem ciparu skaitli no 0 līdz 11, kur 0 ir pirmais cipars (puse dienas) un 11 ir pēdējais (1/4096 no dienas), un ieslēdz atbilstošo LED, izmantojot gaismas diodes masīvs. Šī funkcija ir jāaizpilda atbilstoši tam, kā konfigurējāt displeju. Mans komentētais piemērs atbilst tam, kā es lodēju rindas zig-zag veidā, nevis no gala līdz galam, un izlaidu visas citas gaismas diodes.

3. solis: mājoklis

Mājokļi
Mājokļi
Mājokļi
Mājokļi
Mājokļi
Mājokļi

Lai ievietotu pulksteni, es izmantoju krāsotas koka leņķi, kas man bija. Uz vienas ārējās virsmas es izurbju 12 caurumus režģī, kas atbilst gaismas diodes pozīcijām. Pēc tam es piestiprināju gaismas diodes leņķa iekšpusē, pielīmējot popsicle nūju paceltās virsmas starp rindām pie koka (kā parādīts attēlā). Lai izkliedētu gaismas diodes, es caurumiņu augšpusē uzlīmēju stikla bumbiņas. Es to paveicu, iemērcot katra marmora apakšējo pusi epoksīda sveķos un pēc tam ievietojot caurumos. NodeMCU un proto-board tika ieskrūvēti otrā leņķa iekšpusē. Sānus pārklāja, izmantojot mazus koka trīsstūrus, kas piestiprināti ar koka līmi. Vienā no pusēm ir caurums NodeMCU mikro USB portam un griezums stūrī pogai.

4. solis: Gatavs

Gatavs!
Gatavs!
Gatavs!
Gatavs!

Mūsu īstais binārais pulkstenis ir beidzies! Lai to iestatītu, turiet nospiestu pogu, kamēr to pievienojat, lai to ieslēgtu iestatījumu režīmā, un pēc tam ievadiet WiFi akreditācijas datus savā tīmekļa vietnē. Kad pulkstenis ir iestatīts, to var pievienot jebkurai vietai, un tas automātiski izveidos savienojumu ar internetu un sāks rādīt laiku binārā formātā.

Lai lasītu laiku patiesā binārā formātā, ir nepieciešama prakse, taču tas ir jautrs uzdevums, un pēc kāda laika tas kļūst par ātru veidu, kā iegūt laiku tikai ar skatienu!

Ieteicams: