Բովանդակություն:

True Երկուական ժամացույց NTP համաժամեցմամբ ՝ 4 քայլ
True Երկուական ժամացույց NTP համաժամեցմամբ ՝ 4 քայլ

Video: True Երկուական ժամացույց NTP համաժամեցմամբ ՝ 4 քայլ

Video: True Երկուական ժամացույց NTP համաժամեցմամբ ՝ 4 քայլ
Video: Binary Clock with LED Matrix 2024, Հուլիսի
Anonim
True Երկուական ժամացույց NTP համաժամեցմամբ
True Երկուական ժամացույց NTP համաժամեցմամբ
True Երկուական ժամացույց NTP համաժամեցմամբ
True Երկուական ժամացույց NTP համաժամեցմամբ

Իսկական երկուական ժամացույցը ցուցադրում է օրվա ժամը որպես ամբողջ օրվա երկուական կոտորակների գումար, ի տարբերություն ավանդական «երկուական ժամացույցի», որը ժամանակը ցուցադրում է որպես ժամերին/րոպեներին/վայրկյանին համապատասխանող երկուական կոդավորված տասնորդական թվանշաններ: Ավանդական «երկուական ժամացույցները», իրոք, օգտագործում են երկուական կոդավորված-տասնորդական-կոդավորված- sexagesimal: Ինչպիսի խառնաշփոթ! Իսկական երկուական ժամացույցներն անչափ պարզեցնում են իրերը:

Իսկական երկուական ժամացույցի մեջ առաջին թվանշանը պատմում է ձեզ կես օրվա մասին, երկրորդը `քառորդ օր, երրորդ թվանշանը` օրվա ութերորդը և այլն:): Առաջին նիշը արդյունավետորեն կոդավորում է AM- ն PM- ի դիմաց, երկրորդը `վաղ առավոտյան/երեկոյան կամ ուշ AM/PM- ը և այլն:

Իմ իսկական երկուական ժամացույցը նախագծելիս ես օգտագործեցի լուծման տասներկու թվանշան, ուստի օրը բաժանված է 2^12 = 4096 մասի (յուրաքանչյուր հավելումը մոտավորապես 20 վայրկյան է): Բոլոր թվանշանները տողում պահելու փոխարեն, 12 թվանշանները բաժանվեցին 4 թվանշանի 3 տողերի: Թեև իրական երկուական թվանշանները անփոփոխ են, բայց դա թույլ է տալիս ժամացույցը կարդալ որպես երկու երկուական կոդավորված վեցանկյուն թվանշան, առաջին տողը ցույց է տալիս օրվա 16-րդ մասը (1.5 ժամ), երկրորդ տողը ՝ օրվա 256-րդը (~ 5 րոպե) և երրորդ տողը ցույց է տալիս օրվա 4096 -րդ մասը (~ 20 վայրկյան):

Clockամացույցը համաժամեցվում է NTP- ի հետ (Timeանցի ժամանակի արձանագրություն) `օգտագործելով ESP8266: ESP8266- ը կազմաձևված է այնպես, որ գործարկման ժամանակ ժամացույցի կոճակը սեղմելը այն կուղարկի կարգավորումների ռեժիմ: Պարամետրերի ռեժիմում ժամացույցը կստեղծի WiFi ցանց, որը սպասարկում է վեբ էջ, որը կարող է օգտագործվել ձեր սեփական wifi կարգավորումները, NTP սերվերը և ժամային գոտին մուտքագրելու համար: Այս տեղեկատվությունը պահվում է ESP8266- ի EEPROM- ում և կարդացվում է, երբ ժամացույցը սկսվում է ժամացույցի ռեժիմում, որպեսզի կարողանա միանալ ինտերնետին և ստանալ ժամանակը:

