• No results found

1.4 Metody archivace dat

1.4.2 Paměťová média

při komunikaci s displejem, teplotním čidlem LM92 aj. Z osobního pohledu je tento systém povedenou a uživatelsky příjemnou komunikační metodou. V kapitole 4 Shrnutí naměřených a pozorovaných výsledků je přehled naměřených hodnot na této komunika-ci.

1.4 Metody archivace dat

V posledním bodě této teoretické části se budu věnovat archivaci naměřených dat, jed-nou z úvah bylo přidání samostatného paměťového modulu s SD kartou na senzory, jelikož jsem tuto variantu zcela nezavrhnul, je na senzorech možnost připojení modulu pro SD kartu a tím je umožněna archivace bez využití koncového bodu. Tato funkce ovšem není primárně zapnuta (program je zakomentován) a její pozici nahradil AD pře-vodník ADS1247. Primárně pro archivaci dat slouží sběrný bod připojitelný pomocí USB rozhranní k PC. K samotné archivaci je možno využít SD modulu na sběrném bo-dě, či data získaná po sériové lince pomocí programu v PC a jejich následný export do tabulkových procesorů pro lepší zpracování.

1.4.1 SW archivace

Softwarová archivace je možná v případě připojení PC či notebooku ke sběrnému bodu, k extrakci dat ze sběrného bodu slouží program, který data převede do textového soubo-ru. Takto získaná data je pak možno importovat do tabulkových procesorů a provést základní úpravy, vložit grafy a provést operace poskytující daný editor.

Obrázek 1-2: Textový soubor po exportu

Formát dat: ČAS, HODNOTA, VELIČINA, ID SONDY;

1.4.2 Paměťová média

Jelikož pro archivaci pomocí nějakého SW je zapotřebí připojený zapnutý počítač, je to poměrně náročné na umístění sběrného bodu (musí být zhruba do 4 m od PC) a na požadavky ohledně techniky (PC, NB). Z tohoto důvodu je nutné umožnit archivaci v případě, že tato zařízení nebudou k dispozici. Na samostatné paměťové médium není kladen až tak vysoký nárok, musí být energeticky nezávislé a odolné proti změnám tep-loty, jelikož se jedná o terénní snímače. Z těchto dvou požadavků vznikl nápad využití paměti EEPROM, či paměťové karty (SD/MMC), jelikož pro extrakci dat je potřeba přenositelnosti média, byla vybrána SD karta, tyto paměťové karty jsou schopny praco-vat od – 45°C, do 85°C což jsou údaje srovnatelné s pracovní možností jednotlivých komponent. SD karta má navíc poměrně jednoduchý způsob zápisu. Pro samostatný zápis není potřeba žádného modulu, jelikož s použitím vhodných knihoven lze využít integrované SPI technologie na námi použitém procesoru firmy Microchip (a jiných).

15

2 Analýza a návrh řešení

2.1 Čidla, senzory

Jelikož je naším úkolem měřit, neobejdeme se bez jednotlivých čidel a senzorů. Pro ujasnění situace je nutné si tyto dva pojmy definovat. Čidlem rozumíme snímací prvek měnící jednu veličinu na jinou, pro nás měřitelnou veličinu, jakou je například napětí (pH čidla) či elektrický odpor (teplotní čidlo PT1000). Senzor je pak systém skládající se z čidla a elektroniky umožňující práci s danou veličinou (AD převod, ošetření nebez-pečných stavů, zajištění stability, linearizace aj.).

2.2 Teplota

Měření teploty je pro nás jedním z nejdůležitějších témat, jelikož teplotu využijeme i v ostatních měřeních, jako doplněk pro určení správné hodnoty jiných veličin, napří-klad pH sonda je velmi teplotně závislá a vlhkost díky využití psychrometrické metody, je přímo závislá na teplotě, kde snímáme teplotu s vysokým rozlišením pro určení rozdí-lu dvou teplotních čidel (více v kapitole 3.1.2 Vlhkost). Pro snímání teploty okolí v běžném prostředí (domácnost, kancelář, louka) nám postačí senzor, který je možné koupit jako celek, ovšem pro měření teploty s vysokou přesností je potřeba si takovýto senzor postavit. Jako čidlo pro tento senzor se dá využít například PT 100 či PT 1000.

