Díl 9 - Data logger shield - reálný čas, SD karta a volný prostor pro součástky

21.05.2014 08:09

Dnes si ukážeme opravdu mocný nástroj pro kutily. 

Tento shield (štít) je vynikající pomocník, protože na sobě integruje:

 - RTC modul, tedy modul reálného času (zálohovaný baterií)
 - SD modul pro čtení / ukládání dat na SD kartu v normální velikosti
 - volný prostor pro letování dalších obvodů

Můžeme tak mít krásně na jednom místě instalováno vše co potřebujeme pro nějaký sběr dat a podobně.

Já jsem tento modul využil pro logování teplot (a nejen teplot) u našeho zahradního bazénu, kdy Arduino načítá teploty z bazénu, solárního panelu, teplotu ve stínu a teplotu na slunci. Tyto teploty se ukládají na SD kartu a následně se ještě odesílají na server. Celý program řízení bazénu je poměrně obsáhlý, má asi 800 řádků, takže ten by Vám moc nepomohl. 

Dnes si prostě "polopatisticky" popíšeme, jak Data logger shield pracuje a jak využít RTC modul a SD modul, které jsou na něm integrovány.

Než začneme

K použití DataLoggeru (tedy jeho jednotlivých komponent) budete potřebovat obslužné knihovny, a to knihovnu pro RTC modul a knihovnu pro SD modul. Stáhnete si je například tady z našeho E-shopu, na detailu zboží

Nejprve si ukážeme použití RTC modulu.

POZOR - POKUD CHCETE POUŽÍT ARDUINO MEGA, BUDETE MUSET PROPOJIT SPRÁVNÉ PINY NA DATALOGGER SHIELDU, TAK JAK JSOU POUŽITY NA ARDUINU MEGA, JINAK VÁM NEBUDE FUNGOVAT ANI SD MODUL, ANI RTC MODUL.
 

RTC modul komunikuje přes piny SDA a SCL, na Arduinu MEGA jsou to piny 20 a 21, pozor - na Arduinu UNO jde o piny A4 a A5.  Pokud máte nový DataLogger Shield, není na něm nasazena baterie a tak nebude (pravděpodobně) RTC modul funkční.

Nasaďte tedy baterii a spusťte následující program.
 

Tento program nastaví RTC modul na aktuální čas dle Vašeho počítače.
Čas se ale nastaví pouze v případě, že RTC modul neběží, tedy byla vložena baterie, ale nebyl ještě nastaven čas = nebyl spuštěn RTC modul. Ta podmínka je tam, protože když ji odstraníte, nastavil by se čas vždy po resetu zařízení a to vždy na hodnotu platnou při uploadu programu.
Pokud tedy potřebujete čas upravit na přesný a již Vám modul běží, odstraňte podmínku a čas se nastaví dle počítače ihned po uploadu do desky, následně ihned uploadujte jiný program, aby nedošlo k velké prodlevě a čas zůstal co nejvíce aktuální. Při každém resetu by se totiž nastavila původní hodnota a tím by se modul zpožďoval.

 

Teď tedy máme nastaven aktuální čas a RTC modul si jej již podrží díky vlastní baterii, ta je celkem trvanlivá, při dobré kondici vydrží asi 2-3 roky spolehlivě, někdy se udává 5 let a více.

RTC modul samozřejmě uchovává kompletní časový údaj, tedy celé datum a celý čas. Včetně přestupných roků a podobně.

Vzhledem k tomu, že se jedná o DataLogger, je použití RTC modulu podmínkou k tomu, abychom mohli nějak smysluplně ukládat (logovat) nějaké hodnoty do souboru, protože bez časového určení by nám tato data byla většinou k ničemu.

A k uložení na SD kartu nám poslouží SD modul. 

Vložte si tedy do slotu pro SD kartu nějakou vhodnou SD kartu, naformátovanou systémem FAT nebo FAT32. Ověřenou mám funkčnost do 4GB, větší jsem neměl po ruce, ale to již můžete odzkoušet sami.

Do Arduina si nahrejte tento program:

Ale POZOR!

Zde je důležité rozlišit, jaké Arduino používáte, pro klasické UNO nechte program tak jak je, ale pro Arduino MEGA musíte upravit řádky v programu (jinak Vám SD modul nebude fungovat!), v programu je místo dobře popsáno.

Program udělá pouze to, že na vloženou kartu zapíše testovací soubor s názvem "test.txt", do kterého vloží testovací text. Následně soubor opět otevře a vypíše jeho obsah na serial port, takže si nezapomeňte otevřít konzolu SerialPortu a nastavit si správnou rychlost. (57600 baudů)

Už takhle je článek příliž dlouhý, takže spojení funkce RTC modulu a SD modulu si vyzkoušejte sami, ale já se k němu určitě v brzké budoucnosti vrátím.

 

Zpět

Kontakt

Arduino-Home

© 2014 Všechna práva vyhrazena.

Tvorba webových stránek zdarmaWebnode