Sisukord:
- Samm: Arduino millisekundiliste ajatemplite kasutamine, Millis ()
- Samm: diagrammi lisamine menüüsse
- 3. toiming: graafiku allika ja siltide redigeerimine
- 4. samm: kuupäeva/kellaaja vormingu valimine
- Samm: looge ja katsetage Arduino visandit
- Samm 6: Kuidas PfodApp joonistab Millis () kuupäeva/kellaaja?
- Samm 7: Kuupäeva/kellaaja graafikute reprodutseerimine arvutis
- 8. samm: kuidas vältida 49,7 -päevase milliliitri () piiri ja miks te seda ei peaks tegema
- Samm: reaalajas kella (RTC) kasutamine
- Samm: GPS -mooduli kasutamine
- Samm 11: Järeldus
Video: Arduino kuupäeva/kellaaja joonistamine/logimine, kasutades Millist () ja PfodAppi: 11 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Arduino või Androidi programmeerimine pole vajalik. Toetatud on ka RTC- ja GPS -moodulid. Ajavööndite automaatne korrigeerimine, RTC triiv ja GPS -i puuduvad hüpped
Sissejuhatus
See õpetus näitab teile, kuidas kasutada oma Arduino millis () ajatempleid andmete joonistamiseks kuupäeva ja kellaaja suhtes oma Android -mobiiltelefonis, kasutades pfodAppi.
Arduino ega Androidi programmeerimine pole vajalik. pfodApp logib ka piisavalt andmeid, et saaksite hiljem arvutustabelis kuupäeva ja kellaaja graafikuid hiljem reprodutseerida.
RTC- või GPS -moodulit pole vaja, kuid kui teie Arduino projektil on RTC (reaalajas kell) või GPS -moodul, saab neid ka kasutada. Nendel juhtudel korrigeerivad pfodApp graafikud automaatselt ajavööndit, RTC triivi ja GPS -i puuduvaid hüppesekundeid. Nende paranduste jaoks pole vaja spetsiaalset Arduino koodi. Nagu alati pfodAppi puhul, logitakse vastuvõetud andmed täpselt sellisena, nagu need on, parandamata, kuid logifail sisaldab ka piisavalt teavet, et saaksite neid parandusi ise rakendada, kui logid arvutisse alla laadite. Selle järeltöötluse näiteid leiate allpool.
Toetatakse mitmesuguseid X-telje aja- ja kuupäevavorminguid, mida kõiki juhivad täielikult teie Arduino visandis olevad lühikesed tekstistringid. Androidi programmeerimine pole vajalik.
pfodApp loob ühenduse WiFi, Bluetooth Classic, BLE ja SMS kaudu. Tasuta pfodDesigner genereerib täielikud Arduino visandid kuupäeva/kellaaja joonistamiseks/logimiseks, et ühendada mitmesuguste tahvlitega. Arduino programmeerimine pole vajalik.
See juhendab Arduino näidisplaadina Adafruit Feather52, mis ühendub BLE kaudu.
See juhend hõlmab kolme juhtumit:- 1) teie mikroprotsessoriprojektil on ainult millisekundilised ajatemplid- millis () 2) teie mikroprotsessoriprojektil on reaalajas kell (RTC)- pfodApp parandab automaatselt triivi. 3) Teie mikroprotsessoriprojektil on GPS -moodul - pfodApp parandab automaatselt nende liiga lühikesi sekundeid (praegu 18 sekundit 2018. aasta seisuga).
Samm: Arduino millisekundiliste ajatemplite kasutamine, Millis ()
Kuupäeva ja kellaaja millisekundite kasutamiseks on kaks osa. Üks neist on mõeldud andmete joonistamiseks kas möödunud aja või kuupäeva/kellaaja suhtes ning teine osa loob kuupäeva ja kellaaja uuesti logitud toorandmete millisekundiliste ajatemplite põhjal. pfodApp ei muuda pfodDevice'ilt (Arduino mikro) saadud algandmeid. See lihtsalt logib täpselt saadud baidid.
Esmalt kasutage tasuta pfodDesignerit, et luua oma mikro jaoks Arduino visand, mis saadab millisekundid ja andmete mõõtmised pfodAppile joonistamiseks/logimiseks. See näide loob menüü Adafruit Feather 52 BLE tahvlile, millel on A0. Õpetus Adafruit Feather nRF52 LE kohta - kohandatud juhtnupud pfodAppiga läbib pfodDesigneri sammud, et luua Feather nRF52 menüü, mis sisaldab nuppu Diagramm, seega vaadake selle kohta lisateavet. Selles õpetuses lisame lihtsalt diagrammi nupu ja kasutame uusi X-telje vormindamisvalikuid, et joonistada A0 näidud kulunud aja ja kuupäeva/kellaaja suhtes.
Selle õpetuse esimene osa läheb tasuta pfodDesigneri abil oma Android -mobiiltelefoni kuupäeva/kellaaja diagrammi loomiseks. Kui olete ekraaniga rahul, saate luua Arduino visandi, mis taasesitab seda pfodAppiga ühenduse loomisel. Androidi programmeerimine pole vajalik ja kuna pfodDesigner genereerib täielikud Arduino visandid paljude Arduino tahvlite jaoks, pole vaja ka Arduino programmeerimist.
Samm: diagrammi lisamine menüüsse
Laadige Google Playst alla rakendus pfodDesigner, avage see ja klõpsake nuppu „Alusta uut menüüd“
Umbes 11 BLE -plaadi loendi kuvamiseks klõpsake nuppu „Target Serial” ja seejärel nuppu „Bluetooth Low Energy” (muude valikute vaatamiseks kerige alla). Valige Adafruit Bluefruit Feather52.
Minge tagasi redigeerimismenüüsse ja klõpsake “Edit Prompt” ning määrake selle menüü jaoks sobiv viip, nt. “Feather52” ja tekst paksus kirjas ja suurus +7. Taustvärv jäeti vaikimisi valgeks
Minge tagasi ja klõpsake nuppu "Lisa menüüelement", kerige alla ja valige "Diagrammi nupp", mis avab diagrammi nuppude redigeerimise ekraani. Siin saate nupu välimust muuta. Sel juhul muudeti nupu tekstiks „A0 kuupäeva/kellaaja graafik” ja muud vaikeseaded jäeti samaks.
See annab teile menüüs nupu, mis avab diagrammi ekraani.
3. toiming: graafiku allika ja siltide redigeerimine
Klõpsake nupul „A0 kuupäeva/kellaaja graafik”, et avada graafikute redigeerimise ekraan, kus pääsete juurde diagrammi sildile, X-telje vormingule, graafiku andmete intervallile ja (alla kerides) graafiku seadistustele. Redigeerige diagrammi silt sobivaks, nt "A0 volti".
Kerige alla ja jooniste 2 ja 3 jaoks avage käsk Redigeeri graafikut ja klõpsake nuppu Peida graafik, et need diagrammiekraanilt eemaldada.
Seejärel klõpsake nuppu „Redigeeri graafikut 1” ja määrake joonise silt (nt A0), yAxis ühikud (nt voltid), kuvage maksimaalselt 3,6 V ja ühendage sisend-/väljundpistikuga A0.
Kerige tagasi üles ja klõpsake „Diagrammi eelvaade”, et kuvada 1 sekundi intervalliga uusimad 0 näidisandmepunkti, mis on joonistatud kulunud aja ja minutite: sekundite vahel.
Kõigi möödunud aja graafikuid ei kuvata nullühikute ees, nii et selles graafikus kuvatakse ainult need ajad, mis on> 1 min, juhtminutid.
4. samm: kuupäeva/kellaaja vormingu valimine
Möödunud aja graafikute puhul juhtiv üksus aja jooksul lihtsalt suureneb. Selle näite vaatamiseks minge tagasi ekraanile „Graafikute redigeerimine” ja suurendage graafikuandmete intervalli 15 minutini (selle ekraani allosas)
Seejärel klõpsake diagrammi eelvaadet, et kuvada samad prooviandmed, kuid nüüd 15 -minutilise intervalliga proovide vahel. Nagu näete minutite osa mm: ss muudkui suureneb.
Nüüd minge tagasi ja klõpsake X-telje nuppu, et kuvada väike valik kõigist võimalikest X-telje andmete/aja vormingutest (lisateabe saamiseks kerige alla)
Eespool on valik diagrammide eelvaateid, mis kasutavad erinevaid X-telje vorminguid.
Siin näidatud kuupäeva/kellaaja graafikud on kohalikus ajavööndis. Kuupäeva/kellaaja kuvamiseks UTC -s on ka vorminguvõimalusi. Kuupäeva/kellaaja võimalike vorminguvõimaluste täieliku komplekti leiate jaotisest pfodSpecification.pfd.
Samm: looge ja katsetage Arduino visandit
Kui olete oma diagrammi vormingu ja andmeintervalliga rahul, võite minna ekraanile „Redigeerimismenüü_1” ja kerida alla ning valida valitud sihtlaua jaoks „Loo kood”. Siin on näidisvisand Adafruit Feather52 jaoks, kasutades 1 -sekundilisi andmeintervalle ja mm: ss möödunud aja vormingut, pfodFeather52_timeplot.ino
Eespool on Feather52 maatükk A0
Vormingu muutmine nädalapäevale hr: mins: sec (~ E HH: mm: ss) ja koodi uuesti genereerimine (pfodFeather52_dateplot.ino) annab joonise nagu ülaltoodud.
X-telje vormingut saate redigeerida otse oma Arduino visandis, nagu allpool kirjeldatud.
Samm 6: Kuidas PfodApp joonistab Millis () kuupäeva/kellaaja?
Kui pfodApp loob ühenduse, mäletab ta oma kohalikku ja UTC aega ning küsib pfodDevice'i (Arduino plaadi) praeguste graafikute andmete ajatempleid. Seda teavet kasutades saab pfodApp seejärel joonistada millisekundilised ajatemplid kas möödunud ajana, st teisendada millisekundid tundideks minutiteks jne, või joonistada kuupäeva ja kellaaja, mille millisekundilised ajatemplid tähistavad ühenduse loomise ja pfodDevice praeguse kellaaja kohta.
Vaadates Arduino loodud visandit (nt pfodFeather52_dateplot.ino), on kolm väikest koodibitti, mis käsitlevad graafikute Arduino poolt.
Tsükli () koodiosa, mis haldab pfodAppi {@} praeguse aja päringut
// käsitseda {@} päringut} else if ('@' == cmd) {// pfodApp taotles 'current' time plot_mSOffset = millis (); // jäädvusta praegused millid nihutatud toorandmete ajatemplite parser.print (F ("{@` 0} ")); // tagastab '0' praeguste 'toorandmete millisekunditena
Võiksite lihtsalt tagastada praeguse väärtuse millis (), kuid millis () liigub iga 49,7 päeva tagant tagasi nulli, mis paneks graafiku tagurpidi hüppama. Seega mäletab kood selle asemel praegust millis () väärtust, kui {@} päring esitati, ja tagastab väärtuse {@`0}, st praegune null millisekundiline ajatempel. Seejärel kasutab eskiis lähteandmete saatmisel visandit
plot_1_var = analogRead (A0); // sisendi lugemine graafikule // plot_2_var graafik Peidetud, nii et siia pole andmeid määratud // plot_3_var graafik Peidetud, nii et siin pole andmeid määratud // krundiandmete saatmine CSV-vormingus parser.print (millis ()-plot_mSOffset); // aeg millisekundites ….
nii et andmetega saadetud millisekundiline ajatempel algab 0 -st ja suureneb kuni 49,7 päeva. Kui hoiate 49,7 päeva pidevalt ühenduses, näete, et graafik hüppab tagasi ~ 50 päeva. Ühenduse katkestamine ja uuesti ühendamine kord 49,7 päeva jooksul väldib seda.
Kuupäeva/kellaaja graafiku kolmas osa on graafiku sõnum.
} else if ('A' == cmd) {// kasutaja vajutas - 'Date/Time plot of A0' // // Menu_1 peamenüüs // // return ploting msg. parser.print (F ("{= A0 volti ~ E HH: mm: ss | kuupäev | A0 ~~~ volti ||}"));
Kui kasutaja vajutab nuppu „A0 kuupäeva/kellaaja graafik”, saadab pfodApp cmd seadmele {p} pfodDevice ja pfodDevice vastab graafiku sõnumiga, {=… {= A0 volti ~ E HH: mm: ss | date | A0 ~~~ Voldid ||}, mis sisaldab X-telje vormingut E HH: mm: ss
Java SimpleDateFormat vormingud on siin vastuvõetavad. pfodApp Data Logging and Plotting ja pfodSpecification.pdf sisaldavad graafiku kohta rohkem üksikasju.
Samm 7: Kuupäeva/kellaaja graafikute reprodutseerimine arvutis
Vaikimisi logib pfodApp kõik sissetulevad toorandmed teie mobiiltelefoni logifaili, välja arvatud juhul, kui olete ühenduse muutmise ekraanil selle sisselogimise keelanud, vt pfodAppForAndroidGettingStarted.pdf
Kui redigeerite pfodApp, kuvatakse lühiteade logifaili asukoha ja nimega, nt. /pfodAppRawData/pfod_bluefruit52.txt See fail on CSV -vormingus, eraldatud komaga ja pärast selle arvutisse ülekandmist (vt ülekandevõimalusi vt pfodAppForAndroidGettingStarted.pdf), saate selle andmete kuvamiseks avada arvutustabelis.
Siin on logifaili esimesed read.
// pfodApp V3.0.360, kohalik aeg, UTC, mS päevas, pfod bluefruit52 praegune aeg (mS), pfod bluefruit52 praegune aeg, // ühendatud kell, 2019/04/20 11:32: 50.238, 2019/04/20 01: 32: 50.238, 86400000, 0, 366, 0.25,, 1366, 0.29,, 2366, 0.31,, 3366, 0.33,, 4366, 0.33,, Eespool näete kohalikku ja UTC aega, mille pfodApp ühendas Feather52 -ga, ja praegust aega mS -is, millest Feather52 teatas vastuse {@..} kaudu. Viimane veerg on tühi, kuna puudub RTC või GPS ja seega ei teatanud Feather52 praegust aega aaaa/kk/pp aega.
Andmete joonistamiseks kulunud aja kohta lahutage millisekundilisest ajatemplist praegune aeg (mS) ja jagage seejärel mS päeva väärtusega. Siin on arvutustabel, millele on lisatud valem ja joonistatud tulemus. Allpool olev arvutustabel (pfod_bluefruit52.xls) on Exceli vormingus salvestatud OpenOffice'i arvutustabel.
OpenOffice'is on graafik hajumisgraafik ja graafiku x-telg on vormindatud HH: MM: SS Märkus: arvutustabeli kuupäeva/kellaaja vormingud EI OLE samad, mida pfodApp kasutab. Näiteks pfodAppis on MM kuud ja mm minutid.
Kuupäeva ja kellaajaga graafiku koostamiseks peate arvutustabeli ajale lisama ainult ühenduse aja ja replotima. (pfod_bluefruit52_date.xls)
Märkus. Kohalik aeg ja UTC imporditi minu arvutustabelisse tekstina, nii et enne valemis kasutamist pidin eemaldama esikülje.
8. samm: kuidas vältida 49,7 -päevase milliliitri () piiri ja miks te seda ei peaks tegema
Nagu eespool mainitud jaotises Kuidas pfodApp joonistab kuupäeva/kellaaja millis ((?))?, Kui jääte pidevalt ühendusse kauemaks kui 49,7 päevaks, keeratakse millisekundilised ajatemplid tagasi nulli. Mõni koodirida võib seda vältida, kuid see pole soovitatav.
Esiteks, kuidas vältida mähkimist. Lisage veel üks allkirjastamata int muutuja, et jälgida ajatemplite ümbermõõtmiste arvu ja printida kombineeritud tulemus HEX -is.
uint_t mSwrapCount = 0; uint32_t lastTimeStamp = 0;
… Plot_1_var = analogRead (A0); // sisendi lugemine krundile // plot_2_var graafik Peidetud, nii et siia pole andmeid määratud // plot_3_var graafik Peidetud, nii et siin pole andmeid määratud // krundiandmete saatmine CSV-vormingus uint32_t timeStamp = millis ()-plot_mSOffset; if (timeStamp <lastTimeStamp) {// timeStamp pakitud tagasi 0 mSwrapCount ++; // lisa üks loendusse} lastTimeStamp = timeStamp; parser.print ("0x"); parser.print (msWrapCount, HEX); parser.print (timeStamp, HEX); // aeg millisekundites HEX -is….
Vastuse {@.. tagastamisel tühjendage ka mSwrapCount.
// käsitseda {@} päringut} else if ('@' == cmd) {// pfodApp taotles 'current' time plot_mSOffset = millis (); // jäädvustada praegused millisekundid nihutatud toorandmete ajatemplitena mSwrapCount = 0; // selge ümbriste arv. parser.print (F ("{@` 0} ")); // tagastab '0' praeguste 'toorandmete millisekunditena
Ajatemplid annavad nüüd järgmise 40,7 päeva * 65536 ~ = 7308 aasta jaoks õige väärtuse.
pfodApp teisendab joonistamiseks automaatselt kuusnurkse ajatemplid ja logib need täpselt vastuvõetud kujul, s.o kuuekuuliseks. Arvutustabelis (OpenOffice) kasutate seda valemit, et teisendada kuusnurkne string A2 -s mS -ks (kus A1 on tühi lahter) = HEX2DEC (VAHETA (A2; 1; 2; A1))
Miks sa ei taha seda teha
Nagu ülalpool näidatud, on mS -i ajatempleid lihtne pikendada pikemaks kui 50 päeva. Kuid tõenäoliselt ei taha te seda teha, sest need muutuvad üha ebatäpsemaks. Tüüpiline 16Mhz kristall, mida kasutatakse millis () tulemuste loomiseks, on mikro täpsusega ~ 50 ppm (miljondikosa). See tähendab, et 49,7 päeva pärast võib millisekundiline ajatempel olla 3½ minuti pärast väljas ja see eirab temperatuuri mõju kristalli täpsusele.
Lühikeste ühendusperioodide jooksul ei ole see ebatäpsus probleem, kuna vastus {@.. sünkroonib millisekundilise ajatempli uuesti mobiilseadme kuupäeva/kellaajaga igal uuesti ühendamisel. Kui soovite aga pikka aega (päeva) ühenduses olla ja andmeid pidevalt logida, peaksite kasutama midagi täpsemat kui sisseehitatud millis (), näiteks RTC- või GPS-moodulit.
Samm: reaalajas kella (RTC) kasutamine
Saadaval on hulk RTC mooduleid, üks täpsemaid on DS3231 nt. Adafruit'i DS3231 moodul. Määratud täpsus on +/- 2 ppm 0 kuni 40 ° C juures. st ~ +/- 5 sekundit kuus.
Kui soovite joonistada andmeid, millel on kuupäeva/kellaaja ajatemplid, nt. 2019/04/19 20: 4: 34, siis peate praeguse kuupäeva/kellaaja tagastamiseks muutma {@ vastust, nt {@`0 ~ 2019/4/19 3: 33: 5}. Siin on mõned näidiskoodimuudatused, mida rakendada pfodDesigneri loodud visandile RTC -mooduli kasutamiseks, eeldusel, et kasutate RTClibi teeki ja olete lisanud koodi RTC -mooduli lähtestamiseks.
// käsitseda {@} päringut} else if ('@' == cmd) {// pfodApp taotles 'current' time plot_mSOffset = millis (); // jäädvusta praegused millid nihkega toorandmete ajatemplite parser.print (F ("{@` 0 "}); // tagasta '0 kui' praegused 'toorandmed millisekundite parser.print (' ~ '); // algusstring date/time DateTime now = rtc.now () sendDateTime (& now); // send yyyy/M/d/H: m: s to parser.print, pass address & as arg. parser.print ('}'); // {@ vastuse lõpp nt {@ `0 ~ 2019/4/19 3: 33: 5}….
// saata kuupäev ja kellaaeg parserile printvoid sendDateTime (DateTime* dt) {parser.print (dt-> aasta (), DEC); parser.print ('/'); parser.print (dt-> kuu (), DEC); parser.print ('/'); parser.print (dt-> päev (), DEC); parser.print (''); parser.print (dt-> tund (), DEC); parser.print (':'); parser.print (dt-> minut (), DEC); parser.print (':'); parser.print (dt-> teine (), DEC); }
void sendData () {if (plotDataTimer.isFinished ()) {plotDataTimer.repeat (); // taaskäivita krundiandmete taimer, ilma triivita // määrake oma silmuse muutujatelt graafiku muutujatele väärtused või lugege ADC sisendeid plot_1_var = analogRead (A0); // sisendi lugemine graafikule // plot_2_var graafik Peidetud, nii et siin pole andmeid määratud // plot_3_var graafik Peidetud, nii et siin pole andmeid määratud // krundiandmete saatmine CSV -vormingus KuupäevKell nüüd = rtc.now (); sendDateTime (& nüüd); // saata yyyy/M/d/H: m: s parserile. print, edasta aadress ja arg. parser.print (','); parser.print (((float) (plot_1_var - plot_1_varMin)) * plot_1_scaling + plot_1_varDisplayMin); parser.print (','); // Krunt 2 on peidetud. Andmeid ei saadetud. parser.print (','); // Krunt 3 on peidetud. Andmeid ei saadetud. parser.println (); // CSV -andmekirje lõpp}}
~ 2019/4/19 3: 33: 5 osa vastusest {@ annab pfodAppile teada, milline on pfodDevice arvates praegune kuupäev ja kellaaeg. Teie eskiis saab seejärel saata andmeid yMd Hms ajatemplitega ja pfodApp joonistab need vastavalt ühenduse ajast möödunud ajale VÕI kuupäevaks ja kellaajaks, sõltuvalt teie määratud X-telje vormingust.
Kuupäeva ja kellaaja järgi joonistades parandab pfodApp graafikurežiim RTC mis tahes triivi, võrreldes pfodDevice'i teatatud praegust aega mobiiltelefoni praeguse ajaga. See parandus tegeleb ka sellega, et RTC seadistatakse teie mobiiltelefoni kohalikust ajavööndist erinevale ajavööndile. millis () ajatemplid töötavad jätkuvalt nagu ülaltoodud etapis Arduino millisekundiliste ajatemplite kasutamine.
Siin on näide arvutustabelist toatemperatuuride kohta kaheksa päeva jooksul, Office_Temp.xls Logifaili importimisel märgiti esimene veerg YMD -ks, et teisendada tekst kuupäevaks/kellaajaks. Peate ikkagi eemaldama juhtivast vormist kohaliku aja, UTC ja Office Temp praeguse aja sisestused, et arvutustabel tõlgendaks neid kuupäevade ja kellaaegadena.
Sama graafiku saamiseks, mida pfodApp näitab, peate arvutama “Parandatud kuupäev/kellaaeg”. Sel juhul jääb RTC aeg 2 sekundit maha mobiilseadme kohalikust ajast, seega lisatakse igale RTC ajatemplile (kohalik aeg - Office Temp praegune aeg), et saada tõeline kohalik aeg.
Möödunud aja graafikute jaoks looge uus veerg, mis sisaldab (kuupäeva/kellaaja ajatemplit-Office'i ajahetke praegust aega) ja kasutage seda diagrammi X-teljena (Office_TempElapsed.xls) Tegelikult toodab sel juhul pfodApp kenamad möödunud aja diagrammid päevades h: min: sek.
Samm: GPS -mooduli kasutamine
GPS -mooduli kasutamine on sarnane RTC -mooduli kasutamisega, välja arvatud see, et GPS -moodulitel on saadaval millisekundeid, aastad algavad aastast 2000 ja kellaajast puuduvad UTC hüpp -sekundid (vt https://tycho.usno.navy.mil/leapsec.html) GPS -i kuupäev ja kellaaeg on 2018. aasta jaanuari seisuga praegu 18 sekundit enne UTC -d.
Erinevalt RTClibist ei lisa Adafruit Ultimate GPS -i jaoks mõeldud Adafruit GPS -i teek erinevalt RTClibist 2000 -aastase nihkega GPS -i aastatesse, nii et see tuleb lisada kuupäeva ja kellaaja ajatempli saatmisel. Kuigi GPS -raamatukogu pakub millisekundeid, millel on väga hea pikaajaline täpsus, ei ole need siiski väga täpsed. GPS -i ajavärskendusi tehakse ainult üks kord iga 100 mS järel ja seejärel on seeriaandmete vastuvõtmine aeglase 9600 baudiga täiendava viivitusega ning selle parsimisel veel üks viivitus. Kõik see lisab millimeetrise täpsusega andmete lugemise ajatemplit.
Siin on mõned näidiskoodi muudatused, mida rakendada pfodDesigneri loodud skeemile GPS -mooduli kasutamiseks, eeldades, et kasutate Adafruit'i GPS -i teeki ja olete lisanud koodi sõnumite vastuvõtmiseks ja sõelumiseks GPS -objekti.
// käsitseda {@} päringut} else if ('@' == cmd) {// pfodApp taotles 'current' time plot_mSOffset = millis (); // jäädvusta praegused millid nihkega toorandmete ajatemplite parser.print (F ("{@` 0 "}); // tagasta '0 kui' praegused 'algandmed millisekundite parser.print (' ~ '); // algusstring date/time sendDateTime (& GPS); // saatke yyyy/M/d/H: m: s parserile.print, edastage aadress & arg. parser.print ('}'); // {@ response nt {@`0 ~ 2019/4/19 3: 33: 5}….
// saata kuupäev ja kellaaeg parserile printvoid sendDateTime (Adafruit_GPS* gps) {parser.print (F ("20"); // 20.. year parser.print (gps-> year, DEC); parser.print ('/ '); parser.print (gps-> kuu, DEC); parser.print ('/'); parser.print (gps-> päev, DEC); parser.print (' '); parser.print (gps- > tund, DEC); parser.print (':'); parser.print (gps-> minut, DEC); parser.print (':'); parser.print (gps-> teine, DEC); // parser.print ('.'); millisekundite saatmisel // kui soovite mS-i saata, peate gps-> millisekundi väärtuse märkima nullidega // st 3 tuleb polsterdada numbriks 003}
void sendData () {if (plotDataTimer.isFinished ()) {plotDataTimer.repeat (); // taaskäivita krundiandmete taimer, ilma triivita // määrake oma silmuse muutujatelt graafiku muutujatele väärtused või lugege ADC sisendeid plot_1_var = analogRead (A0); // sisendi lugemine graafikule // plot_2_var graafik Peidetud, nii et siin pole andmeid määratud // plot_3_var graafik Peidetud, nii et siin pole andmeid määratud // krundiandmete saatmine CSV -vormingus sendDateTime (& GPS); // saata yyyy/M/d/H: m: s parserile. print, edasta aadress ja arg. parser.print (','); parser.print (((float) (plot_1_var - plot_1_varMin)) * plot_1_scaling + plot_1_varDisplayMin); parser.print (','); // Krunt 2 on peidetud. Andmeid ei saadetud. parser.print (','); // Krunt 3 on peidetud. Andmeid ei saadetud. parser.println (); // CSV -andmekirje lõpp}}
Kuupäeva ja kellaaja järgi joonistades parandab pfodApp automaatselt hüppesekundeid. 2018. aasta jaanuari seisuga on GPS -i aeg UTC -st 18 sekundit ees. pfodApp parandab seda, kui võrrelda GPS -i ühendamisel tagastatud kuupäeva/kellaaega {@ vastuse kaudu mobiiltelefoni UTC kuupäeva ja kellaajaga. Graafikute loomine arvutustabelisse pfodApp logifailist on sama, mis ülaltoodud RTC moodulite puhul. (Kohaliku aja - Office Temp praeguse aja) lisamine GPS -i ajatemplitele parandab hüppesekundeid.
millis () ajatemplid töötavad jätkuvalt nagu ülaltoodud etapis Arduino millisekundiliste ajatemplite kasutamine.
Samm 11: Järeldus
PfodAppi kasutamine Android -mobiilseadmes võimaldab teil andmeid joonistada kuupäeva ja kellaaja või möödunud aja järgi, kasutades ainult Arduino funktsiooni millis (). PfodApp logifaili abil saate need kuupäeva/kellaaja graafikud arvutustabelis uuesti toota. Kui teie Arduino projektil on RTC -moodul, saate logida ja joonistada kuupäeva ja RTC ajatemplid, parandades automaatselt RTC 'triivi'. Kui teie Arduino projektil on GPS -moodul, saate selle ülitäpsed ajatemplid logida ja joonistada ning pfodApp parandab GPS -i puuduvad hüppesekundid automaatselt.
Kõigil juhtudel logitakse teie Arduino projekti lähteandmed täpselt vastuvõetud kujul, parandamata. PfodApp logifail sisaldab aga lisaandmeid, mis võimaldavad teil need parandused uuesti allalaaditud logifailist arvutustabelisse toota.
Androidi kodeerimist pole vaja. Graafikuvormingud on teie Arduino visandis täpsustatud väikeste tekstistringidega. Tasuta pfodDesigner loob täielikud Arduino andmete logimise ja joonistamise visandid mitmesugustele Arduino tahvlitele, mis ühendavad WiFi, klassikalise Bluetoothi, BLE ja SMS -i kaudu
Soovitan:
Kuupäeva ja kellaaja logimine - Liono Maker: 5 sammu
Kuupäeva ja kellaaja logimine | Liono Maker: Sissejuhatus:-Selles õpetuses õpime, kuidas Arduino abil kuupäeva ja kellaaega logida. Selleks kasutan DS3231 & Micro SD -kaardi moodulid. Põhimoodul, mida kasutatakse aja ja amp; kuupäeva logimine on DS3231. DS3231 on RTC (tõeline
Lihtne kaugandmete joonistamine Androidi / Arduino / PfodAppi abil: 6 sammu
Lihtne kaugandmete joonistamine Androidi/Arduino/PfodAppi abil: andmete joonistamiseks kuupäeva ja kellaaja suhtes, kasutades ainult Arduino millisektoreid (), vaadake seda InstructableArduino kuupäeva/kellaaja joonistamise/logimise meetodit Millis () ja PfodApp abil. Androidi mobiil ja jäädvustage see
Kuupäeva, kellaaja ja temperatuuri kuvamine XinaBoxi abil: 8 sammu
Kuupäeva, kellaaja ja temperatuuri näit XinaBoxi abil: jahe OLED -ekraan, mis näitab kuupäeva, kellaaega ja temperatuuri Celsiuse ja Fahrenheiti kraadides, kasutades Xinabox xChips, mis põhineb ESP8266 -l
Kell IR -kaugjuhtimispuldiga kellaaja/kuupäeva seadete jaoks: 5 sammu
Kell IR -kaugjuhtimispuldiga kellaaja/kuupäeva seadete jaoks: see on lihtne kell, mis on valmistatud hõlpsasti kättesaadavate komponentide abil. Kasutatud mikrokontroller on odav STM32F030F4P6. Ekraan on 16x2 LCD koos I2C seljakotiga (PCF8574). Kellaahelat saab ehitada väikeste prototüüpimisplaatide ja TSSOP -i abil
Armas kuupäeva, kellaaja ja temperatuuri näidik: 3 sammu
Armas kuupäeva-, kellaaja- ja temperatuurinäidik: Tere sõbrad, selles juhendis selgitan kuupäeva, kellaaja ja praeguse temperatuuri kuvamise seadme loomise protseduuri Arduino pro mini, RTC ja kaheksakohalise seitsme segmendi kuva abil väga kompaktses seadmes, mis on kasulik seade