Obsah:
- Krok 1: Použitie časových pečiatok Arduino milisekundy, Millis ()
- Krok 2: Pridanie grafu do ponuky
- Krok 3: Úprava zdroja grafu a štítkov
- Krok 4: Výber formátu dátumu/času
- Krok 5: Vytvorte a otestujte skicu Arduino
- Krok 6: Ako PfodApp vykreslí dátum/čas od Millis ()?
- Krok 7: Reprodukcia grafov dátumu a času vo vašom počítači
- Krok 8: Ako sa vyhnúť 49,7 -dňovému limitu milis () a prečo by ste nemali
- Krok 9: Použitie RTC (hodiny v reálnom čase)
- Krok 10: Použitie modulu GPS
- Krok 11: Záver
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-23 15:05
Nie je potrebné žiadne programovanie pre Arduino alebo Android. Podporované sú tiež moduly RTC a GPS. Automatická korekcia časových pásiem, posunu RTC a chýbajúcich priestupných sekúnd GPS
Úvod
Tento tutoriál vám ukáže, ako používať časové pečiatky Arduino millis () na vykreslenie údajov proti dátumu a času na vašom mobilnom zariadení Android pomocou pfodApp.
Nevyžaduje sa žiadne programovanie pre Arduino alebo Android. pfodApp taktiež zaznamenáva dostatočné údaje, aby ste mohli neskôr reprodukovať grafy dátumu/času v tabuľke.
Nie je potrebný ŽIADNY modul RTC ani GPS, ak však váš projekt Arduino má hodiny RTC (hodiny v reálnom čase) alebo modul GPS, je možné ich tiež použiť. V týchto prípadoch sa grafy pfodApp automaticky opravia o časové pásmo, drift RTC a chýbajúce priestupné sekundy GPS. Na tieto opravy nie je potrebný žiadny špeciálny kód Arduino. Ako vždy pri programe pfodApp, prijaté údaje sa zaznamenávajú presne tak, ako sú, neopravené, ale súbor denníka obsahuje aj dostatočné informácie, ktoré vám umožnia tieto opravy použiť sami pri sťahovaní protokolov do počítača. Príklady tohto dodatočného spracovania nájdete nižšie.
Podporovaná je široká škála formátovania času a dátumu na osi X, pričom všetky sú úplne riadené krátkymi textovými reťazcami v náčrte Arduino. Nie je potrebné žiadne programovanie pre Android.
pfodApp sa pripojí prostredníctvom WiFi, Bluetooth Classic, BLE a SMS. Bezplatný pfodDesigner generuje kompletné náčrty Arduino na vykresľovanie/protokolovanie dátumu/času na pripojenie k širokej škále dosiek. Nie je potrebné žiadne programovanie Arduino.
Tento návod použije ako príklad dosku Arduino Adafruit Feather52, ktorá sa pripája pomocou BLE.
Tento pokyn pokrýva tri prípady:- 1) váš projekt mikroprocesora má iba milisekundové časové pečiatky- milis () 2) váš projekt mikroprocesora má hodiny v reálnom čase (RTC)- pfodApp automaticky koriguje posun. 3) Váš projekt mikroprocesora má modul GPS - pfodApp automaticky opraví prestupné sekundy, ako k nim dôjde (v súčasnosti 18 sekúnd k roku 2018).
Krok 1: Použitie časových pečiatok Arduino milisekundy, Millis ()
Existujú dve časti používania milisekundy pre dátum a čas. Jeden je na vykreslenie údajov oproti uplynutému času alebo dátumu/času a druhá časť je opätovné vytvorenie dátumu a času z zaznamenaných časových pečiatok rawdata v milisekundách. pfodApp nemodifikuje nespracované údaje prijaté z pfodDevice (Arduino micro). Zaznamenáva presne prijaté bajty.
Najprv použite bezplatný nástroj pfodDesigner na vygenerovanie náčrtu Arduino pre vašu mikroskopiu, ktorý odošle milisekundy a namerané údaje do pfodApp na vykreslenie/protokolovanie. Tento príklad vytvára menu pre dosku Adafruit Feather 52 BLE s nápisom A0. Tutorial o Adafruit Feather nRF52 LE - Vlastné ovládacie prvky s pfodApp prechádza krokmi pfodDesigner a vytvorí pre Feather nRF52 menu, ktoré obsahuje tlačidlo Graf, preto si pozrite ďalšie podrobnosti. V tomto návode pridáme iba tlačidlo grafu a použijeme nové možnosti formátu osi X na vykreslenie hodnôt A0 oproti uplynutému času a dátumu/času.
Prvá časť tohto tutoriálu prejde pomocou bezplatného programu pfodDesigner na vytvorenie vzorového grafu dátumu a času v mobilnom zariadení s Androidom. Keď ste s displejom spokojní, môžete vygenerovať skicu Arduina, ktorá to reprodukuje po pripojení k pfodApp. Nie je potrebné žiadne programovanie pre Android a keďže pfodDesigner generuje kompletné náčrty Arduino pre najrozmanitejšie dosky Arduino, nie je potrebné ani žiadne programovanie Arduino.
Krok 2: Pridanie grafu do ponuky
Stiahnite si aplikáciu pfodDesigner z Google Play, otvorte ju a kliknite na „Spustiť novú ponuku“
Kliknutím na „Cieľový sériový port“a potom na tlačidlo „Bluetooth s nízkou spotrebou energie“zobrazíte zoznam asi 11 dosiek BLE (posúvaním nadol zobrazíte ďalšie možnosti). Vyberte na Adafruit Bluefruit Feather52.
Vráťte sa do ponuky Úpravy a kliknite na „Upraviť výzvu“a nastavte pre túto ponuku vhodnú výzvu, napr. „Feather52“a hrubý text a veľkosť +7. Farba pozadia bola ponechaná ako „predvolená“biela
Vráťte sa späť a kliknite na „Pridať položku ponuky“, posuňte sa nadol a vyberte možnosť „Tlačidlo grafu“, čím sa otvorí obrazovka na úpravu tlačidla grafu. Tu môžete zmeniť vzhľad tlačidla. V tomto prípade bol text tlačidla zmenený na „Graf dátumu a času A0“a ostatné predvolené nastavenia boli ponechané tak, ako sú.
Tým získate v ponuke tlačidlo, ktoré otvorí obrazovku grafu.
Krok 3: Úprava zdroja grafu a štítkov
Kliknutím na tlačidlo „Dátum/čas grafu A0“otvoríte obrazovku Úpravy grafov, kde máte prístup k označeniu grafu, formátu osi X, intervalu údajov grafu a (posunutím nadol) k samotným nastaveniam grafu. Upravte štítok grafu na niečo vhodné, napr. „A0 voltov“.
Posuňte zobrazenie nadol a pre grafy 2 a 3 otvorte položku Upraviť graf a kliknutím na položku Skryť graf ich odstránite zo zobrazenia grafu.
Potom kliknite na „Upraviť graf 1“a nastavte označenie grafu (napr. A0), jednotky yAxis (napr. Volty), zobrazenie max. 3,6 V a pripojenie na I/O pin A0.
Prejdite späť hore a kliknite na „Náhľad grafu“na posledných 0 vzorových údajových bodov v intervaloch 1 s vykreslených oproti uplynutému času v minútach: s.
Pre všetky uplynuté časové grafy nie sú zobrazené úvodné nulové jednotky, takže v tomto grafe sú zobrazené iba tie časy> 1 min.
Krok 4: Výber formátu dátumu/času
Pokiaľ ide o grafy uplynulého času, vedúca jednotka sa postupom času stále zvyšuje. Ak chcete vidieť príklad tohto, vráťte sa na obrazovku „Úpravy grafov“a predĺžte interval údajov grafu na 15 minút (spodná časť tejto obrazovky)
Potom kliknutím na Náhľad grafu zobrazíte rovnaké vzorové údaje, ale teraz s 15 -minútovými intervalmi medzi vzorkami. Ako vidíte, minútová časť mm: ss sa stále zvyšuje.
Teraz sa vráťte a kliknite na tlačidlo osi X, aby ste zobrazili malý výber všetkých možných formátov údajov/času osi X (viac posunutím nadol)
Hore je výber náhľadov grafov pomocou rôznych formátov osi X.
Tu zobrazené grafy dátumu/času sú v „miestnom“časovom pásme. K dispozícii sú aj možnosti formátu vykresľovania dátumu/času v UTC. Kompletnú sadu možných možností formátu dátumu a času nájdete na stránke pfodSpecification.pfd.
Krok 5: Vytvorte a otestujte skicu Arduino
Akonáhle ste spokojní s formátom a dátovým intervalom grafu, môžete prejsť na obrazovku „Úpravy Menu_1“a posúvať sa nadol a vedľa položky „Generovať kód“pre zvolenú cieľovú tabuľu. Tu je ukážkový náčrt Adafruit Feather52 s použitím dátových intervalov 1 s a formátu času uplynulého mm: ss, pfodFeather52_timeplot.ino
Hore je graf A0 z Feather52
Zmenou formátu na hodinu v týždni hr: min: s (~ E HH: mm: ss) a opätovným vygenerovaním kódu (pfodFeather52_dateplot.ino) sa získa graf ako druhý vyššie.
Formát osi X môžete upraviť priamo vo svojom náčrte Arduino, ako je popísané ďalej.
Krok 6: Ako PfodApp vykreslí dátum/čas od Millis ()?
Keď sa pfodApp pripojí, zapamätá si svoj „miestny“a čas UTC a vyžiada si aktuálne časové pečiatky údajov pfodDevice (dosky Arduino). Pomocou týchto informácií môže pfodApp potom vykresliť milisekundové časové značky buď ako uplynulý čas, t. J. Prevádzať milisekundy na hodiny min. S, atď., Alebo vykresliť dátum a čas, ktoré milisekundové časové značky predstavujú vzhľadom na to, kedy bolo nadviazané spojenie a bol požadovaný aktuálny čas pfodDevice.
Pri pohľade na skicu generovanú Arduino (napr. PfodFeather52_dateplot.ino) existujú tri malé bity kódu, ktoré spracovávajú stranu Arduino pozemkov.
Sekcia kódu loop (), ktorá spracováva požiadavku aktuálneho času aplikácie pfodApp {@}
// zvládne {@} požiadavku} else if ('@' == cmd) {// pfodApp požaduje 'aktuálny' čas plot_mSOffset = millis (); // zachytenie aktuálnych milis ako ofsetových časových pečiatok rawdata parser.print (F ("{@` 0} ")); // vráti `0 ako 'aktuálne' milisekundy nespracovaných údajov
Mohli by ste vrátiť aktuálnu hodnotu milis (), ale millis () sa každých 49,7 dní vráti späť na 0, čo by spôsobilo, že dej preskočí dozadu. Namiesto toho si kód pamätá aktuálnu hodnotu milis () pri {@} žiadosti a vracia {@`0}, tj aktuálnu milisekundovú časovú pečiatku s nulou. Potom pri odosielaní bodov surových údajov skica použije
plot_1_var = analogRead (A0); // čítanie vstupu do grafu // plot_2_var plot skrytý, takže tu nie sú priradené žiadne údaje // plot_3_var plot skrytý, takže tu nie sú priradené žiadne údaje // odosielanie údajov z grafu vo formáte CSV parser.print (millis ()-plot_mSOffset); // čas v milisekundách ….
takže časová pečiatka odoslaná s údajmi v milisekundách začína na 0 a zvyšuje sa až na 49,7 dní. Ak zostanete nepretržite v spojení 49,7 dní, uvidíte, ako sa dej skáče dozadu o ~ 50 dní. Tomu sa zabráni odpojením a opätovným pripojením raz za 49,7 dní.
Tretia časť grafu dátumu/času je správa o zápletke.
} else if ('A' == cmd) {// užívateľ stlačený - 'Graf dátumu/času A0' // v hlavnej ponuke Menu_1 // návrat spr. parser.print (F ("{= A0 Volts ~ E HH: mm: ss | date | A0 ~~~ Volts ||}"));
Keď používateľ stlačí tlačidlo „Graf dátumu a času A0“, pfodApp odošle {A} cmd do zariadenia pfodDevice a zariadenie pfodDevice odpovie správou o vykreslení, {=… {= A0 Volts ~ E HH: mm: ss | date | A0 ~~~ Volty ||}, ktorý obsahuje formát osi X E HH: mm: ss
Formáty Java SimpleDateFormat sú tu prijateľné. Protokoly a vykresľovanie údajov pfodApp a pfodSpecification.pdf obsahujú ďalšie podrobnosti o správe o vykreslení.
Krok 7: Reprodukcia grafov dátumu a času vo vašom počítači
Štandardne pfodApp zaznamenáva všetky prichádzajúce surové údaje do súboru denníka vo vašom mobile, pokiaľ ste toto prihlásenie nezakázali na obrazovke úprav pripojenia, pozrite si stránku pfodAppForAndroidGettingStarted.pdf
Keď upravujete pfodApp, zobrazí sa krátka správa s umiestnením a názvom súboru denníka, napr. /pfodAppRawData/pfod_bluefruit52.txt Tento súbor je vo formáte CSV, oddelený čiarkou a po prenesení do počítača (možnosti prenosu nájdete v dokumente pfodAppForAndroidGettingStarted.pdf) ho môžete otvoriť v tabuľke na vykreslenie údajov.
Tu je prvých niekoľko riadkov súboru denníka.
// pfodApp V3.0.360, miestny čas, UTC, mS za deň, pfod bluefruit52 aktuálny čas (mS), pfod bluefruit52 aktuálny čas, // pripojené o, 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,,
Hore môžete vidieť „miestny“a UTC čas, ktorý pfodApp pripojil k Feather52, a aktuálny čas v mS, ktorý Feather52 nahlásil prostredníctvom odpovede {@..}. Posledný stĺpec je prázdny, pretože neexistuje žiadny RTC ani GPS, a preto Feather52 nehlásil žiadny aktuálny čas v rrrr/MM/dd.
Ak chcete vykresliť údaje oproti uplynutému času, odpočítajte aktuálny čas (mS) od milisekundovej časovej pečiatky a potom vydelte hodnotou mS za deň. Tu je tabuľka s pridaným vzorcom a vynesený výsledok. Tabuľka nižšie (pfod_bluefruit52.xls) je tabuľka OpenOffice uložená vo formáte Excel.
V OpenOffice je plot bodovým grafom a os x grafu bola formátovaná v HH: MM: SS Poznámka: formáty dátumu a času v tabuľke NIE sú rovnaké ako formáty grafu používané v programe pfodApp. Napríklad v pfodApp sú MM mesiace a mm minúty.
Ak chcete vykresľovať údaje proti dátumu a času, stačí k času tabuľky pridať čas pripojenia a znova vykonať vykreslenie. (pfod_bluefruit52_date.xls)
Poznámka: Miestny čas a UTC boli importované ako text do mojej tabuľky, takže som ich pred použitím vo vzorci musel odstrániť.
Krok 8: Ako sa vyhnúť 49,7 -dňovému limitu milis () a prečo by ste nemali
Ako je uvedené vyššie v časti Ako pfodApp vykreslí dátum/čas od milis () ?, ak zostanete pripojení nepretržite viac ako 49,7 dní, milisekundové časové značky sa vrátia späť na nulu. Niekoľko riadkov kódu tomu môže zabrániť, ale neodporúča sa to.
Po prvé, ako sa vyhnúť ovinutiu. Pridajte ďalšiu nepodpísanú premennú int, aby ste mali prehľad o tom, koľkokrát sa časové pečiatky zalamujú a vytlačia kombinovaný výsledok vo formáte HEX.
uint_t mSwrapCount = 0; uint32_t lastTimeStamp = 0;
… Plot_1_var = analogRead (A0); // čítanie vstupu do grafu // plot_2_var plot skrytý, takže tu nie sú priradené žiadne údaje // plot_3_var plot skrytý, takže tu nie sú priradené žiadne údaje // odoslanie údajov z grafu vo formáte CSV uint32_t timeStamp = millis ()-plot_mSOffset; if (timeStamp <lastTimeStamp) {// timeStamp zabalené späť na 0 mSwrapCount ++; // pridanie jedného na počítanie} lastTimeStamp = timeStamp; parser.print ("0x"); parser.print (msWrapCount, HEX); parser.print (timeStamp, HEX); // čas v milisekundách v HEX….
Pri vrátení odpovede {@.. vymažte aj mSwrapCount.
// zvládne {@} požiadavku} else if ('@' == cmd) {// pfodApp požaduje 'aktuálny' čas plot_mSOffset = millis (); // zachytenie aktuálnych milis ako ofsetových časových pečiatok rawdata mSwrapCount = 0; // vymazanie počtu zábalov. parser.print (F ("{@` 0} ")); // vráti `0 ako 'aktuálne' milisekundy nespracovaných údajov
Časové pečiatky teraz poskytnú „správnu“hodnotu na nasledujúcich 40,7 dní * 65536 ~ = 7308 rokov.
pfodApp automaticky prevedie hexadecimálne časové značky na vykreslenie a zaznamená ich presne tak, ako boli prijaté, t.j. v hexadecimálnom formáte. V tabuľke (OpenOffice) použijete tento vzorec na konverziu hexadecimálneho reťazca v A2 na mS (kde A1 je ľubovoľná prázdna bunka) = HEX2DEC (REPLACE (A2; 1; 2; A1))
Prečo to nechceš urobiť
Ako je uvedené vyššie, je ľahké predĺžiť časové pečiatky mS na viac ako 50 dní. Pravdepodobne to však nechcete urobiť, pretože sú stále nepresnejšie. Typický 16 MHz kryštál použitý na vytvorenie výsledkov milis () v mikroskopii má presnosť ~ 50 ppm (ppm). To znamená, že po 49,7 dňoch môže byť milisekundová časová značka stratená o 3 a pol minúty, a to ignoruje vplyv teploty na presnosť kryštálov.
V prípade krátkych období pripojenia nie je táto nepresnosť problémom, pretože odpoveď {@.. pri každom opätovnom pripojení znova synchronizuje milisekundovú časovú pečiatku s dátumom/časom mobilného telefónu. Ak však chcete zostať v kontakte dlhší čas (dni) a nepretržite zaznamenávať údaje, mali by ste použiť niečo presnejšie ako vstavané zariadenie milis (), napríklad modul RTC alebo GPS.
Krok 9: Použitie RTC (hodiny v reálnom čase)
K dispozícii je množstvo modulov RTC, jeden z presnejších je DS3231 napr. Modul DS3231 spoločnosti Adafruit. Udávaná presnosť je +/- 2 str./min pri 0 až 40 ° C. t.j. ~ +/- 5 s/mesiac.
Ak chcete vykresliť údaje, ktoré majú časové pečiatky dátumu/času, napr. 19. 4. 2019 20: 4: 34, potom musíte upraviť {@ odpoveď a vrátiť aktuálny dátum/čas, napr. {@`0 ~ 2019/4/19 3: 33: 5}. Tu je niekoľko zmien vzorového kódu, ktoré sa majú použiť na skicu generovanú pfodDesigner na používanie modulu RTC, za predpokladu, že používate knižnicu RTClib a pridali ste kód na inicializáciu modulu RTC.
// zvládne {@} požiadavku} else if ('@' == cmd) {// pfodApp požaduje 'aktuálny' čas plot_mSOffset = millis (); // zachytenie aktuálnych milis ako posunutých časových pečiatok surdata parser.print (F ("{@` 0 "}); // návrat` 0 ako 'aktuálnych' milisekúnd surových dát parser.print ('~'); // štartovací reťazec date/time DateTime now = rtc.now () sendDateTime (& now); // yyyyy/M/d/H: m: s to parser.print, pass address & as arg. parser.print ('}'); // koniec {@ odpovede napr. {@ `0 ~ 2019/4/19 3: 33: 5} ….
// odoslanie dátumu a času do analyzátora printvoid sendDateTime (DateTime* dt) {parser.print (dt-> year (), DEC); parser.print ('/'); parser.print (dt-> mesiac (), DEC); parser.print ('/'); parser.print (dt-> deň (), DEC); parser.print (''); parser.print (dt-> hodina (), DEC); parser.print (':'); parser.print (dt-> minúta (), DEC); parser.print (':'); parser.print (dt-> sekunda (), DEC); }
neplatné sendData () {if (plotDataTimer.isFinished ()) {plotDataTimer.repeat (); // reštartovanie časovača údajov grafu, bez posunu // priradenie hodnôt premenným vykresľovania z vašich slučkových premenných alebo čítania vstupov ADC plot_1_var = analogRead (A0); // čítanie vstupu do grafu // plot_2_var plot skrytý, takže tu nie sú priradené žiadne údaje // plot_3_var plot skrytý, takže tu nie sú priradené žiadne údaje // odoslanie údajov z grafu vo formáte CSV DateTime teraz = rtc.now (); sendDateTime (& now); // pošlite rrrr/M/d/H: m: s do parser.print, zadajte adresu & ako arg. parser.print (','); parser.print ((((float) (plot_1_var - plot_1_varMin)) * plot_1_scaling + plot_1_varDisplayMin); parser.print (','); // Dej 2 je skrytý. Neboli odoslané žiadne údaje. parser.print (','); // Dej 3 je skrytý. Neboli odoslané žiadne údaje. parser.println (); // koniec záznamu údajov CSV}}
Časť {@ odpovede ~ 2019/4/19 3: 33: 5 umožňuje pfodApp vedieť, čo si pfodDevice myslí, že je aktuálny dátum a čas. Váš náčrt potom môže odosielať údaje s časovými pečiatkami yMd Hms a aplikácia pfodApp ich vykreslí buď ako uplynulý čas od času pripojenia ALEBO ako dátum a čas, v závislosti od formátu osi X, ktorý zadáte.
Pri vykresľovaní podľa dátumu a času rutina vykresľovania pfodApp opravuje akýkoľvek „posun“v RTC porovnaním aktuálneho času nahláseného zariadením pfodDevice s aktuálnym časom mobilného telefónu. Táto oprava tiež spracováva RTC nastavené na iné časové pásmo ako lokálne časové pásmo vášho mobilného telefónu. Časové pečiatky milis () naďalej fungujú ako v prípade použitia milisekundových časových pečiatok Arduino, krok 5 vyššie.
Tu je príklad tabuľky izbových teplôt za obdobie 8 dní, Office_Temp.xls Keď bol súbor denníka importovaný, prvý stĺpec bol označený ako YMD na konverziu textu na dátum/čas. Ak chcete, aby ich tabuľka interpretovala ako dátumy a časy, stále musíte odstrániť úvodné formuláre miestneho času, UTC a aktuálneho času v Office Temp.
Ak chcete získať rovnaký graf, ktorý zobrazuje pfodApp, musíte vypočítať „opravený dátum/čas“. V tomto prípade je čas RTC o 2 sekundy kratší ako miestny čas mobilného telefónu, takže ku každému časovému údaju RTC sa pridá (miestny čas - aktuálny čas Office Temp), aby sa získal skutočný miestny čas.
Pre grafy uplynutého času vytvorte nový stĺpec obsahujúci (časovú pečiatku dátumu/času-aktuálny čas Office Time) a použite ho ako os X v grafe (Office_TempElapsed.xls) V skutočnosti v tomto prípade pfodApp vytvára krajšie grafy uplynulého času v dňoch hod: min: sek.
Krok 10: Použitie modulu GPS
Používanie modulu GPS je podobné používaniu modulu RTC, okrem toho, že moduly GPS majú k dispozícii milisekundy, roky začínajú od roku 2000 a v čase chýbajú priestupné sekundy UTC (pozri https://tycho.usno.navy.mil/leapsec.html) Dátum a čas GPS je v januári 2018 aktuálne o 18 sekúnd pred UTC.
Knižnica GPS Adafruit pre Adafruit Ultimate GPS, na rozdiel od RTClib, nepridáva k rokom GPS offset 2000 rokov, takže je potrebné ich pridať pri odosielaní časovej pečiatky dátumu a času. Aj keď knižnica GPS dodáva milisekundy, ktoré majú veľmi dobrú dlhodobú presnosť, nie sú veľmi presné. Aktualizácie času GPS sú len raz za 100 mS a potom dôjde k ďalšiemu oneskoreniu pri prijímaní sériových údajov pomalým 9600 baudov a ďalšie oneskorenie pri ich analýze. To všetko zvyšuje presnosť milisekundy pri časovom označovaní údajov.
Tu je niekoľko zmien vzorového kódu, ktoré je možné použiť na skicu generovanú nástrojom pfodDesigner na používanie modulu GPS, za predpokladu, že používate knižnicu GPS spoločnosti Adafruit a pridali ste kód na príjem a analýzu správ do objektu GPS.
// zvládne {@} požiadavku} else if ('@' == cmd) {// pfodApp požaduje 'aktuálny' čas plot_mSOffset = millis (); // zachytenie aktuálnych milis ako posunutých časových pečiatok rawdata parser.print (F ("{@` 0 "}); // návrat` 0 ako 'aktuálnych' milisekúnd surových dát parser.print ('~'); // štartovací reťazec date/time sendDateTime (& GPS); // yyyy/M/d/H: m: s to parser.print, pass address & as arg. parser.print ('}'); // end of {@ response eg {@`0 ~ 2019/4/19 3: 33: 5}….
// odoslanie dátumu a času do analyzátora printvoid sendDateTime (Adafruit_GPS* gps) {parser.print (F ("20"); // 20.. year parser.print (gps-> year, DEC); parser.print ('/ '); parser.print (gps-> mesiac, DEC); parser.print ('/'); parser.print (gps-> deň, DEC); parser.print (' '); parser.print (gps- > hodina, DEC); parser.print (':'); parser.print (gps-> minúta, DEC); parser.print (':'); parser.print (gps-> sekunda, DEC); // parser.print ('.'); ak odosielate milisekundy // ak chcete odoslať mS, musíte vložiť hodnotu gps-> milisekundy s úvodnými nulami // tj 3 je potrebné vyplniť na 003}
neplatné sendData () {if (plotDataTimer.isFinished ()) {plotDataTimer.repeat (); // reštartovanie časovača údajov grafu, bez posunu // priradenie hodnôt premenným vykresľovania z vašich slučkových premenných alebo čítania vstupov ADC plot_1_var = analogRead (A0); // čítanie vstupu do grafu // plot_2_var plot skrytý, takže tu nie sú priradené žiadne údaje // plot_3_var plot skrytý, takže tu nie sú priradené žiadne údaje // odoslanie údajov z grafu vo formáte CSV sendDateTime (& GPS); // pošlite rrrr/M/d/H: m: s do parser.print, zadajte adresu & ako arg. parser.print (','); parser.print ((((float) (plot_1_var - plot_1_varMin)) * plot_1_scaling + plot_1_varDisplayMin); parser.print (','); // Dej 2 je skrytý. Neboli odoslané žiadne údaje. parser.print (','); // Dej 3 je skrytý. Neboli odoslané žiadne údaje. parser.println (); // koniec záznamu údajov CSV}}
Pri vykresľovaní podľa dátumu a času pfodApp automaticky opraví priestupné sekundy. V januári 2018 je čas GPS o 18 sekúnd pred UTC. pfodApp to napravuje porovnaním dátumu/času vráteného systémom GPS pri pripojení prostredníctvom odpovede {@ s dátumom a časom mobilného telefónu. Vytváranie grafov v tabuľke zo súboru denníka pfodApp je rovnaké ako pre moduly RTC vyššie. Pridanie (miestneho času - aktuálneho času v Office Time) k časovým pečiatkam GPS opraví priestupné sekundy.
Časové pečiatky milis () naďalej fungujú ako v prípade použitia milisekundových časových pečiatok Arduino, krok 5 vyššie.
Krok 11: Záver
Používanie pfodApp na vašom mobilnom zariadení s Androidom vám umožňuje vykresľovať údaje podľa dátumu a času alebo uplynulého času pomocou iba funkcie Arduino millis (). Pomocou súboru denníka pfodApp môžete tieto grafy dátumu a času znova vytvoriť v tabuľke. Ak má váš projekt Arduino modul RTC, môžete zaznamenať a zakresliť dátum a časové pečiatky RTC, čím sa automaticky opraví „posun“RTC. Ak má váš projekt Arduino modul GPS, môžete sa prihlásiť a vykresliť jeho veľmi presné časové pečiatky a pfodApp automaticky opraví chýbajúce prestupné sekundy GPS.
Vo všetkých prípadoch sú nespracované údaje z vášho projektu Arduino zaznamenané presne tak, ako boli prijaté, neopravené. Súbor denníka pfodApp však obsahuje ďalšie údaje, ktoré vám umožňujú znova vytvoriť tieto opravy v tabuľke zo stiahnutého súboru denníka.
Nevyžaduje sa žiadne kódovanie systému Android. Formáty vykresľovania sú špecifikované malými textovými reťazcami vo vašej skici Arduino. Bezplatný pfodDesigner generuje kompletné náčrty protokolovania a vykresľovania údajov Arduino pre najrozmanitejšie dosky Arduino, ktoré sa pripájajú prostredníctvom WiFi, klasického Bluetooth, BLE a SMS
Odporúča:
Ako vytvoriť zaznamenávanie dátumu a času - Liono Maker: 5 krokov
Ako vytvoriť zaznamenávanie dátumu a času | Liono Maker: Úvod: -V tomto tutoriáli sa naučíme, ako vytvárať protokoly dátumu a času pomocou Arduina. Na tento účel používam DS3231 & Moduly karty Micro SD. Hlavný modul, ktorý sa používa na čas a zaznamenávanie dátumu je DS3231. DS3231 je RTC (skutočný
Internetové hodiny: Zobrazenie dátumu a času pomocou OLED pomocou ESP8266 NodeMCU s protokolom NTP: 6 krokov
Internetové hodiny: Zobrazenie dátumu a času pomocou OLED pomocou ESP8266 NodeMCU s protokolom NTP: Ahoj chlapci, v tomto návode postavíme internetové hodiny, ktoré získajú čas z internetu, takže tento projekt nebude potrebovať na spustenie žiadne RTC, ale bude potrebovať iba fungujúce internetové pripojenie A na tento projekt potrebujete esp8266, ktorý bude mať
Jednoduché vzdialené vykresľovanie údajov pomocou systému Android / Arduino / PfodApp: 6 krokov
Jednoduché vzdialené vykresľovanie údajov pomocou systému Android/Arduino/PfodApp: Informácie o vykresľovaní údajov podľa dátumu a času pomocou iba milisekúnd Arduina () nájdete v tomto návode na kreslenie/zaznamenávanie dátumu/času v InstructableArduino pomocou nástrojov Millis () a PfodApp. Tento návod vám ukáže, ako vykresliť údaje senzora Arduino na vašom zariadení. Mobilný telefón s Androidom a zachyťte ho
Zobrazenie dátumu, času a teploty pomocou XinaBoxu: 8 krokov
Zobrazenie dátumu, času a teploty pomocou XinaBoxu: Cool OLED displej zobrazujúci dátum, čas a teplotu v stupňoch Celzia a Fahrenheita pomocou Xinabox xChips na základe ESP8266
Presun dátumu a času do aplikácie Blynk pomocou Wemos D1 Mini Pro: 10 krokov
Posunutie dátumu a času do aplikácie Blynk pomocou Wemos D1 Mini Pro: Wemos D1 Mini Pro použijeme na posunutie času & dátum do aplikácie Blynk. K tejto aktivite nebudete musieť k Wemos D1 Mini Pro pripájať žiadne komponenty