Obsah:
- Krok 1: Použití časových razítek Arduino Millisecond, Millis ()
- Krok 2: Přidání grafu do nabídky
- Krok 3: Úprava zdroje grafu a štítků
- Krok 4: Výběr formátu data/času
- Krok 5: Vytvořte a otestujte skicu Arduino
- Krok 6: Jak PfodApp vykreslí datum/čas od společnosti Millis ()?
- Krok 7: Reprodukce grafů data/času na vašem počítači
- Krok 8: Jak se vyhnout 49,7dennímu limitu milis () a proč byste neměli
- Krok 9: Použití RTC (hodiny v reálném čase)
- Krok 10: Použití modulu GPS
- Krok 11: Závěr
Video: Arduino vykreslování data/času/protokolování pomocí Millis () a PfodApp: 11 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Není vyžadováno žádné programování Arduino nebo Android. Podporovány jsou také moduly RTC a GPS. Automatická korekce časových pásem, driftu RTC a chybějících skokových sekund GPS
Úvod
Tento tutoriál vám ukáže, jak pomocí časových razítek Arduino millis () vykreslit data proti datu a času na vašem mobilním zařízení Android pomocí pfodApp.
Není vyžadováno žádné programování Arduino ani Android. pfodApp také zaznamenává dostatečná data, abyste mohli později reprodukovat grafy data/času v tabulce.
ŽÁDNÝ modul RTC nebo GPS není potřeba, ale pokud váš projekt Arduino má hodiny RTC (hodiny v reálném čase) nebo modul GPS, lze je také použít. V těchto případech se grafy pfodApp automaticky opraví o časové pásmo, drift RTC a chybějící přestupné sekundy GPS. Pro tyto opravy není vyžadován žádný speciální kód Arduino. Jako vždy u pfodApp jsou přijatá data protokolována přesně tak, jak jsou, neopravená, ale soubor protokolu také obsahuje dostatečné informace, které vám umožní tyto opravy použít sami při stahování protokolů do počítače. Níže naleznete příklady tohoto dodatečného zpracování.
Je podporována široká škála formátování osy času a data v ose X, přičemž všechny jsou zcela ovládány krátkými textovými řetězci v náčrtu Arduino. Není vyžadováno žádné programování pro Android.
pfodApp se připojí přes WiFi, Bluetooth Classic, BLE a SMS. Bezplatný pfodDesigner generuje kompletní skici Arduina pro vykreslování/protokolování data/času pro připojení k široké škále desek. Není vyžadováno žádné programování Arduino.
Tento instruktážní program použije jako příklad desku Arduino Adafruit Feather52, která se připojuje pomocí BLE.
Tento instruktáž pokrývá tři případy:- 1) váš projekt mikroprocesoru má pouze milisekundová časová razítka- milis () 2) váš projekt mikroprocesoru má hodiny reálného času (RTC)- pfodApp automaticky koriguje posun. 3) Váš projekt mikroprocesoru má modul GPS - pfodApp automaticky opravuje přestupné sekundy, jakmile k nim dojde (aktuálně 18 sekund k roku 2018).
Krok 1: Použití časových razítek Arduino Millisecond, Millis ()
Používání milisekund pro datum a čas má dvě části. Jedním z nich je vykreslení dat proti buď uplynulému času, nebo datu/času, a druhou částí je opětovné vytvoření data a času z zaznamenaných časových razítek rawdata milisekund. pfodApp neupravuje nezpracovaná data přijatá z pfodDevice (Arduino micro). Zaznamenává přesně přijaté bajty.
Nejprve použijte bezplatný pfodDesigner ke generování skici Arduino pro vaši mikro, která odešle milisekundy a měření dat do pfodApp pro vykreslování/protokolování. Tento příklad vytvoří nabídku pro desku Adafruit Feather 52 BLE, která čte A0. Tutoriál k Adafruit Feather nRF52 LE - vlastní ovládací prvky s pfodApp prochází kroky pfodDesigner k vytvoření nabídky pro Feather nRF52, která obsahuje tlačítko Chart, podívejte se tedy na další podrobnosti. V tomto tutoriálu přidáme pouze tlačítko grafu a použijeme nové možnosti formátu osy X k vykreslení hodnot A0 proti uplynulému času a datu/času.
První část tohoto tutoriálu projde pomocí bezplatného pfodDesigner k vytvoření ukázkového grafu data/času na vašem mobilním telefonu Android. Když jste s displejem spokojeni, můžete vygenerovat skicu Arduina, která to reprodukuje, když se připojíte k pfodApp. Není vyžadováno žádné programování pro Android a protože pfodDesigner generuje kompletní skici Arduino pro širokou škálu desek Arduino, není nutné ani žádné programování Arduino.
Krok 2: Přidání grafu do nabídky
Stáhněte si aplikaci pfodDesigner z Google Play, otevřete ji a klikněte na „Spustit novou nabídku“
Kliknutím na „Target Serial“a poté na tlačítko „Bluetooth Low Energy“zobrazíte seznam asi 11 desek BLE (posunutím dolů zobrazíte další možnosti). Vyberte na Adafruit Bluefruit Feather52.
Vraťte se zpět do nabídky Úpravy a klikněte na „Upravit výzvu“a nastavte pro tuto nabídku vhodnou výzvu, např. „Feather52“a text tučně a velikost +7. Barva pozadí byla ponechána jako 'výchozí' bílá
Vraťte se zpět a klikněte na „Přidat položku nabídky“, přejděte dolů a vyberte „Tlačítko grafu“, které otevře obrazovku pro úpravu tlačítka grafu. Zde můžete změnit vzhled tlačítka. V tomto případě byl text tlačítka změněn na „Graf data/času A0“a ostatní výchozí hodnoty byly ponechány tak, jak jsou.
Tím získáte v nabídce tlačítko, které otevře obrazovku grafu.
Krok 3: Úprava zdroje grafu a štítků
Kliknutím na tlačítko „Graf data/času A0“otevřete obrazovku Úpravy grafů, kde můžete přistupovat k označení grafu, formátu osy X, intervalu dat plotru a (posouváním dolů) samotnému nastavení grafu. Upravte štítek grafu na něco vhodného, např. "A0 voltů".
Přejděte dolů a pro Ploty 2 a 3 otevřete Upravit graf a kliknutím na Skrýt plotnu je odeberte ze zobrazení grafu.
Poté klikněte na „Upravit graf 1“a nastavte popis grafu (např. A0), jednotky yAxis (např. Volty), zobrazení max. 3,6 V a připojení k I/O pinu A0.
Přejděte zpět nahoru a klikněte na „Náhled grafu“na posledních 0 vzorových datových bodů v intervalech 1 s, vynesených proti uplynulému času v minutách: s.
Pro všechny uplynulé časové grafy nejsou zobrazeny úvodní nulové jednotky, takže v tomto grafu jsou zobrazeny pouze čas> 1 minuta vedoucí minuty.
Krok 4: Výběr formátu data/času
U grafů uplynulého času se vedoucí jednotka s postupem času stále zvyšuje. Chcete -li vidět příklad toho, vraťte se na obrazovku „Úpravy grafů“a prodlužte interval dat vykreslení na 15 minut (spodní část této obrazovky)
Poté kliknutím na Náhled grafu zobrazíte stejná ukázková data, ale nyní s 15minutovými intervaly mezi vzorky. Jak vidíte, minutová část mm: ss stále roste.
Nyní se vraťte zpět a kliknutím na tlačítko osy X zobrazte malý výběr všech možných formátů dat/času osy X (pro více přejděte dolů)
Nahoře je výběr náhledů grafů pomocí různých formátů osy X.
Zde zobrazené grafy data/času jsou v „místním“časovém pásmu. K dispozici jsou také možnosti formátu pro vykreslení data/času v UTC. Úplnou sadu možných možností formátu data/času najdete na stránce pfodSpecification.pfd.
Krok 5: Vytvořte a otestujte skicu Arduino
Jakmile budete s formátem grafu a datovým intervalem spokojeni, můžete přejít na obrazovku „Úpravy Menu_1“a posunout se dolů a „Vygenerovat kód“pro zvolený cílový panel. Zde je ukázka skici pro Adafruit Feather52 využívající datové intervaly 1 s a formát uplynulého času mm: ss, pfodFeather52_timeplot.ino
Nahoře je graf A0 z Feather52
Změnou formátu na hod. Všední den hr: min: s (~ E HH: mm: ss) a opětovným vygenerováním kódu (pfodFeather52_dateplot.ino) získáte graf jako druhý výše.
Formát osy X můžete upravit přímo v náčrtu Arduino, jak je popsáno dále.
Krok 6: Jak PfodApp vykreslí datum/čas od společnosti Millis ()?
Když se pfodApp připojí, pamatuje si svůj 'místní' a UTC čas a požaduje aktuální časová razítka dat pfodDevice (desky Arduino). Pomocí těchto informací může pfodApp poté vykreslit milisekundová časová razítka buď jako uplynulý čas, tj. Převod milisekund na hodiny min. Sekundy atd., Nebo vykreslit datum a čas, který milisekundová časová razítka představují vzhledem k tomu, kdy bylo připojení vytvořeno a byl požadován aktuální čas pfodDevice.
Při pohledu na skicu generovanou Arduinem (např. PfodFeather52_dateplot.ino) existují tři malé bity kódu, které zpracovávají stranu Arduino pozemků.
Sekce kódu loop (), která zpracovává požadavek na aktuální čas aplikace pfodApp {@}
// zpracovat {@} požadavek} else if ('@' == cmd) {// pfodApp požadoval 'aktuální' čas plot_mSOffset = millis (); // zachycení aktuálních milisekund jako offsetových časových razítek rawdata parser.print (F ("{@` 0} ")); // vrátí `0 jako 'aktuální' nezpracovaná data v milisekundách
Mohli byste vrátit aktuální hodnotu milis (), ale millis () se za 49,7 dní zaokrouhlí zpět na 0, což by způsobilo, že děj přeskočí zpět. Místo toho si kód pamatuje aktuální hodnotu milis () při zadání {@} požadavku a vrací {@`0}, tj. Aktuální milisekundové časové razítko nula. Poté při odesílání bodů rawdata skica používá
plot_1_var = analogRead (A0); // čtení vstupu do plotru // plot_2_var plot skrytý, takže zde nejsou přiřazena žádná data // plot_3_var plot skrytý, takže zde nejsou přiřazena žádná data // odeslat data plotru ve formátu CSV parser.print (millis ()-plot_mSOffset); // čas v milisekundách ….
takže časové milisekundy odeslané s daty začínají na 0 a zvyšují se až na 49,7 dnů. Pokud zůstanete nepřetržitě připojeni po dobu 49,7 dnů, uvidíte, jak se děj posune zpět o ~ 50 dní. Odpojení a opětovné připojení jednou za 49,7 dne tomu zabrání.
Třetí částí grafu data/času je zpráva o vykreslení.
} else if ('A' == cmd) {// uživatel stiskl - 'Graf data/času A0' // v hlavní nabídce Menu_1 // návrat vykreslování zprávy. parser.print (F ("{= A0 Volts ~ E HH: mm: ss | date | A0 ~~~ Volts ||}"));
Když uživatel stiskne tlačítko „Graf data/času A0“, pfodApp odešle {A} cmd na pfodDevice a pfodDevice odpoví zprávou o vykreslení, {=… {= A0 Volts ~ E HH: mm: ss | date | A0 ~~~ Volty ||}, který obsahuje formát osy X E HH: mm: ss
Formáty Java SimpleDateFormat jsou zde přijatelné. Protokoly a vykreslování dat pfodApp a pfodSpecification.pdf obsahují další podrobnosti o zprávě o vykreslení.
Krok 7: Reprodukce grafů data/času na vašem počítači
Ve výchozím nastavení pfodApp zaznamenává všechna příchozí rawdata do souboru protokolu na vašem mobilu, pokud jste toto přihlášení nezakázali na obrazovce pro úpravu připojení, podívejte se na pfodAppForAndroidGettingStarted.pdf
Když upravujete pfodApp, zobrazí se krátká zpráva s umístěním a názvem souboru protokolu, např. /pfodAppRawData/pfod_bluefruit52.txt Tento soubor je ve formátu CSV, oddělený čárkami a po přenosu do počítače (možnosti přenosu viz pfodAppForAndroidGettingStarted.pdf), můžete jej otevřít v tabulce pro vykreslení dat.
Zde je několik prvních řádků souboru protokolu.
// pfodApp V3.0.360, místní čas, UTC, mS za den, pfod bluefruit52 aktuální čas (mS), pfod bluefruit52 aktuální čas, // připojeno v, 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,, Nahoře vidíte 'místní' a UTC čas, který pfodApp připojil k Feather52, a aktuální čas v mS, který Feather52 hlásil prostřednictvím odpovědi {@..}. Poslední sloupec je prázdný, protože neexistuje žádný RTC ani GPS, a proto Feather52 nehlásil žádný aktuální čas v rrrr/MM/dd.
Chcete -li vykreslit data proti uplynulému času, odečtěte aktuální čas (mS) od časového razítka v milisekundách a poté vydělte hodnotou mS za den. Zde je tabulka s přidaným vzorcem a vynesením výsledku. Níže uvedená tabulka (pfod_bluefruit52.xls) je tabulka OpenOffice uložená ve formátu aplikace Excel.
V OpenOffice je plot bodový graf a osa x grafu byla formátována v HH: MM: SS Poznámka: formáty data a času v tabulce NENÍ stejné jako formáty plotů používané pfodApp. Například v pfodApp jsou MM měsíce a mm minuty.
Chcete -li vykreslit podle data a času, stačí k času tabulky přidat čas připojení a načíst znovu. (pfod_bluefruit52_date.xls)
Poznámka: Místní čas a UTC byly importovány jako text do mé tabulky, takže jsem je musel před použitím ve vzorci odstranit.
Krok 8: Jak se vyhnout 49,7dennímu limitu milis () a proč byste neměli
Jak je uvedeno výše v Jak pfodApp vykreslí datum/čas z milis () ?, pokud zůstanete připojeni nepřetržitě déle než 49,7 dnů, milisekundová časová razítka se zalomí zpět na nulu. Několik řádků kódu tomu může zabránit, ale nedoporučuje se to.
Nejprve, jak se vyhnout zábalům kolem. Přidejte další nepodepsanou proměnnou int a sledujte, kolikrát se časová razítka zalomí a vytiskne kombinovaný výsledek ve formátu HEX.
uint_t mSwrapCount = 0; uint32_t lastTimeStamp = 0;
… Plot_1_var = analogRead (A0); // čtení vstupu do plotru // plot_2_var plot skrytý, takže zde nejsou přiřazena žádná data // plot_3_var plot skrytý, takže zde nejsou přiřazena žádná data // odeslat data plotru ve formátu CSV uint32_t timeStamp = millis ()-plot_mSOffset; if (timeStamp <lastTimeStamp) {// timeStamp wrapped back to 0 mSwrapCount ++; // přidání jednoho k počítání} lastTimeStamp = timeStamp; parser.print ("0x"); parser.print (msWrapCount, HEX); parser.print (timeStamp, HEX); // čas v milisekundách v HEX….
Při vrácení odpovědi {@.. vymažte také mSwrapCount.
// zpracovat {@} požadavek} else if ('@' == cmd) {// pfodApp požadoval 'aktuální' čas plot_mSOffset = millis (); // zachycení aktuálních milisekund jako offsetových časových razítek rawdata mSwrapCount = 0; // vymazání počtu obalů. parser.print (F ("{@` 0} ")); // vrátí `0 jako 'aktuální' surová data v milisekundách
Časová razítka nyní poskytnou 'správnou' hodnotu pro příštích 40,7 dnů * 65536 ~ = 7308 let.
pfodApp automaticky převede hexadecimální časová razítka pro vykreslení a zaznamená je přesně tak, jak byla přijata, tj. v hexadecimálním formátu. V tabulce (OpenOffice) použijete tento vzorec k převodu hexadecimálního řetězce v A2 na mS (kde A1 je libovolná prázdná buňka) = HEX2DEC (REPLACE (A2; 1; 2; A1))
Proč to nechceš udělat?
Jak je uvedeno výše, je snadné prodloužit časová razítka mS na déle než 50 dní. To však pravděpodobně nechcete, protože jsou stále nepřesnější. Typický 16Mhz krystal použitý k vytvoření výsledků millis () v mikro má přesnost ~ 50ppm (části na milion). To znamená, že po 49,7 dnech může být milisekundové časové razítko o 3 a půl minuty mimo a to ignoruje vliv teploty na přesnost krystalu.
Během krátkých období připojení není tato přesnost problémem, protože odpověď {@.. při každém opětovném připojení znovu synchronizuje milisekundové časové razítko s datem/časem mobilního telefonu. Pokud však chcete zůstat připojeni po dlouhou dobu (dny) a nepřetržitě protokolovat data, měli byste použít něco přesnějšího než vestavěný millis (), například modul RTC nebo GPS.
Krok 9: Použití RTC (hodiny v reálném čase)
K dispozici je řada modulů RTC, jedním z přesnějších je např. DS3231 Modul DS3231 společnosti Adafruit. Uvedená přesnost je +/- 2 ppm za 0 až 40 ° C. tj. ~ +/- 5 s/měsíc.
Chcete -li vykreslit data s časovým razítkem data/času, např. 2019/04/19 20: 4: 34, pak je třeba upravit {@ odpověď tak, aby vrátila aktuální datum/čas, např. {@`0 ~ 2019/4/19 3: 33: 5}. Zde je několik změn ukázkového kódu, které se použijí na skicu generovanou pfodDesigner pro použití modulu RTC, za předpokladu, že používáte knihovnu RTClib a přidali jste kód inicializující modul RTC.
// zpracovat {@} požadavek} else if ('@' == cmd) {// pfodApp požadoval 'aktuální' čas plot_mSOffset = millis (); // zachycení aktuálních milisekund jako časová razítka offset rawdata parser.print (F ("{@` 0 "}); // návrat` 0 jako 'aktuální' milisekundy surových dat parser.print ('~'); // počáteční řetězec date/time DateTime now = rtc.now () sendDateTime (& now); // yyyy/M/d/H: m: s to parser.print, pass address & as arg. parser.print ('}'); // konec {@ reakce např. {@ `0 ~ 2019/4/19 3: 33: 5}….
// odeslat datum čas do analyzátoru printvoid sendDateTime (DateTime* dt) {parser.print (dt-> year (), DEC); parser.print ('/'); parser.print (dt-> měsíc (), DEC); parser.print ('/'); parser.print (dt-> den (), DEC); parser.print (''); parser.print (dt-> hodina (), DEC); parser.print (':'); parser.print (dt-> minuta (), DEC); parser.print (':'); parser.print (dt-> sekunda (), DEC); }
neplatné sendData () {if (plotDataTimer.isFinished ()) {plotDataTimer.repeat (); // restart časovače dat vykreslování, bez posunu // přiřazení hodnot proměnným plotru z vašich proměnných smyčky nebo čtení vstupů ADC plot_1_var = analogRead (A0); // čtení vstupu na plot // plot_2_var plot skrytý, takže zde nejsou přiřazena žádná data // plot_3_var plot skrytý, takže zde nejsou přiřazena žádná data // odeslat data plotru ve formátu CSV DateTime now = rtc.now (); sendDateTime (& now); // odeslat rrrr/M/d/H: m: s do parser.print, předat adresu & jako arg. parser.print (','); parser.print (((float) (plot_1_var - plot_1_varMin)) * plot_1_scaling + plot_1_varDisplayMin); parser.print (','); // Děj 2 je skrytý. Nebyla odeslána žádná data. parser.print (','); // Děj 3 je skrytý. Nebyla odeslána žádná data. parser.println (); // konec záznamu dat CSV}}
Část ~ {/response/2019/4/19 3: 33: 5 umožňuje pfodApp vědět, co si pfodDevice myslí, že je aktuální datum a čas. Váš náčrt pak může odesílat data s časovými razítky yMd Hms a pfodApp je vykreslí buď jako uplynulý čas od času připojení NEBO jako datum a čas, v závislosti na formátu osy X, který zadáte.
Při vykreslování podle data a času rutina vykreslování pfodApp opravuje jakýkoli 'posun' v RTC porovnáním aktuálního času pfodDevice s aktuálním časem mobilního telefonu. Tato oprava také zpracovává nastavení RTC na jiné časové pásmo než místní časové pásmo vašeho mobilního telefonu. Časová razítka millis () nadále fungují jako v použití milisekundových časových razítek Arduino, krok 5 výše.
Zde je příklad tabulky pokojových teplot za období 8 dnů, Office_Temp.xls Když byl importován soubor protokolu, první sloupec byl označen jako YMD pro převod textu na datum/čas. Abyste tabulku mohli interpretovat jako data a časy, musíte stále odstranit úvodní formulář místního času, UTC a aktuální čas v Office Temp.
Chcete -li získat stejný graf, který zobrazuje pfodApp, musíte vypočítat „opravené datum/čas“. V tomto případě je čas RTC o 2 sekundy za místním časem mobilního telefonu, takže ke každému časovému razítku RTC se přidá (místní čas - aktuální čas Office Temp), aby se získal skutečný místní čas.
Pro grafy uplynulého času vytvořte nový sloupec obsahující (časové razítko data/času-aktuální čas Office Time) a použijte jej jako osu X v grafu (Office_TempElapsed.xls) Ve skutečnosti v tomto případě pfodApp vytváří hezčí uplynulé časové grafy ve dnech hod: min: sek.
Krok 10: Použití modulu GPS
Použití modulu GPS je podobné použití modulu RTC, kromě toho, že moduly GPS mají k dispozici milisekundy, roky začínají od roku 2000 a v čase chybí přestupné sekundy UTC (viz https://tycho.usno.navy.mil/leapsec.html) Datum a čas GPS je aktuálně o 18 sekund před UTC k lednu 2018.
Knihovna Adafruit GPS pro Adafruit Ultimate GPS, na rozdíl od RTClib, nepřidává k letům GPS offset 2000 let, takže je třeba je přidat, když odešlete časové razítko data a času. I když knihovna GPS dodává milisekundy, které mají velmi dobrou dlouhodobou přesnost, nejsou příliš přesné. Časové aktualizace GPS jsou pouze jednou každých 100 ms a poté dochází k dalšímu zpoždění při přijímání sériových dat pomalým 9600 baudů a další zpoždění při jejich analýze. To vše přispívá k přesnosti milisekund při čtení dat časového razítka.
Zde jsou některé změny ukázkového kódu, které je možné použít na skicu generovanou pfodDesigner pro použití modulu GPS, za předpokladu, že používáte knihovnu GPS společnosti Adafruit a přidali jste kód pro příjem a analýzu zpráv do objektu GPS.
// zpracovat {@} požadavek} else if ('@' == cmd) {// pfodApp požadoval 'aktuální' čas plot_mSOffset = millis (); // zachycení aktuálních milisekund jako časová razítka offset rawdata parser.print (F ("{@` 0 "}); // návrat` 0 jako 'aktuální' milisekundy surových dat parser.print ('~'); // počáteční řetězec 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}….
// odeslání data do analyzátoru printvoid sendDateTime (Adafruit_GPS* gps) {parser.print (F ("20"); // 20.. year parser.print (gps-> year, DEC); parser.print ('/ '); parser.print (gps-> měsíc, DEC); parser.print ('/'); parser.print (gps-> den, DEC); parser.print (' '); parser.print (gps- > hodina, DEC); parser.print (':'); parser.print (gps-> minuta, DEC); parser.print (':'); parser.print (gps-> sekunda, DEC); // parser.print ('.'); pokud odesíláte milisekundy // pokud chcete odeslat mS, musíte hodnotu gps-> milisekundy doplnit úvodními nulami // tj. 3 je třeba doplnit na 003}
neplatné sendData () {if (plotDataTimer.isFinished ()) {plotDataTimer.repeat (); // restart časovače dat vykreslování, bez posunu // přiřazení hodnot proměnným plotru z vašich proměnných smyčky nebo čtení vstupů ADC plot_1_var = analogRead (A0); // čtení vstupu na plot // plot_2_var plot skrytý, takže zde nejsou přiřazena žádná data // plot_3_var plot skrytý, takže zde nejsou přiřazena žádná data // odeslat data plotru ve formátu CSV sendDateTime (& GPS); // odeslat rrrr/M/d/H: m: s do parser.print, předat adresu & jako arg. parser.print (','); parser.print (((float) (plot_1_var - plot_1_varMin)) * plot_1_scaling + plot_1_varDisplayMin); parser.print (','); // Děj 2 je skrytý. Nebyla odeslána žádná data. parser.print (','); // Děj 3 je skrytý. Nebyla odeslána žádná data. parser.println (); // konec záznamu dat CSV}}
Při vykreslování podle data a času pfodApp automaticky koriguje přestupné sekundy. V lednu 2018 je čas GPS 18 sekund před UTC. pfodApp to napravuje porovnáním data/času vráceného GPS při připojení prostřednictvím odpovědi {@ s datem a časem UTC mobilního telefonu. Vytváření grafů v tabulce ze souboru protokolu pfodApp je stejné jako pro moduly RTC výše. Přidání (místního času - aktuálního času Office Temp) k časovým razítkům GPS opraví přestupné sekundy.
Časová razítka millis () nadále fungují jako v použití milisekundových časových razítek Arduino, krok 5 výše.
Krok 11: Závěr
Používání aplikace pfodApp na mobilním telefonu Android vám umožňuje vykreslit data podle data a času nebo uplynulého času pomocí pouze funkce Arduino millis (). Pomocí souboru protokolu pfodApp můžete tyto grafy data/času znovu vytvořit v tabulce. Pokud má váš projekt Arduino modul RTC, můžete zaznamenávat a vykreslovat datum a časová razítka RTC, čímž se automaticky opraví „drift“RTC. Pokud má váš projekt Arduino modul GPS, můžete se přihlásit a vykreslit jeho vysoce přesná časová razítka a pfodApp automaticky opraví chybějící přestupné sekundy GPS.
Ve všech případech jsou nezpracovaná data z vašeho projektu Arduino zaznamenána přesně tak, jak byla přijata, nekorigovaná. Soubor protokolu pfodApp však obsahuje další data, která vám umožní znovu vytvořit tyto opravy v tabulce ze staženého souboru protokolu.
Není vyžadováno žádné kódování systému Android. Formáty vykreslování jsou specifikovány malými textovými řetězci ve vaší skice Arduino. Bezplatný pfodDesigner generuje kompletní Arduino protokolování dat a vykreslování skic pro širokou škálu desek Arduino připojujících se přes WiFi, Classic Bluetooth, BLE a SMS
Doporučuje:
Jak provést protokolování data a času - Liono Maker: 5 kroků
Jak provést protokolování data a času | Liono Maker: Úvod: -V tomto tutoriálu se naučíme, jak provádět protokolování data a času pomocí Arduina. K tomuto účelu používám DS3231 & Moduly karty Micro SD. Hlavní modul, který se používá pro čas a protokolování data je DS3231. DS3231 je RTC (skutečný
Internetové hodiny: Zobrazení data a času pomocí OLED pomocí ESP8266 NodeMCU s protokolem NTP: 6 kroků
Internetové hodiny: Zobrazení data a času pomocí OLED pomocí ESP8266 NodeMCU s protokolem NTP: Ahoj kluci v tomto návodu, postavíme internetové hodiny, které získají čas z internetu, takže tento projekt ke spuštění nebude potřebovat žádný RTC, bude k tomu potřebovat pouze funkční připojení k internetu A pro tento projekt potřebujete esp8266, který bude mít
Vykreslování intenzity světla pomocí Arduino a hlavní knihovny Arduino Python: 5 kroků
Vykreslování intenzity světla pomocí Arduino a hlavní knihovny Arduino v Pythonu: Arduino je ekonomický, ale vysoce účinný a funkční nástroj a jeho programování v Embedded C dělá proces vytváření projektů zdlouhavým! Modul Arduino_Master v Pythonu to zjednodušuje a umožňuje nám provádět výpočty, odstraňovat odpadky
Jednoduché vzdálené vykreslování dat pomocí Android / Arduino / PfodApp: 6 kroků
Jednoduché vzdálené vykreslování dat pomocí systému Android/Arduino/PfodApp: Pro vykreslování dat podle data/času pouze pomocí milisekund Arduina () viz tento InstructableArduino Vykreslování data/času pomocí protokolů Millis () a PfodAppTento Instructable vám ukáže, jak vykreslit data snímače Arduino na vašem Mobilní telefon Android a zachyťte jej pro
Jednoduché protokolování mobilních dat pomocí PfodApp, Android a Arduino: 5 kroků
Jednoduché protokolování mobilních dat pomocí PfodApp, Android a Arduino: Moblie Data Logging je jednoduché pomocí pfodApp, vašeho mobilního telefonu Andriod a Arduino. ŽÁDNÉ programování pro Android. Pokud jde o vykreslování dat na vašem Androidu, podívejte se na toto pozdější Instuctable Simple Remote Data Plotting pomocí Android / Arduino / pfodAppFor Plotting