2.2.1 Teplotní senzor LM92

Řada LMxxx od firmy Texas Instruments je řada senzorů teploty disponujících komu-nikačním rozhranním I2C a analogově digitálním převodníkem od 12 do 16bitů. Každá řada má jiné vlastnosti, jiné tolerance. V našem případě využíváme LM92 (datasheet přiložen na CD), který disponuje 12bitovým převodníkem. V defaultním nastavení je rozlišení 0,0652°C na 1bit. Což znamená, že v případě kdy na výstupu čidla máme 000 1001 0000 tak se jedná o hodnotu 26,08°C. Jelikož krok je poměrně velký, není tento senzor vhodný pro měření vlhkosti psychrometrickou hodnotou, ale postačí jako informační hodnota pro pH sondu či pro indikaci teploty okolí v běžném prostředí. Dle výrobce je maximální možná odchylka 0,33°C v krajních bodech, které je možné upra-vovat pomocí registrů v senzoru a tím si vybrat vlastní oblast měření a omezit chybu hodnoty a velikost kroku.

2.2.2 Teplotní čidlo PT 1000

Čidla PT 100 a PT 1000 jsou čidla založená na vlastnosti změny elektrického odporu v závislosti na jejich teplotě. Jelikož rozdíl těchto čidel je v jejich hodnotě odporu, bylo vhodné použít PT 1000 která má při 0°C hodnotu odporu 1000Ω a jeho hodnota odporu je dána vztahem: - - - - - - což nám dává jistou představivost, že čidlo není úplně lineárně závislé, ale vliv nelinea-rity je dostatečně nízký pro možnost využití těchto čidel.

16 2.3 Vlhkost

2.3.1 Psychrometr

Po provedené rešerši bylo rozhodnuto, že by bylo vhodné použít takzvanou psychromet-rickou metodu měření vlhkosti, která spočívá v měření tzv. mezního adiabatického ochlazení - realizuje se jako ochlazení vodou nasáklého teploměru, v proudu vzduchu.

Takto upravený teploměr se nazývá mokrý teploměr. Jelikož voda se snaží odpařovat, dochází k ochlazení tohoto teploměru. Následně se provede porovnání suchého a tohoto nasáklého teploměru. Ze vztahu:

kde: Δt [K] je psychrometrický rozdíl teplot, t je teplota vzduchu, zde je zvykem jí na-zývat teplota suchého teploměru - je měřena neupraveným, tedy suchým teploměrem, tm je teplota mokrého teploměru, p"vm [Pa] je parciální tlak syté páry při teplotě mokré-ho teploměru, pv [Pa] je parciální tlak vodních par ve vzduchu, A [1/K] je psychromet-rický součinitel, p [Pa] je statický tlak vzduchu v místě měření. Psychrometpsychromet-rický souči-nitel je pro rychlost proudění větší než 2 m/s konstantní.

Vzhledem k této vlastnosti je nutné zajistit „nucené“ odvětrávání v místě s mok-rým teploměrem, o tento jev se postará standardní 5V větráček, který bude foukat vzduch na teplotní čidlo.

2.3.2 Mechanický hygrometr

Jednou z metod měření je i mechanický hygrometr pracující na bázi změny objemu ma-teriálu se změnou vlhkosti. Tato metoda má poměrně problémové snímání a tak byla pro naše účely zavržena.

2.3.3 Elektronický hygrometr

Elektrické hygrometry mění svoji kapacitu či odpor. Jejich zásadní nevýhodou je po-měrně malý rozsah, kde jsou schopny měřit. Většina těchto čidel má pracovní oblast od 20 do 80% relativní vlhkosti, což neodpovídá našim předpokladům universálnosti.

Přesto bylo toto čidlo použito v kombinaci s psychrometrickou metodou pro porovná-vání hodnot a tím by mělo přispět ke snížení výskytu možné chyby.

2.3.4 Senzory rosného bodu

