True Երկուական ժամացույց NTP համաժամեցմամբ ՝ 4 քայլ
True Երկուական ժամացույց NTP համաժամեցմամբ ՝ 4 քայլ
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ամանակն իրական երկուական ձևաչափով կարդալու համար անհրաժեշտ է մի շարք պրակտիկա, բայց դա զվարճալի վարժություն է, և որոշ ժամանակ անց այն դառնում է ժամանակ ՝ միայն մեկ հայացքով ժամանակ ստանալու համար:

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