Պարագաներ:

  • NodeMCU ESP8266
  • WS2812B LED ժապավեն
  • Pushbutton
  • 470 Օմ դիմադրություն
  • 10K Ohm դիմադրություն
  • 470 uF կոնդենսատոր
  • Popsicle ձողիկներ
  • Մարմարներ
  • Փայտ (կամ նյութի այլ թերթ) գործի համար

Քայլ 1: Շղթա

Շրջան
Շրջան
Շրջան
Շրջան
Շրջան
Շրջան
Շրջան
Շրջան

Էկրան ունենալու համար այս նախագիծը օգտագործում է RGB լուսադիոդային շերտ, որը շարված է 3 շարքով: WS2812B լուսամփոփների ժապավենից ես կտրեցի 3 շերտ ՝ 8 լուսարձակով և դրանք զոդեցի միասին: (Նրանք փխրուն են և փոքր բարձիկները կարող են միացնելը դժվար է: Ես զոդված ծայրերը փաթաթեցի էլեկտրական ժապավենով, որպեսզի դրանք մեկուսացնեմ ցանկացած ճկումից): կարող էր ավելի մեծ հեռավորություն ունենալ լույսերի միջև ՝ օգտագործելով միայն մյուս լուսարձակը: Այս ժապավենները այնուհետև կպչում էին սոճու ձողիկներից պատրաստված հարթ հիմքին: Յուրաքանչյուր տողի միջև ընկույզի ձողերի կրկնակի շերտը ապահովում է պրոֆիլը, որպեսզի առջևի երեսը կարող է խրված լինել ժամացույցի պատյանի ներքին մասի վրա (տես լուսանկարը):

Առաջատար ժապավենը սնուցվում է NodeMCU- ի VU- ից և GND- ից: VU- ն սնուցվում է (գրեթե) անմիջապես USB- ից, ուստի այն ապահովում է 5V WS2812B LED- ներին, չնայած ESP8266- ն աշխատում է 3.3V- ով: Ես տեղադրեցի 470 uF կոնդենսատոր հզորության վրա WS2812B շերտի համար `լուսարձակները պաշտպանելու համար: Առաջարկվող շերտի տվյալները միացված են NodeMCU- ի D3 կապին 470 Օմ դիմադրության միջոցով: ESP8266- ով WS2812B լուսարձակները վերահսկելու մասին լրացուցիչ տեղեկությունների համար դիմեք այս հրահանգին: Շղթան միացվեց նախատախտակին ՝ NodeMCU- ի համար արականից իգական մի քանի վերնագրերով:

Մի կոճակ կցվեց նաև NodeMCU- ի D6- ին: Այս կոճակը կարող է սեղմվել ժամացույցի գործարկման ընթացքում ՝ այն կարգավորումների ռեժիմ ուղարկելու համար (որում կարող են փոփոխվել wifi կարգավորումները, NTP սերվերը և ժամային գոտու նախապատվությունները): Մի ծայրում կոճակը միացված է D6- ին, ինչպես նաև GND- ին 10K Օմ ռեզիստորի միջոցով, իսկ մյուս ծայրում միացված է հոսանքին: Երբ կոճակը սեղմված չէ, D6- ը ցածր է կարդում; երբ այն սեղմվում է, D6- ը բարձր է կարդում:

Քայլ 2: Softwareրագրակազմ

Ծրագրային ապահովում
Ծրագրային ապահովում

ESP8266- ի ծրագրաշարը գրվել է Arduino կոդի միջոցով: LED- ները մշակվում են FastLED գրադարանի միջոցով, իսկ NTP համաժամեցումը կատարվում է NTPClient գրադարանի կողմից: Timeամանակը համաժամացվում է NTP- ի հետ ամեն ժամ:

Կարգավորման գործառույթի սկզբում ծրագիրը ստուգում է, թե արդյոք սեղմված է D6- ին միացված կոճակը: Եթե այդպես է, ESP8266- ը ստեղծում է wifi ցանց (SSID- ը և գաղտնաբառը կարող են փոխվել ծածկագրում, կանխադրված SSID- ը «TrueBinary» է, իսկ գաղտնաբառը ՝ «thepoweroftwo»): Միացեք այս ցանցին ցանկացած սարքից և անցեք 192.168.1.1: ESP8266- ը կծառայի վեբ էջի ձևերով, որտեղ կարող եք մուտքագրել ձեր wifi SSID- ն ու գաղտնաբառը, նախընտրած NTP սերվերը և ժամային գոտին UTC- ից փոխհատուցել: Այս ձևերը ESP8266- ին ներկայացնելուց հետո այն կպահի տվյալները իր ներքին EEPROM պահեստում:

Եթե կոճակը սեղմված չէ, ժամացույցը նորմալ է միանում, կարդում է կարգավորումները EEPROM- ից, միանում է wifi- ին ՝ NTP- ն օգտագործելու համար և սկսում է ցուցադրել ժամանակը:

EԱՆՈԹԱԳՐՈ setԹՅՈՆ. Գործառույթ leds »զանգված: Այս գործառույթը պետք է լրացվի `կախված այն բանից, թե ինչպես եք կարգավորել ցուցադրումը: Իմ մեկնաբանած օրինակը համապատասխանում է այն բանին, թե ինչպես եմ ես շարել զիգ-զագ ոճով տողերը, այլ ոչ թե ծայրից ծայր և բաց թողել յուրաքանչյուր այլ լուսադիոդ:

