
Բովանդակություն:
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48

Youիշտ ժամանակ ստանալը էական նշանակություն ունի, եթե ցանկանում եք տվյալների մատյան պահել: Ինտերնետի աղբյուրներից ժամանակ ստանալու տարբեր եղանակներ կան:
Դուք կարող եք հարցնել, թե ինչու չօգտագործել ESP8266- ը ՝ ձեզ համար ժամանակ պահելու համար: Դե, կարող եք, այն ունի իր ներքին RTC (Իրական ժամանակի ժամացույց), բայց ESP8266- ն ունի 3 տարբեր աշխատանքային ժամացույցի հաճախականություններ `52 ՄՀց, երբ այն բեռնվում է, 80 ՄՀց սովորական աշխատանքի ընթացքում և 160 ՄՀց` ուժեղացման դեպքում: Եթե Ձեզ անհրաժեշտ է ավելի ճշգրիտ ժամանակի պահում, հատկապես ավելի երկար ժամանակահատվածներում, ապա արտաքին RTC- ն կարող է լուծում տալ: Այս մոդուլներն ունեն նաև մարտկոցի պահուստ ՝ էներգիայի կորստի դեպքում: RTC- ն սարսափելի ճշգրիտ չէ, քանի որ այն հաշվում է դրա ստեղծման պահից անցած ժամանակը, և չնայած դա կարող է անել շատ ծրագրերի դեպքում, այն կարող է բավականաչափ լավ չլինել կրիտիկական ժամանակը պահելու համար: Հնարավոր է ստանալ ճշգրիտ ժամանակը SNTP ժամանակային սերվերից, որից RTC- ն կարող է թարմացվել կանոնավոր պարբերականությամբ `անհրաժեշտության դեպքում:
DS1307 Tiny RTC I2C մոդուլը (վերևում) այս տարրերի օրինակ է և կարելի է ձեռք բերել Ebay- ում և այլ մատակարարներից 2 ֆունտից պակաս գնով: Կան նաև ուրիշներ, ինչպիսիք են DS1302- ը և DS3231- ը, որոնք աշխատում են նույն ձևով և արժեն 99p- ից սկսած:
DS1307 մոդուլը օգտագործում է I2C ինտերֆեյս և ESP-01- ի համար պետք է միացված լինի հետևյալ կերպ.
Vcc - 3.3v, Gnd - Gnd, SDA - D3, SCL - D4
SDA- ն և SCL- ն կարող են միացվել ավելի մեծ ESP8266- ի I/O կապերին (համապատասխանաբար փոխել կոդը): Այս մոդուլին անհրաժեշտ է միացնել միայն ձախ կողմի կապում:
Քայլ 1: Google ամանակ

Բազմաթիվ օրինակներ կան ՝ Google- ից ժամանակ հատկացնելու և այսպիսի տեսք ունենալու համար: Երբ գործարկում եք GoogleTime.lua ծրագիրը, դուք ստանում եք այսպիսի արդյունք.
dofile ("GoogleTime.lua")> Timeամանակը `ուրբ., 15 դեկտեմբերի 2017 11:19:45 GMT
Այս մեթոդի խնդիրն այն է, որ դուք ստանում եք ժամանակը լարային ձևաչափով, և դուք պետք է տողը բաժանեք դրա առանձին բիթերի ժամերով, րոպեներով, վայրկյաններով և այլն: Աշխարհական լեզվով ասած, սա այն վայրկյանների թիվն է, որն անցել է 1970 թվականի հունվարի 1 -ից մինչև մեր օրերն ու օրերը: UNIX դարաշրջանը (1970/01/01 00:00:00) օգտագործվում է համակարգչային օպերացիոն համակարգերի մեծ մասի կողմից, իսկ անցած ժամանակը պահվում է որպես ստորագրված 32 բիթանոց համար: Սա նշանակում է, որ այս համակարգը կգործի մինչև 2038 թվականի հունվարի 19 -ը, երբ համարը չափազանց մեծ կդառնա այս կերպ պահելու համար: Մեկ լուծում է համարը պահել որպես 64 բիթ, բայց առայժմ 32 բիթ մեթոդը բավական կլինի:
Ներքին RTC- ում 2015 թվականի հուլիսի 9 -ը, 18:29:49 սահմանելու համար դուք կօգտագործեք այս տողի ծածկագիրը.
rtctime.set (1436430589, 0)
2 պարամետրերն են վայրկյան և միկրո վայրկյան:
Լրացուցիչ տեղեկություններ կարող եք գտնել NodeMCU փաստաթղթերի ընթերցմամբ:
Քայլ 2: SNTP ժամանակի սերվերներ

Simple Network Time Protocol (SNTP) տրամադրվում է ինտերնետի բազմաթիվ աղբյուրներից, և աշխարհի շատ երկրներ ունեն այս ծառայությունը:
SNTPTime2.lua ծրագիրը սահմանում է ժամանակը ներքին RTC- ում: ESP8266- ը բռնկելիս պետք է ունենաք rtctime & sntp մոդուլներ ձեր կառուցման մեջ: Programրագիրը սերվերից ստանում է ժամանակը վայրկյանների և միկրո վայրկյանների ընթացքում և սահմանում ներքին RTC- ն rtctime.set (sec, usec) միջոցով:
Այնուհետեւ ծրագիրը ցուցադրում է ամսաթիվը եւ ժամը տարբեր ձեւաչափերով:
Ամբողջ աշխարհում կան բազմաթիվ SNTP սերվերներ, որոնցից մի քանիսը հետևյալն են.
- sntp.sync ({"216.239.35.0"},
- sntp.sync ({"0.uk.pool.ntp.org", "0.uk.pool.ntp.org"},
- sntp.sync ({"3.uk.pool.ntp.org", "143.210.16.201"},
- sntp.sync ({"0.uk.pool.ntp.org", "1.uk.pool.ntp.org", "3.uk.pool.ntp.org"},
Բոլոր վերը նշված կոդերի տողերը կարող են փոխարինվել SNTPTime2.lua ծրագրում:
Ստորև բերված հասցեներում ավելի շատ SNTP սերվերներ կան, որոնք կրկին կարող են օգտագործվել ծրագրում:
93.170.62.252, 130.88.202.49, 79.135.97.79, ntp.exnet.com
Google- ը տրամադրում է նաև ժամանակային սերվերներ հետևյալ հասցեներով.
216.239.35.0, 216.239.35.4, 216.239.35.8, 216.239.35.12
Դուք պետք է հիշեք, որ ժամանակ եք ստանում այն երկրից, որտեղ գտնվում եք, կամ գուցե ստիպված լինեք այն փոփոխել աշխարհի տարբեր ժամային գոտիների համար: Նաև որոշ երկրներ ունեն ամառային ժամանակ, ուստի գուցե ստիպված լինեք դրանով զբաղվել:
Քայլ 3: tingամանակ ստանալը RTC մոդուլից

GetRTCTime.lua ծրագիրը կարդում է ժամանակը ներքին RTC- ից:
Առաջին մասը կարդում է ժամանակը և ցուցադրում այն վայրկյանների և միկրովայրկյանների ընթացքում:
Երկրորդ մասը այն փոխակերպում է ավելի ընթերցելի մարդկային ձևաչափի:
tm = rtctime.epoch2cal (rtctime.get ()) զանգահարելիս այն վերադարձնում է.
- տարի - 1970 ~ 2038
- երկու ամիս - ընթացիկ տարվա 1 ~ 12 ամիս
- օր - օր 1 ~ 31 ընթացիկ ամսվա ընթացքում
- ժամ
- րոպե
- վրկ
- օր - օր 1 ~ 366 ընթացիկ տարում
- օր - օր 1 ~ 7 ընթացիկ շաբաթում (կիրակի ՝ 1)
Յուրաքանչյուր տարր կարող է մուտք գործել tm [«օր»], tm [«տարի»]…
Լրացուցիչ տեղեկություններ կարող եք գտնել NodeMCU փաստաթղթերի ընթերցմամբ:
DisplaySNTPtime.lua- ն LCD- ի 128 x 64 OLED էկրանով ամսաթիվը և ժամը ցուցադրելու ավելի մշակված միջոց է, քանի որ այն հեշտությամբ միացված է և կարող է օգտագործվել այս ծրագրերի հետ:
Քայլ 4: RTC Օգտվողի հիշողություն
Մի փոքր շեղում ժամանակի պահպանումից `ներքին RTC- ն ESP8266- ում ունի 128 x 32 բիթանոց հիշողության հասցեներ, որոնցից կարող է օգտվել ծրագրավորողը: Նրանք հատկապես օգտակար են, քանի որ կարող են գոյատևել ESP8266- ի խոր քնի ցիկլից: Merրագրավորողը պետք է վերահսկի դրանց օգտագործումը և ապահովի, որ դրանք պատահաբար չգրվեն:
Ես ներառել եմ RTCmem.lua, մի պարզ ծրագիր, որը ցույց է տալիս դրա օգտագործումը: Ձեր կառուցվածքում դուք պետք է ունենաք rtcmem մոդուլ:
Քայլ 5. Արտաքին RTC մոդուլներ

Արտաքին RTC մոդուլները միանում են ESP8266- ին I2C ինտերֆեյսի միջոցով, որն օգտագործում է միայն երկու մուտք/ելք և աշխատում է ESP-01- ի, ինչպես նաև մյուս ESP8266 սարքերի մեծ մասի հետ:
RTC մոդուլի հասցեն 0x68 է և հասանելի է սովորական I2C հրամանների միջոցով: Այնուամենայնիվ, պետք է հիշել, որ RTC գրանցամատյաններում տվյալները պահվում են BCD ձևաչափով (հիմք 16), ուստի ձեր ծրագրերը պետք է զբաղվեն դրանով: Timeամանակն ու ամսաթիվը պահվում են 7 գրանցամատյանում RTC- ում: Ներքին RTC- ում BCD- ի փոխակերպումները հոգում են rtctime մոդուլը:
SetExtRTC.lua- ն տվյալները փոխակերպում է BCD- ի և սահմանում ժամանակը:
ReadExtRTC.lua- ն կարդում է ժամանակի տվյալները և տպում դրանք: Նշում. Տվյալները տպագրվում են վեցանկյուն:
Ես շատ ժամանակ չեմ ծախսել ցուցադրման ձևաչափման վրա, քանի որ դուք կարող եք ունենալ ձեր սեփական պատկերացումները այն մասին, թե ինչ եք ուզում անել ամսաթվի և ժամի հետ: Սա հիմնական շարժիչն է իր ամենապարզ ձևով, որպեսզի ցանկության դեպքում կարողանաք այն ավելի զարգացնել:
Քայլ 6: Տվյալների գրանցում

Եթե ուշադիր նայեք RTC մոդուլներին, կնկատեք, որ դրանցում տեղադրված է AT24C32 EEPROM IC կամ նմանատիպ սարք, կամ կարող եք օգտագործել 24C256 տախտակ, ինչպես վերը նշված է: Այս EEPROM IC- ների մեծ մասը ունեն նմանատիպ քորոցներ, ինչպես վերը նշվածը: Նրանք գալիս են տարբեր քանակությամբ պահեստներով, բայց դրանք բոլորին հասանելի են նույն կերպ: Քանի որ AT24C32- ն արդեն զոդված է գրատախտակին, այն կարող է օգտագործվել անմիջապես արտաքին RTC- ի I2C- ից:
Եթե ունեք միայն 24C256 IC կամ նման այլ բան, կարող եք այն տեղադրել հացի տախտակի մեջ, A1, A2 և A3- ը միացնել Gnd- ին, Vcc- ին `3.3V- ին և SDA AND SCL- ին` I2C- ին, WP- ն կարող է լողացող մնալ: Որոշ EEPROM IC- ներ գործում են միայն 5V- ով, այնպես որ նախ ստուգեք համապատասխան տվյալների թերթիկը:
ByteWR.lua- ն գրում է 1 բայթ տվյալներ EEPROM- ի 0x00 հիշողության վայրում և հետ կարդում դրանք:
Desiderata.lua- ն մի քանի տող է գրում հայտնի տեքստից մինչև EEPROM:
eeRead.lua- ն կարդում է EEPROM- ի տվյալները և տպում դրանք:
Նշում. Այս ծրագրերը պետք է աշխատեն նաև այլ EEPROM տախտակների հետ:
Քայլ 7: Եզրակացություն
Ես փորձել եմ ցույց տալ, թե ինչպես են աշխատում RTC- ն և EEPROM- ը տվյալների գրանցման համար: Սա պարզապես սկիզբ է ձեզ համար `հետագա զարգացման համար: I2C ավտոբուսին կարող եք միացնել տարբեր սարքեր, ինչպիսիք են լույսի տվիչները, բարոմետրիկ ճնշման տվիչները, ջերմաստիճանի և խոնավության տվիչները և գրանցել տվյալները EEPROM- ում:
Խորհուրդ ենք տալիս:
DS3231 RTC (Իրական ժամանակի ժամացույց) ճշգրիտ, արագ և ավտոմատացված ՝ օգտագործելով Java (+-1s) ՝ 3 քայլ

DS3231 RTC (Իրական ժամանակի ժամացույց) ճշգրիտ, արագ և ավտոմատացված օգտագործելով Java- ն (+-1s). Այս հրահանգը ցույց կտա ձեզ, թե ինչպես ժամանակ սահմանել DS3231 իրական ժամանակի ժամացույցի վրա `օգտագործելով Arduino և մի փոքր Java ծրագիր, որն օգտագործում է Arduino- ի սերիական կապը: Այս ծրագրի հիմնական տրամաբանությունը. Arduino- ն սերիական հարցում է ուղարկում
DS1307 Իրական ժամանակի ժամացույց RTC Arduino- ով. 4 քայլ

DS1307 Իրական ժամանակի ժամացույց RTC Arduino- ի հետ. Այս ձեռնարկում մենք կիմանանք իրական ժամանակի ժամացույցի (RTC) և այն մասին, թե ինչպես է Arduino & Իրական ժամանակի ժամացույց IC DS1307- ը միասին դրված է որպես ժամանակացույցի սարք: Իրական ժամանակի ժամացույցը (RTC) օգտագործվում է ժամանակի մոնիտորինգի և օրացույցի պահպանման համար: RTC- ի օգտագործման համար w
Arduino- ի վրա հիմնված ժամացույց ՝ օգտագործելով DS1307 իրական ժամանակի ժամացույց (RTC) մոդուլ և 0.96: 5 քայլ

Arduino- ի վրա հիմնված ժամացույց ՝ օգտագործելով DS1307 Իրական ժամանակի ժամացույց (RTC) մոդուլ և 0.96. Բարև տղերք, այս ձեռնարկում մենք կտեսնենք, թե ինչպես պատրաստել աշխատանքային ժամացույց ՝ օգտագործելով իրական ժամանակի DS1307 ժամացույցի մոդուլ և AMP; OLED էկրաններ: Այսպիսով, մենք կկարդանք ժամանակը ժամացույցի մոդուլից DS1307: Եվ տպեք այն OLED էկրանին
M5stick C- ով ժամացույց պատրաստելը `օգտագործելով Arduino IDE - RTC Իրական ժամանակի ժամացույց M5stack M5stick-C: 4 քայլ

M5stick C- ով ժամացույց պատրաստելը `օգտագործելով Arduino IDE | RTC Իրական ժամանակի ժամացույց M5stack M5stick-C- ով: Ողջույն, այս հրահանգների ընթացքում մենք կսովորենք, թե ինչպես պատրաստել ժամացույց m5stack- ի m5stick-C մշակումով Arduino IDE- ով: Այսպիսով, m5stick- ը կցուցադրի ամսաթիվ, ժամ և AMP; ամսվա շաբաթը ցուցադրվում է
Ինչպես պատրաստել իրական ժամանակի ժամացույց Arduino- ի և TFT ցուցադրման միջոցով - Arduino Mega RTC 3.5 դյույմանոց TFT էկրանով. 4 քայլ

Ինչպես պատրաստել իրական ժամանակի ժամացույց Arduino- ի և TFT ցուցադրման միջոցով | Arduino Mega RTC 3.5 դյույմանոց TFT էկրանով. Այցելեք իմ Youtube ալիքը: Ներածություն. 2560 և DS3231 RTC մոդուլ