Jedná se zejména o optické senzory sledující orosení nějakého referenčního povrchu.

Druhou možností je využít krystalový oscilátor a sledovat jeho změnu frekvence vzni-kající se změnou vlhkosti vzduchu.

2.3.5 X-heat senzory

Tyto senzory jsou průmyslovou odpovědí na měření vlhkosti vysokých hodnot, samotná metoda spočívá v předehřevu jednoho z kapacitních senzorů, zatímco druhý, referenční,

17 senzor je umístěn v kapalném dusíku. Tyto čidla jsou přesné a dle údajů v datasheetech dosahují přesnosti 0,1% až do vlhkosti 99,8%. Bohužel jejich cena tomuto výkonu od-povídá.

2.4 pH

Pro měření pH je předpoklad užití standardní pH sondy používané v průmyslu, tyto sondy dosahují přesnosti až 0,001pH. Jelikož pH sonda vyžaduje vysoký vstupní odpor (řádově 1014 Ω) je nutné vytvořit impedanční přizpůsobení. Tyto sondy pracují na mě-ření potenciálu mezi referenční a měrnou elektrodou, tudíž výstupní veličinou sondy je napětí. Problémem zde je fakt, že pH sondy mají rozsah od záporného do kladného napětí a pro bateriový provoz je tedy nutné udělat určitá opatření, která nám umožní mít napěťový rozsah -V ->0 -> +V pro správné měření. Více v kapitole 3 Realizace práce.

Obrázek 2-1: čidlo pro měření pH

2.5 Přenos signálu

Pro přenos signálu byly vybrány nakonec 3 různé moduly (BTM222, OWL221a a LT2510), jejich datasheety jsou přiloženy na CD. Jelikož každý z těchto modulů má jiné rozhranní, konfigurační příkazy a způsob odesílání dat, byla tato práce poměrně náročná. Dalším faktorem byla u některých modulů neochota komunikace a poskytnutí informací jejich výrobcem, což poměrně dosti zvyšovalo náročnost na jejich aplikaci.

Samotné zhodnocení bude uvedeno na konci práce v kapitole 4 Shrnutí naměřených a pozorovaných výsledků.

2.5.1 Analýza modulů a jejich konektivity

Cílem bylo získat informace o připojení k mikroprocesoru, komunikaci s procesorem, nastavení registrů, možností modulu, jejich efektivity a jejího vlivu na energetickou náročnost. Některé parametry se dali vyčíst z datasheetů a některé bylo potřeba získat experimentálně. Jelikož většina modulů měla k dispozici UART, SPI a I2C či alespoň dvě jejich kombinace, byla tím samotná komunikace s procesorem tím vyřešena.

2.5.2 BTM222

Tento modul je postaven na technologii bluetooth a všeobecně jeho podpora je poměrně velká, jelikož je to modul používaný i v mobilních zařízeních, robotice a jiných oblas-tech. Díky jeho oblíbenosti je jeho podpora ze strany nadšených elektrotechniků natolik vysoká, že s tímto modulem nebyli, žádné problémy či nenastali situace, které by již

18 někdo dříve neřešil. V našem případě využijeme jeho možnosti komunikace po UARTu.

Řízení těchto modulů je pomocí příkazové řádky (terminálu) je poměrně rychlé pře-hledné a pro procesor snadné, jelikož je dostačující poslat string (datový řetězec) po komunikační lince.

2.5.3 LT2510

Moduly LT2510 jsou proprietární moduly firmy LairdTech, samotná práce s moduly je poměrně problémová jelikož chybí dostatečná technická podpora a možnosti nastave-ní, jedinou možnou komunikací s PC bylo využití VirtualBoxu, jelikož bylo zapotřebí prostředí MS Windows XP, vzhledem k nízké podpoře ze strany firmy. Po analýze mo-dulů, se nakonec podařilo navázat komunikaci, data přenést, ale je poměrně problém provést rekonfiguraci již nasazených modulů bezdrátově.

2.5.4 OWL221a

OWL221a je modul firmy connectBlue založený na technologii WiFi pracující v pásmu 2,4GHz a 5GHz, samotná konfigurace a komunikace probíhá pomocí rozhranní SPI.

Datasheet pokrývá informace o veškerých registrech, jejich adresách a nastavovacích hodnotách. Po zprovoznění těchto čidel, byla práce s nimi poměrně snadná a přehledná, jedinou nevýhodou je jejich technologie (WiFi není vhodná pro některé prostory).

2.6 Návrh zapojení pro použití v našem zadání

Jelikož bylo nutné najít vhodné komunikační rozhranní a zajistit přenos dat mezi proce-sorem a modulem bylo potřeba navrhnout konkrétní řešení. Většina modulů komunikuje na 3,3V zatímco náš DC-DC měnič, který je osazen na senzorové desce nám poskytuje napětí 5V, z tohoto důvodu byla jedna z možností udělat napěťové přizpůsobení pomocí napěťového děliče (nevhodná varianta) a druhá přizpůsobení pomocí LDO a 4 tranzisto-rů (tato varianta je vidět na komunikační desce).

2.7 SW řešení 2.7.1 Přerušení uP

Procesor při svém chodu spotřebovává určité množství energie, jelikož ne vždy zpraco-vává údaje, je zbytečné, aby byl stále v chodu, zde přichází na řadu funkce sleep a pře-rušení, která při jakékoliv události procesor probudí a donutí analyzovat takto vzniklou událost. Dalším užitečným využitím přerušení je jeho nastavení priority, které je možno využít pro přerušení veškeré činnosti pro nerušený přenos dat.

2.7.2 Komunikace s moduly

Pro komunikaci s moduly na úrovni přenosu dat byly využity výše zmíněné metody komunikace (SPI, UART, I2C), ale pro samotné řízení energie modulů je tento proces zbytečný, moduly je též možno uložit do režimu sleep a počkat na přerušení, ale pro snížení energetické náročnosti je možno využít odepínání napájecího napětí pomocí

19 procesoru a tranzistoru. Po „probuzení“ naváže kontakt s procesorem a procesor vyšle svá data.

2.8 Komunikace s PC

Pro komunikaci s PC je možno využít známých protokolů RS232, LPT, BT, WiFi, USB. Jelikož většina PC nemá k dispozici RS232, bylo jako prioritní připojení zvoleno připojení přes USB 2.0 a jako sekundární komunikace BT.

2.8.1 USB deskriptor

Pro využívání USB komunikace je nutno na zařízení nastavit deskriptory, základním je tzv. „Device descriptor“, který obsahuje informace o revizi USB, ID výrobce, ID produktu, které slouží pro správné načtení ovladačů. Pro naše účely byl použit konfigu-rátor od firmy Microchip (přiložen na CD) a ID produktu a výrobce bylo okopírováno z CDC emulator RS232-USB, což nám umožňuje plnou podporu ze strany společnosti Microsoft a zařízení se po připojení chová jako sériový převodník na COM portu. Dal-šími deskriptory jsou: „Configuration descriptor“, „Interface descriptor“ a „Endpoint descriptor“, které není nutné vymýšlet, jelikož jsou k dispozici jako knihovna a na uži-vateli je pouze volání metod s vhodnými parametry.

2.8.2 SW pro příjem dat

Jako software v PC pro příjem dat lze použít libovolný terminál umožňující komunikace po sériové lince. Jelikož by bylo problémové data z terminálu dále zpracovávat, je na CD (ve fázi vývoje) umístěn program pro komunikaci se sběrným bodem a senzo-ry, tento program obsahuje řadu nástrojů pro nastavení měřícího HW a možnost archi-vace dat pomocí jejich exportu viz kapitola SW archiarchi-vace.

2.9 Zpracování chyb měřených hodnot

Jak je uvedeno v kapitole Popis problému, specifikace cíle, jedná se o senzory, operující v různých prostředích. Z návrhu a podstaty věci, je jasné, že tyto senzory budou dispo-novat řadou součástek. Každá součástka je závislá na okolních podmínkách, které ovlivňují její parametry. Z tohoto důvodu je zapotřebí alespoň částečně kompenzovat chyby vzniklé touto vlastností. Většina těchto chyb je matematicky popsána a otázkou zbývá, zda tyto chyby opravovat v počítači, kde tato data zpracováváme, či ve sběrném bodě. Jelikož zde máme možnost měření teploty, je pro nás poměrně snadné kompenzo-vat teplotní vlivy dle vztahu: . Díky tomu, že konečná stanice je připojena přes USB a není tak potřeba nízkého odběru a procesor je dostatečně rychlý, je rozumnější tyto nejistoty a chyby měření kompenzovat zde, pro případ, že by se uživatel rozhodl využívat vlastního programu pro zobrazení namě-řených dat. Další chyba teplotního snímače je dána jeho třídou, u PT 1000 to jsou třídy AA, A, B, C. V našem případě byly použity čidla třídy A, kde může nastat chyba . Tedy při 0°C je hodnota teploty rovna (0,00 ±0,15)°C. Tuto chybu je potřeba zohlednit při práci s naměřenými daty.

20

3 Realizace práce

Samotná realizace se od chystaného návrhu neliší v žádných větších změnách hardwaru.

Při realizaci došlo k jistým úpravám v softwarovém řešení, jelikož procesory se necho-valy, jak bylo předpokládáno.

3.1 Návrh teplotního čidla

Pro snímání orientační hodnoty byl využit integrovaný obvod LM92, který byl zmíněn v kapitole 2.2.1 Teplotní senzor LM92, tato hodnota je dána krokem 0,0652°C na 1 bit, což stačí k zajištění matematické kompenzace ostatních čidel. Jelikož není potřeba data z čidla nijak digitalizovat, či převádět, je pouze připojen k procesoru a jeho funkce jsou volány metodami, které jsou implementovány v knihovně I2C v compileru XC8. Pro měření přesné hodnoty teploty bylo zvoleno čidlo PT1000 (více v kapitole 2.2.2 Teplot-ní čidlo PT 1000), které je vzorkováno pomocí obvodu ADS1247, což je delta sigma převodník s rozlišením 24b (datasheet přiložen na CD). Získávání dat z jednotlivých čidel a popis komunikace bude vysvětlovat kapitola 3.4 Návrh celého systému. Jelikož pro senzorovou desku je přístup k oběma zařízením stejný (LM 92 a ADS1247), stačí uvést jeden z postupů:

Obrázek 3-1: Operace s I2C na teplotních čidlech

Tento princip je stejný u všech použitých A/D převodníků, z tohoto důvodu, se na tento sled událostí popsaný viz Obrázek 3-1: Operace s I2C na teplotních čidlech budu odvo-lávat i v pozdějších kapitolách.

21 3.2 Návrh čidla pro měření vlhkosti

Jak bylo již naznačeno v předešlé kapitole, jedinou možnou variantou v našem případě je psychrometrická metoda. Při návrhu psychrometru bylo oproti standardním, sériově vyráběným psychrometrům provedeno pár změn, které nám objasní nákres senzoru.

Výsledky z tohoto senzoru jsou k vidění v poslední kapitole této práce, bohužel je ale nutno již nyní podotknout, že tato metoda není na bateriový provoz z hlediska spotřeby vhodná. Díky nutnosti psychrometru mít k dispozici nucené odvětrávání, je námi zvole-ný ventilátor a jeho spínání poměrně vysokou zátěží a tím dochází k rychlému opotře-bení baterií.

Obrázek 3-2: Navržený psychrometr

Vysvětlivky:

Tabulka 1: Vysvětlivky k nákresu psychrometru

Č. Název Funkce

1 Suchý teploměr Snímá teplotu okolí, materiál Cu

1.1 PT1000 Čidla pro snímání teplot, pokryt GL2 teplovodivou pastou 2 Mokrý teploměr Snímá teplotu závislou na odpařování vody, materiál Cu + textilie 3 AD převodník Diferenční Delta-Sigma převodník s kompenzací, ADS1247 4 Procesorová

jed-notka

Řídící jednotka pro zpracování údajů z ADC, zapínání odvětrávání, řízení komunikace a řízení spotřeby (režim sleep)

5 Zkumavka s vodou Zásoba vody pro vlhčení mokrého teploměru

6 Izolační držák Nosná konstrukce pro teploměry a větrák z teplotně izolačního mate-riálu

7 Větráček 5V DC větráček řízený z uP pro zabezpečení odvětrávání 8 Kapacitní čidlo Porovnávací kapacitní čidlo vlhkosti, které měří v rozsahu od 15%

do 85% relativní vlhkosti

9 Baterie Lithiové baterie 2 x 1,5V pro napájení řídící jednotky

22 3.2.1 Popis funkce:

Princip psychrometru spočívá v měření teploty, jak zde již bylo nastíněno v kapitole 2.3.1 Psychrometr, náš konkrétní případ psychrometru je vybaven nádržkou na vodu, 5V stejnosměrným větráčkem pro zabezpečení průtoku vzduchu pro odpařování vody z mokrého teploměru a kapacitním senzorem teploty, který slouží v jistých mezích jako orientační hodnota pro psychrometr, z důvodu zapínání větrání, které je energeticky náročné. Samotné získávání dat probíhá ve více krocích, v prvním kroku dojde k probuzení senzorové desky (procesor dostane impuls od RTC), začne postupně s inicializací periférií (UART, SPI, I2C), ve chvíli kdy je inicializace I2C hotova dojde k zapsání ukazatele na registru u ADS1247, který následně pošle horní byte naměřených dat, počká na ACK a pošle spodní byte dat. Nyní zažádá procesor o data z kapacitního senzoru, který stejným postupem pošle data procesoru. Procesor porovná přijatá data s daty z psychrometrické části a na základě určité tolerance rozhodne, zda tyto data jsou validní. Mají-li data velký rozestup hodnot, sepne procesor větrání a čeká po dobu 1 minuty. Po uplynutí této doby opět zažádá o údaje z psychrometru. Jsou li data v toleranci, dojde k ukončení I2C a proběhne připravení dat pro odeslání sběrnému bo-du. Navázáním spojení, dojde na sběrném bodě k přerušení jeho činností a vyčkává pro příjem dat. O tomto procesu si řekneme podrobněji v následujících kapitolách.

3.2.2 Popis SW řízení a odesílání dat:

Jak zde již bylo zmíněno v předchozí kapitole, o vše se stará procesor, který má za úkol data jak získat tak poslat dále. Samotné získání dat bylo částečně popsáno v předchozí kapitole a podrobnější rozepisování inicializace a získávání by bylo poměrně zdlouhavé a zbytečné, navíc Obrázek 3-1: Operace s I2C na teplotních čidlech jej plně vystihuje.

Data, které procesor získal, jsou uložena v dočasných registrech. Při samostatném ode-sílání dat, jsou vynechány data z kapacitního snímače, jelikož nás nezajímají a mají pouze orientační účel. Jelikož potřebujeme určitou zpětnou vazbu o správnosti přícho-zích dat, je zaveden jednoduchý komunikační protokol s kontrolou údajů. Samotná kon-trola správnosti probíhá tak, že se vezme horní byte teploty a se spodním bytem teploty se logicky vynásobí (funkce AND) a matematicky se k tomu přičte hodnota vlhkosti (ignoruje se příznak přetečení). Tato hodnota je následně odeslána zpět na senzor a ten provede se svými daty totéž a obě hodnoty porovná. V případě, že tato data nesedí, jsou odeslána znovu, nesedí li podruhé, čidlo provede celý cyklus inicializace komunikační-ho znova.

3.2.3 Převod teploty na vlhkost

Samotné naměřené hodnoty nám ovšem říkají jen teploty a jejich rozdíl, jelikož se jedná o senzor vlhkosti, bylo by vhodné tento údaj získat. Zde přichází v úvahu již jednou zmíněná rovnice , kterou procesor senzorové desky zpracovává v samostatné metodě, vyhodnotí ji a její výsledek uloží do registru pro psychrometric-kou vlhkost. Jelikož se ovšem nedá nahrát celá tabulka psychrometrických rozdílů do procesoru, je nutné na to vytvořit rovnici a algoritmus.