Քայլ 3: Բնակարանային ապահովում

Բնակարանաշինություն
Բնակարանաշինություն
Բնակարանաշինություն
Բնակարանաշինություն
Բնակարանաշինություն
Բնակարանաշինություն

Houseամացույցը տեղավորելու համար ես օգտագործեցի պատահականորեն ներկված փայտի անկյուն: Մեկ արտաքին երեսին ես 12 անցք բացեցի մի LED- ի դիրքերին համապատասխանող ցանցում: Այնուհետև ես LED- ները կպցրեցի անկյունի ներսին ՝ շարանների միջև բարձրացած դեմքերը սոսնձելով փայտին (ինչպես ցույց է տրված): LED- ներից լույսը ցրելու համար ես անցքերի վերևում կպցրեցի ապակե մարմարներ: Ես դա արեցի ՝ յուրաքանչյուր մարմարի ստորին կեսը թաթախելով էպոքսիդային խեժի մեջ, այնուհետև դրանք տեղադրելով անցքերի մեջ: NodeMCU- ն և նախատախտակը պտուտակվեցին անկյունի մյուս ներքին երեսին: Կողքերը ծածկված էին փայտի փոքր եռանկյունների միջոցով ՝ ամրացված փայտի սոսինձով: Կողքերից մեկն ունի անցք NodeMCU- ի միկրո USB պորտի համար, իսկ անկյունում `կտրող կոճակի համար:

Քայլ 4: Կատարված է:

Կատարած!
Կատարած!
Կատարած!
Կատարած!

Մեր իսկական երկուական ժամացույցն ավարտված է: Կարգավորելու համար միացրեք այն կոճակը միացնելիս, որպեսզի այն տեղադրեք կարգավորումների ռեժիմում, այնուհետև մուտքագրեք WiFi- ի հավատարմագրերը իր վեբ էջում: Կարգավորվելուց հետո ժամացույցը կարող է միացվել ցանկացած վայրում և ինքնաբերաբար կկապվի ինտերնետին և կսկսի ցուցադրել ժամանակը երկուական տարբերակով:

Trueամանակն իրական երկուական ձևաչափով կարդալու համար անհրաժեշտ է մի շարք պրակտիկա, բայց դա զվարճալի վարժություն է, և որոշ ժամանակ անց այն դառնում է ժամանակ ՝ միայն մեկ հայացքով ժամանակ ստանալու համար:

Խորհուրդ ենք տալիս: