Orodha ya maudhui:
- Hatua ya 1: Google Time
- Hatua ya 2: Seva za Muda wa SNTP
- Hatua ya 3: Kupata Wakati Kutoka kwa Moduli ya RTC
- Hatua ya 4: Kumbukumbu ya Mtumiaji wa RTC
- Hatua ya 5: Moduli za nje za RTC
- Hatua ya 6: Kuingia kwa Takwimu
- Hatua ya 7: Hitimisho
Video: NODEMCU Lua ESP8266 Pamoja na Saa Saa Saa (RTC) & EEPROM: Hatua 7
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:51
Kupata wakati sahihi ni muhimu ikiwa unataka kuweka kumbukumbu ya data. Kuna njia anuwai za kupata wakati kutoka kwa vyanzo kwenye wavuti.
Unaweza kuuliza kwanini usitumie ESP8266 kuweka wakati kwako? Vizuri unaweza, ina RTC yake ya ndani (Saa Saa Saa), lakini ESP8266 ina masafa 3 tofauti ya saa za kufanya kazi - 52MHz wakati inavu, 80MHz wakati wa operesheni ya kawaida, na 160MHz ikiwa imeongezwa. Ikiwa unahitaji utunzaji wa wakati sahihi zaidi, haswa kwa vipindi virefu, basi RTC ya nje inaweza kutoa suluhisho. Moduli hizi pia zina nakala rudufu ya betri ikiwa utapoteza nguvu. RTC sio sahihi sana kwani inahesabu wakati uliopita tangu ilipowekwa na ingawa inaweza kufanya kwa programu nyingi, inaweza kuwa haitoshi kwa utunzaji wa wakati muhimu. Inawezekana kupata wakati sahihi kutoka kwa seva ya muda ya SNTP ambayo RTC inaweza kusasishwa mara kwa mara ikiwa inahitajika.
Moduli ya DS1307 Tiny RTC I2C (juu) ni mfano wa vitu hivi na inaweza kununuliwa kwenye Ebay na wauzaji wengine kwa chini ya £ 2. Pia kuna zingine kama DS1302 na DS3231 ambazo zinafanya kazi kwa njia sawa na zinagharimu kutoka 99p kwenda juu.
Moduli ya DS1307 inatumia kiolesura cha I2C na kwa ESP-01 inapaswa kushikamana kama:
Vcc - 3.3v, Gnd - Gnd, SDA - D3, SCL - D4
SDA na SCL zinaweza kushikamana na pini yoyote ya I / O kwenye ESP8266 kubwa (badilisha nambari ipasavyo). Pini za upande wa kushoto tu zinahitaji kuunganishwa kwenye moduli hii.
Hatua ya 1: Google Time
Kuna mifano mingi ya kupata wakati kutoka Google na angalia kitu kama hiki. Unapoendesha programu ya GoogleTime.lua unapata matokeo kama haya:
dofile ("GoogleTime.lua")> Wakati: Ijumaa, 15 Desemba 11: 11: 45: 45 GMT
Shida ya njia hii ni kwamba unapata wakati katika muundo wa kamba na lazima ugawanye kamba ndani ya vipande vyake vya kibinafsi kwa masaa, dakika, sekunde nk RTC inakubali wakati katika muundo maalum yaani stempu ya wakati wa UNIX. Kwa maneno ya kawaida, hii ndio idadi ya sekunde ambazo zimepita tangu Alhamisi 1 Januari 1970 hadi leo na wakati. Enzi ya UNIX (1970/01/01 00:00:00) inatumiwa na mifumo mingi ya uendeshaji wa kompyuta na muda uliopita umehifadhiwa kama nambari 32 iliyosainiwa. Hii inamaanisha kuwa mfumo huu utafanya kazi hadi 19 Januari 2038 wakati idadi itakuwa kubwa sana kuweza kuhifadhi hivi. Suluhisho moja ni kuhifadhi nambari kama biti 64, lakini kwa sasa njia 32 kidogo itatosha.
Kuweka wakati hadi 2015 Julai 9, 18:29:49 kwenye RTC ya ndani utatumia laini hii ya nambari:
wakati wa wakati. (1436430589, 0)
Vigezo 2 ni sekunde na sekunde ndogo.
Unaweza kupata habari zaidi ukisoma Hati ya NodeMCU.
Hatua ya 2: Seva za Muda wa SNTP
Itifaki Rahisi ya Mtandao (SNTP) hutolewa kutoka vyanzo vingi kwenye mtandao, na nchi nyingi ulimwenguni kote zina huduma hii.
Programu, SNTPTime2.lua inaweka wakati kwenye RTC ya ndani. Unahitaji kuwa na moduli za rtctime & sntp katika muundo wako wakati utawasha ESP8266 yako. Programu inapata wakati kutoka kwa seva kwa sekunde na sekunde ndogo na inaweka RTC ya ndani na rtctime.set (sec, usec).
Programu hiyo inaonyesha tarehe na wakati katika muundo tofauti.
Kuna seva nyingi za SNTP ulimwenguni kote na zingine ni kama ifuatavyo.
- 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"},
Mistari yote hapo juu ya nambari inaweza kubadilishwa katika mpango wa SNTPTime2.lua.
Kuna seva nyingi za SNTP kwenye anwani zilizo chini ambazo zinaweza kutumika tena katika programu.
93.170.62.252, 130.88.202.49, 79.135.97.79, ntp.exnet.com
Google pia hutoa seva za wakati kwenye anwani hizi:
216.239.35.0, 216.239.35.4, 216.239.35.8, 216.239.35.12
Unahitaji kukumbuka kupata wakati kutoka kwa nchi uliyopo au unaweza kuibadilisha kwa maeneo tofauti ya wakati wa ulimwengu. Pia nchi zingine zina wakati wa kuokoa mchana, kwa hivyo unaweza pia kushughulika na hiyo pia.
Hatua ya 3: Kupata Wakati Kutoka kwa Moduli ya RTC
Mpango GetRTCTime.lua inasoma wakati kutoka kwa RTC ya ndani.
Sehemu ya kwanza inasoma wakati na kuionyesha kwa sekunde na microseconds.
Sehemu ya pili inabadilisha kuwa fomati inayoweza kusomeka zaidi kwa wanadamu.
wakati wa kupiga simu tm = rtctime.epoch2cal (rtctime.get ()) inarudi:
- mwaka - 1970 ~ 2038
- mwezi - mwezi 1 ~ 12 katika mwaka wa sasa
- siku - siku 1 ~ 31 katika mwezi wa sasa
- saa
- dakika
- sec
- siku - siku 1 ~ 366 katika mwaka wa sasa
- wday - siku 1 ~ 7 katika wiki ya sasa (Jumapili ni 1)
Kila kitu kinaweza kupatikana kama tm ["siku"], tm ["mwaka"]…
Unaweza kupata habari zaidi ukisoma Hati ya NodeMCU.
DisplaySNTPtime.lua ni njia ya kufafanua zaidi ya kuonyesha tarehe na wakati kwenye onyesho la LCD 128 x 64 OLED, kwani imeunganishwa kwa urahisi na inaweza kutumika na programu hizi.
Hatua ya 4: Kumbukumbu ya Mtumiaji wa RTC
Kubadilisha kidogo kutoka kwa utunzaji wa muda ni RTC ya ndani kwenye ESP8266 ina anwani za kumbukumbu za 128 x 32 ambazo zinaweza kupatikana na programu. Ni muhimu sana kwani zinaweza kuishi katika mzunguko wa usingizi mzito wa ESP8266. Ni juu ya programu kudhibiti matumizi yao na kuhakikisha kuwa hayakuandikwa tena kwa bahati mbaya.
Nimejumuisha RTCmem.lua, programu rahisi ambayo inaonyesha matumizi yake. Unahitaji kuwa na moduli ya rtcmem katika muundo wako.
Hatua ya 5: Moduli za nje za RTC
Moduli za nje za RTC zinaunganisha kwenye ESP8266 kupitia kiolesura cha I2C, ambacho hutumia tu pini mbili za I / O na hufanya kazi na ESP-01 na vifaa vingine vingi vya ESP8266.
Anwani ya moduli ya RTC ni 0x68 na inapatikana kwa kutumia amri za kawaida za I2C. Kuna, hata hivyo, kuna kitu cha kuzingatia, data katika rejista za RTC imehifadhiwa katika muundo wa BCD (msingi 16), kwa hivyo mipango yako inapaswa kushughulika na hii. Wakati na tarehe zimehifadhiwa katika rejista 7 ndani ya RTC. Kwenye RTC ya ndani, mabadiliko ya BCD yanatunzwa na moduli ya rtctime.
SetExtRTC.lua inabadilisha data kuwa BCD na kuweka wakati.
ReadExtRTC.lua inasoma data ya wakati na kuichapisha. KUMBUKA: data imechapishwa kwa hexadecimal.
Sijatumia muda mwingi kupangilia maonyesho kwani unaweza kuwa na maoni yako mwenyewe juu ya kile unachotaka kufanya na tarehe na saa. Hii ndio injini ya kimsingi katika hali rahisi, ili uweze kuikuza zaidi ikiwa unataka.
Hatua ya 6: Kuingia kwa Takwimu
Ukiangalia kwa karibu moduli za RTC, utagundua kuwa zina AT24C32 EEPROM IC au sawa iliyojengwa ndani yao, au unaweza kutumia bodi ya 24C256 kama hapo juu. Zaidi ya hizi IC za EEPROM zina njia sawa za pini kama hapo juu. Wanakuja na kiasi anuwai cha uhifadhi, lakini wote wanapatikana kwa njia ile ile. Kwa kuwa AT24C32 tayari imeuzwa kwenye bodi, inaweza kutumika moja kwa moja kutoka kwa I2C ya RTC ya nje.
Ikiwa una tu 24C256 IC au sawa, unaweza kuiweka kwenye bodi ya mkate, unganisha A1, A2 na A3 hadi Gnd, Vcc hadi 3.3V na SDA NA SCL hadi I2C, WP inaweza kushoto ikielea. Baadhi ya IC za EEPROM hufanya kazi kwa 5V tu, kwa hivyo angalia kwanza karatasi ya data inayofaa.
ByteWR.lua inaandika 1 ka data kwa eneo la kumbukumbu 0x00 ya EEPROM na kuisoma tena.
Desiderata.lua anaandika mistari michache kutoka maandishi maarufu hadi EEPROM.
eeRead.lua inasoma data kutoka EEPROM na kuichapisha.
KUMBUKA: Programu hizi zinapaswa kufanya kazi na bodi zingine za EEPROM pia.
Hatua ya 7: Hitimisho
Nimejaribu kuonyesha jinsi RTC na EEPROM inavyofanya kazi kwa ukataji wa data. Hii ni mwanzo tu kwako kukuza zaidi. Unaweza kuunganisha vifaa anuwai kwenye basi ya I2C kama sensorer nyepesi, sensorer ya shinikizo la kibaometri, sensorer ya joto na unyevu na rekodi data kwenye EEPROM.
Ilipendekeza:
Saa ya Mtandao ya ESP8266 bila RTC yoyote - Saa ya Nodemcu NTP Hakuna RTC - MRADI WA BAHATI YA MTANDAO: Hatua 4
Saa ya Mtandao ya ESP8266 bila RTC yoyote | Saa ya Nodemcu NTP Hakuna RTC | MRADI WA SAA YA MTANDAO
Kuweka DS3231 RTC (Saa Saa Saa) Sahihi, Haraka na Kujiendesha Kutumia Java (+ -1s): Hatua 3
Kuweka DS3231 RTC (Saa Saa Saa) Sahihi, Haraka na Kujiendesha Moja kwa Moja Kutumia Java (+ -1s): Hii inayoweza kufundishwa itaonyesha jinsi ya kuweka wakati kwenye Saa Saa ya DS3231 kwa kutumia Arduino na programu ndogo ya Java inayotumia uhusiano wa serial wa Arduino. Mantiki ya kimsingi ya programu hii: 1. Arduino hutuma ombi la mfululizo
DS1307 Saa Saa Saa RTC Na Arduino: Hatua 4
DS1307 Saa Saa Saa RTC Na Arduino: Katika Mafunzo haya, tutajifunza juu ya Saa Saa Saa (RTC) na jinsi Arduino & Saa Saa Saa IC DS1307 imewekwa pamoja kama kifaa cha wakati.Real Time Clock (RTC) hutumiwa kwa ufuatiliaji wa wakati na kudumisha kalenda.Ili kutumia RTC, w
Saa ya Arduino inayotumia DS1307 Moduli ya Saa Saa (RTC) & 0.96: 5 Hatua
Saa ya Arduino inayotumia DS1307 Saa Saa Saa (RTC) Moduli & 0.96: Halo jamani katika mafunzo haya tutaona jinsi ya kutengeneza saa ya kufanya kazi kwa kutumia moduli ya saa halisi ya DS1307 & Maonyesho ya OLED Kwa hivyo tutasoma wakati kutoka kwa moduli ya saa DS1307. Na ichapishe kwenye skrini ya OLED
Kutengeneza Saa na M5stick C Kutumia Arduino IDE - RTC Saa Saa Saa Na M5stack M5stick-C: Hatua 4
Kutengeneza Saa na M5stick C Kutumia Arduino IDE | RTC Saa Saa Saa Na M5stack M5stick-C: Halo jamani katika mafundisho haya tutajifunza jinsi ya kutengeneza saa na bodi ya maendeleo ya m5stick-C ya m5stack kutumia Arduino IDE.So m5stick itaonyesha tarehe, saa & wiki ya mwezi kwenye maonyesho