VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií Ústav radioelektroniky
Bakalářská práce bakalářský studijní obor Elektronika a sdělovací technika Student: Ročník:
Pavel Holínek 3
ID: 70069 Akademický rok: 2009/2010
NÁZEV TÉMATU:
Sběr a přenos meteorologických dat POKYNY PRO VYPRACOVÁNÍ: Prostudujte současné amaterské projekty pro sběr meteorologických dat. Navrhněte blokové uspořádání vlastní stanice pro měření počasí a následný bezdrátový sběr těchto dat. Vyberte a proměřte senzory zkoumaných veličin. Zaměřte se na přesnost a stálost parametrů a na měřené rozsahy. Navrhněte způsob bezdrátového přenosu dat a sestavte obvodové zapojení celého zařízení. Navrhněte desku plošného spoje a oživte celé zapojení. Naprogramujte ovládací program meteorologické stanice. Proveďte testování zařízení s ohledem na spolehlivost, přesnost a navrhněte jednoduchý způsob vizualizace exportovaných dat v počítači. Detailně analyzujte spotřebu celého zařízení. DOPORUČENÁ LITERATURA: 1] Atmel Corporation. AVR 8-Bit RISC. [online]. 2008 – [cit. 2. února 2009]. Dostupné na WWW: http://www.atmel.com/products/avr/ [2] BARNETT, R.H., COX, S. O'CULL, L. Embedded C Programming and the Atmel AVR. New York: Thomson Delmar Learning, 2007. 532 stran. ISBN 1-4180-3959-4 Termín zadání:
8.2.2010
Vedoucí práce:
Ing. Tomáš Frýza, Ph.D.
UPOZORNĚNÍ:
Termín odevzdání:
28.5.2010
prof. Dr. Ing. Zbyněk Raida Předseda oborové rady
Autor bakalářské práce nesmí při vytváření bakalářské práce porušit autorská práva třetích osob, zejména nesmí zasahovat nedovoleným způsobem do cizích autorských práv osobnostních a musí si být plně vědom následků porušení ustanovení § 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení části druhé, hlavy VI. díl 4 Trestního zákoníku č.40/2009 Sb.
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV ELEKTRONIKA A SDĚLOVACÍ TECHNIKA
Sběr a přenos meteorologických dat
BAKALÁŘSKÁ PRÁCE BACHELOR’S THESIS
AUTOR PRÁCE AUTHOR
BRNO 2010
Pavel Holínek
VYSOKÉ BRNĚ
UČENÍ
TECHNICKÉ
V
BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA ELEKTROTECHNIKY KOMUNIKAČNÍCH TECHNOLOGIÍ
A
ÚSTAV RADIOELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF RADIO ELECTRONICS
SBĚR A PŘENOS METEOROLOGICKÝCH DAT
BAKALÁŘSKÁ PRÁCE BACHELOR’S THESIS
AUTOR PRÁCE
Pavel Holínek
AUTHOR
VEDOUCÍ PRÁCE SUPERVISOR
BRNO, 2010
Ing. Tomáš Frýza, Ph.D.
LICENČNÍ SMLOUVA POSKYTOVANÁ K VÝKONU PRÁVA UŢÍT ŠKOLNÍ DÍLO uzavřená mezi smluvními stranami: 1. Pan/paní Jméno a příjmení:
Pavel Holínek
Bytem:
Závořická 561, Postřelmov, 789 69
Narozen/a (datum a místo):
8. září 1986 v Zábřehu
(dále jen „autor“) a 2. Vysoké učení technické v Brně Fakulta elektrotechniky a komunikačních technologií se sídlem Údolní 53, Brno, 602 00 jejímž jménem jedná na základě písemného pověření děkanem fakulty: prof. Dr. Ing. Zbyněk Raida, předseda rady oboru Elektronika a sdělovací technika (dále jen „nabyvatel“) Čl. 1 Specifikace školního díla 1. Předmětem této smlouvy je vysokoškolská kvalifikační práce (VŠKP): disertační práce diplomová práce bakalářská práce jiná práce, jejíž druh ...................................................... (dále jen VŠKP nebo dílo) Název VŠKP:
Sběr a přenos meteorologických dat
Vedoucí/ školitel VŠKP: Ing. Tomáš Frýza, Ph.D. Ústav:
je
Ústav radioelektroniky
Datum obhajoby VŠKP: __________________
specifikován
jako
VŠKP odevzdal autor nabyvateli*: v tištěné formě –
počet exemplářů: 2
v elektronické formě –
počet exemplářů: 2
2. Autor prohlašuje, že vytvořil samostatnou vlastní tvůrčí činností dílo shora popsané a specifikované. Autor dále prohlašuje, že při zpracovávání díla se sám nedostal do rozporu s autorským zákonem a předpisy souvisejícími a že je dílo dílem původním. 3. Dílo je chráněno jako dílo dle autorského zákona v platném znění. 4. Autor potvrzuje, že listinná a elektronická verze díla je identická.
Článek 2 Udělení licenčního oprávnění 1. Autor touto smlouvou poskytuje nabyvateli oprávnění (licenci) k výkonu práva uvedené dílo nevýdělečně užít, archivovat a zpřístupnit ke studijním, výukovým a výzkumným účelům včetně pořizovaní výpisů, opisů a rozmnoženin. 2. Licence je poskytována celosvětově, pro celou dobu trvání autorských a majetkových práv k dílu. 3. Autor souhlasí se zveřejněním díla v databázi přístupné v mezinárodní síti ihned po uzavření této smlouvy 1 rok po uzavření této smlouvy 3 roky po uzavření této smlouvy 5 let po uzavření této smlouvy 10 let po uzavření (z důvodu utajení v něm obsažených informací)
této
smlouvy
4. Nevýdělečné zveřejňování díla nabyvatelem v souladu s ustanovením § 47b zákona č. 111/ 1998 Sb., v platném znění, nevyžaduje licenci a nabyvatel je k němu povinen a oprávněn ze zákona. Článek 3 Závěrečná ustanovení 1. Smlouva je sepsána ve třech vyhotoveních s platností originálu, přičemž po jednom vyhotovení obdrží autor a nabyvatel, další vyhotovení je vloženo do VŠKP.
*
hodící se zaškrtněte
2. Vztahy mezi smluvními stranami vzniklé a neupravené touto smlouvou se řídí autorským zákonem, občanským zákoníkem, vysokoškolským zákonem, zákonem o archivnictví, v platném znění a popř. dalšími právními předpisy. 3. Licenční smlouva byla uzavřena na základě svobodné a pravé vůle smluvních stran, s plným porozuměním jejímu textu i důsledkům, nikoliv v tísni a za nápadně nevýhodných podmínek. 4. Licenční smlouva nabývá platnosti a účinnosti dnem jejího podpisu oběma smluvními stranami.
V Brně dne: 28. května 2010
……………………………………….. Nabyvatel
………………………………………… Autor
ABSTRAKT Práce pojednává o sběru a prezentaci meteorologických dat. Pro získání dat byla použita digitální i analogová čidla, která zpracovává mikrokontrolér ATmega16. Stanice má 2 moduly. První je určený pro monitorování vnitřních veličin a zobrazování dat, druhý pak pro venkovní měření. Dále se práce zabývá srovnáním s jinými meteorologickými stanicemi a další možností rozšíření.
KLÍČOVÁ SLOVA Meteostanice, počasí, teplota, vlhkost, tlak, anemometr
ABSTRACT This document is about collection and presentation of meteorological data. To get data was used digital and analog sensors, controled by the microcontroller ATmega16. Meteostation has 2 modules. The first is designed for monitoring of indoor values and displaying data, the second module is for outdoor measurements. Next research was focused on the comparison with other meteorological stations and more expansion options.
KEYWORDS Meteostation, weather, temperature, humidity, presure, anemometr
HOLÍNEK, P. Sběr a přenos meteorologických dat . Brno: Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií. Ústav radioelektroniky, 2010. 24 s., 9 s. příloh. Bakalářská práce. Vedoucí práce: Ing. Tomáš Frýza, Ph.D.
PROHLÁŠENÍ Prohlašuji, že svou bakalářskou práci na téma Sběr a přenos meteorologických dat jsem vypracoval samostatně pod vedením vedoucího bakalářské práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou všechny citovány v práci a uvedeny v seznamu literatury na konci práce. Jako autor uvedené bakalářské práce dále prohlašuji, že v souvislosti s vytvořením této bakalářské práce jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních a/nebo majetkových a~jsem si plně vědom následků porušení ustanovení § 11 a následujících zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon), ve znění pozdějších předpisů, včetně možných trestněprávních důsledků vyplývajících z ustanovení části druhé, hlavy VI. díl 4 Trestního zákoníku č. 40/2009 Sb. V Brně dne ..............................
.................................... (podpis autora)
PODĚKOVÁNÍ Děkuji vedoucímu bakalářské práce Ing. Tomáši Frýzovi Ph.D. a Ing. Václavu Šnajdrovi za účinnou metodickou, pedagogickou a odbornou pomoc a další cenné rady při zpracování mé bakalářské práce. Dále by chtěl poděkovat firmám, které umožnili zaslání vzorků použité v meteorologické stanici.
V Brně dne ..............................
.................................... (podpis autora)
OBSAH Seznam obrázků
x
Seznam tabulek
xi
Úvod
1
1
2
Výběr čidel
3
1.1
Mikrokontrolér .......................................................................................3
1.2
Měření teploty ........................................................................................4
1.3
Měření vlhkosti ......................................................................................7
1.4
Měření tlaku ...........................................................................................9
1.5
Měření směru větru .............................................................................. 10
1.6
Měření rychlosti větru .......................................................................... 13
1.7
Zobrazení ............................................................................................. 14
1.8
Bezdrátová komunikace .......................................................................15
Testování a konstrukce
17
2.1
Testování ............................................................................................. 17
2.2
Konstrukce ........................................................................................... 19
Závěr
21
Literatura
22
Seznam symbolů, veličin a zkratek
23
Seznam příloh
24
3
ix
SEZNAM OBRÁZKŮ Obr. 1 Blokové schéma přijímací jednotky ....................................................................1 Obr. 2 Blokové schéma vysílací jednotky ......................................................................2 Obr. 3 Atmega16 rozložení pinů ....................................................................................4 Obr. 4 Pouzdro DS18B20 ..............................................................................................5 Obr. 5 Zapojení čidla s mikrokontrolérem .....................................................................5 Obr. 6 Časový průběh komunikace s DS18B20 a mikrokontrolérem (převzato z [1]) .....6 Obr. 7 Kombinované čidlo SHT75 ................................................................................7 Obr. 8 Srovnání přesností SHT71 a SHT75 (převzato z [2])...........................................8 Obr. 9 SHT měřící rámec (převzato z [2]) ......................................................................8 Obr. 10 Čidlo tlaku MPX4115A ....................................................................................9 Obr. 11 Převodní charakteristika MPX4115A převzato z [3] .......................................10 Obr. 12 Magnetický rotační enkodér AS5040 .............................................................. 11 Obr. 13 Časový diagram AS5040 ................................................................................ 11 Obr. 14 Časový průběh AS5040 průběhů DQ a CLK ................................................... 12 Obr. 15 Časový průběh AS5040 průběhů CLK a CSn .................................................. 12 Obr. 16 Miskový anemometr ....................................................................................... 13 Obr. 17 Uchycení anemometru .................................................................................... 14 Obr. 18 Znaková sada LCD ......................................................................................... 15 Obr. 19 Vysílač RFM02 .............................................................................................. 16 Obr. 20 Přijímač RFM01 ............................................................................................. 16 Obr. 21 Testovací nepájivé pole .................................................................................. 19 Obr. 22 Osazený vysílač .............................................................................................. 20 Obr. 23 Osazený přijímač ............................................................................................ 20
x
SEZNAM TABULEK Tabulka 1 Přehled vybraných předdefinovaných příkazů ...............................................6 Tabulka 2 Ukázka teplot a její digitální podoba .............................................................7 Tabulka 3 Seznam příkazů pro SHT75 ..........................................................................9
xi
ÚVOD Tato práce se zabývá získáváním a prezentováním dat meteorologické stanice. Jsou použita čidla pro získání údajů o teplotě, vlhkosti, atmosférického tlaku, dále o rychlosti a směru větru. Data získaná z digitálních i analogových čidel jsou zpracovávána mikrokontrolérem ATmega16, který byl naprogramován v programu AVR Studio 4 v jazyce C. Celá meteorologická stanice je složena ze dvou modulů. První modul je vnitřní, který přijímá data z venkovního modulu, měří teplotu a vlhkost uvnitř místnosti a prezentuje data získané z venkovního modulu pomocí bezdrátové komunikace. Všechny údaje se zobrazují na LCD displeji 16x4. Blokové schéma lze vidět na obrázku (viz obr. 1). Druhý, venkovní modul, měří teplotu, atmosférický tlak, rychlost a směr větru, a bezdrátovým modulem se vysílají do vnitřního modulu. Jeho blokové schéma je na obrázku (viz obr. 2).
Obr. 1 Blokové schéma přijímací jednotky
1
Obr. 2 Blokové schéma vysílací jednotky
2
1
VÝBĚR ČIDEL
Meteorologická stanice by měla měřit základní veličiny jako teplotu, vlhkost, atmosférický tlak a veličiny větru. Nejprve byla potřeba vybrat vhodná čidla. Jako ovládací jednotka byl zvolen mikrokontrolér Atmega16, který pracuje s číslicovými daty, proto bylo nejlepší, aby použitá čidla pro měření meteorologických veličin měla digitální výstup. Bohužel nebylo nalezeno čidlo pro měření atmosférického tlaku s digitálním výstupem, tudíž muselo být použito čidlo s výstupem analogovým. Dále bylo potřeba určit napájecí napětí stanice. Protože mikrokontrolér Atmega16 je napájen 5V, bylo i toto napětí zvoleno jako napájecí pro čidla.
1.1
Mikrokontrolér
O zpracovávání dat se v obou modulech stará mikrokontrolér Atmega16 od firmy ATMEL. Lze ho programovat buď asemblerem nebo v jazyce C v programu AVR Studio 4. Výhody mikrokontroléru Atmega16: RISC architektura Maximální interní frekvence 16MHz 16K bytů programovatelné flash paměti 512 bytů EEPRO paměti 1K bytů interní SRAM Teplotní stálost Dva 8bitové a jeden 16bitový čítač/časovač Čtyři PWM kanály Osm kanálů pro 10bitový analogově digitální převodník 32 programovatelných I/O pinů 40pinové DIP pouzdro Nízká spotřeba 1,1mA Atmega16 byl zvolen pro dostatečný počet I/O linek, velkou programovatelnou flash paměť, pro snazší testování bylo zvoleno DIP pouzdro. Na všech portech A (ADC0-ADC7) se nalézají AD převodníky, na kterých je připojen buď LCD displej, tlakové čidlo MPX4115A nebo teplotní čidlo DS18B20. K analogově digitálnímu převodníku slouží pomocné piny 32, 31 a 30, které slouží jako referenční a napájecí. Na portu B je připojen převodník z USB na RS232, který umožňuje připojení k počítači. Při testování byl k portu B připojen programátor Biprog. Některé porty C jsou od výroby zablokovány zámkem a lze je pomocí JTAG odblokovat. K portu D jsou pak připojena čidla. Rozložení pinů je na obrázku (viz Obr. 3).
3
Obr. 3 Atmega16 rozložení pinů
1.2
Měření teploty
Pro měření teploty bylo zvoleno teplotní digitální čidlo DS18B20 od firmy Maxim [1] s pouzdrem TO-92 (viz Obr. 4) pro lepší testování. Čidlo bylo vybráno podle přesnosti výsledků, jednoduché obsluze a rozsahu používání. Vybrané výhody: Unikátní 1-Wire rozhraní, které k obládání potřebuje mikrokontroléru Každé čidlo má unikátní 64-bitové sériové číslo k identifikaci Nepotřebuje žádné externí komponenty Napájení od 3,0V do 5,5V Měřící rozsah −55 °C ÷ +125 °C Přesnost ±0,5 °C při rozsahu −10 °C ÷ +85 °C Možnost výběru přesnosti 9 ÷ 12bitový výsledek
4
pouze
jeden pin
Obr. 4 Pouzdro DS18B20
Čidlo pracuje po sběrnici 1-wire, proto pro komunikaci stačí pouze jeden vodič. Celé čidlo má tedy 3 vodiče. Aby čidlo správně pracovalo, je potřeba vložit mezi výstup DATA a napájení 5V pull-up rezistor 4,7kΩ, jak lze vidět na obrázku (viz Obr. 5).
Obr. 5 Zapojení čidla s mikrokontrolérem
Pro přečtení teploty se musí čidlo nejprve resetovat. To je umožněno zasláním impulzu nízké úrovně na datový vstup/výstup DS18B20 a musí trvat 480 µs. Po tomto impulsu je potřeba počkat 15÷60 µs na pull-up rezistor a následně vysílá čidlo maximálně po dobu 480 µs. Vysílací pulzy přitom trvají pouze 60÷240 µs. Nejprve se odesílá LSB a poté MSB. Konec vysílání je dosaženo nabitím na Vdd. Potřebné časy jsou vidět z časového průběhu (viz Obr. 6) z katalogového listu čidla [1].
5
Obr. 6 Časový průběh komunikace s DS18B20 a mikrokontrolérem (převzato z [1])
V ovládacím kódu jsou využity příkazy, které výrobce do čidla naprogramoval a díky kterým je umožněno jeho přímé ovládání. Přehled některých příkazů ukazuje následující tabulka (viz Tabulka 1).
Tabulka 1 Přehled vybraných předdefinovaných příkazů
Název příkazu
Popis
Hodnota
Convert
Inicializuje převod teploty
0x44
Zapiš scratchpad
Definuje blok dat
0xBE
Přečti napájení
Po tomto příkazu čidlo odešle informační status o napájení
0xB4
Přečti ROM
Přečte 64bitový kód z čidla
0x33
Porovnej ROM
Používá slave (čidlo). Ostatní slave musí počkat na reset puls
0x55
Přeskoč ROM
Používá se pro přeskočení 64bitového kódu (používá se, pokud je zapojeno pouze jedno čidlo). Používá master (MCU)
0xCC
Najdi ROM
Pro nalezení konkrétního čidla díky sériového kódu
0xF0
6
V následující tabulce je ukázka převodu digitální podoby dat z binárního tvaru (viz Tabulka 2). Tabulka 2 Ukázka teplot a její digitální podoba
Teplota
Digitální výstup
+125
0000 0111 1101 0000
+85
0000 0101 0101 0000
+25.0625
0000 0001 1001 0001
+10.125
0000 0000 1010 0010
+0.5
0000 0000 0000 1000
0
0000 0000 0000 0000
−0.5
1111 1111 1111 1000
−10.125
1111 1111 0101 1110
−25.0625
1111 1110 0110 1111
−55
1111 1100 1001 0000
První 4 bity určují, zda je teplota kladná nebo záporná. Dalších 8 bitů reprezentuje celé číslo teploty. Poslední 4 bity udávají desetinnou část.
1.3
Měření vlhkosti
Výběr vlhkostního čidla byl obtížnější. Nalezeno bylo čidlo PHILIPS 2381 691 90001 na stránkách GME. Toto čidlo ovšem nevyhovovalo požadavkům na napájení, jelikož potřebuje napájení 15V. Rozsah jeho měření byl také menší, tj. 10÷90 % relativní vlhkosti. Nakonec, pro jednoduchost a digitální výstup, bylo zvoleno kombinované čidlo od firmy Sensirion [2] SHT75 (viz Obr. 7). Jinou možností byla další verze SHT71, ale bylo vybráno čidlo SHT75, jelikož je přesnější, jak ukazuje obrázek (viz Obr. 8).
Obr. 7 Kombinované čidlo SHT75
7
Senzor SHT7x má několik výhod: Je kalibrováno přímo výrobcem Nepotřebuje další externí součástky Měří teplotu i vlhkost Velmi nízká spotřeba Digitální výstup, napájení 2,4÷5,5V Rozsah vlhkosti 0÷100 % Možnost měření rosného bodu Malé rozměry Rozsah teploty −40÷+125 °C Vysoká přesnost
Obr. 8 Srovnání přesností SHT71 a SHT75 (převzato z [2])
Jako nevýhoda tohoto čidla by mohla být považována nestandardní šířka pinů a to 1,27 mm. Proto byla použita redukce pro testování na kontaktním nepájivém poli. STH75 má čtyři vodiče. Dva jsou určeny pro napájení součástky, třetí je pro hodinový signál a poslední je pro datový vstup/výstup. Obdobně jako u teplotního čidla je potřeba mezi datový pin a napájecí napětí vložit pull-up rezistor 10kΩ. Díky digitálnímu výstupu je možno dosáhnout vysoké přesnosti. Při měření relativní vlhkosti je to dvanácti bitový výsledek. Při měření teploty pak čtrnácti bitový výsledek. Pro ovládání jsou vyhrazena osmi bitová ovládací slova. Zapsáním příkazu 00000101 je zahájeno měření relativní vlhkosti. Příkazem 00000011 pak měření teploty. V tabulce (viz Tabulka 3) jsou zobrazeny ovládací příkazy SHT75. Na obrázku (viz Obr. 9) je znázorněn rámec celého měřícího cyklu.
Obr. 9 SHT měřící rámec (převzato z [2]) Ts značí start vysílání, následuje osmi bitový příkaz (např. 00000011). Dále se čeká, až budou data připravena. V tomto případě 320 ms, protože se jedná o čtrnácti bitový výsledek pro měření teploty. Poté přijímá dvou bytové slovo. Začíná se dvěma nulami a následuje MSB vlastního výsledku. Po MSB přichází ACK (Data jsou stažena GND) a následně LSB výsledku teploty. Po nejméně významném bitu (LSB) a po dalším ACK pulsu se provede kontrolní součet a po posledním ACK je čidlo připraveno na další měření.
8
Tabulka 3 Seznam příkazů pro SHT75
Příkaz
Hodnota
Reservováno
1.4
0000x
Změř teplotu
00011
Změř vlhkost
00101
Přečti Status Register
00111
Zapiš Status Register Reservováno
00110 0101x-1110x
Soft reset
11110
Měření tlaku
Jako čidlo tlaku byla zvolena součástka od firmy Freecsale [3] MPX4115A (viz Obr. 10). O tlakové čidlo lze zažádat a nechat si zaslat vzorky. V obchodech MPX4115A stojí cca 700 Kč. Jelikož se jedná o analogové čidlo, je ho třeba zapojit do některého z portů A mikrokontroléru, které jsou určeny pro měření analogových veličin, protože obsahují ADC převodníky. MPX4115A dosahuje přesnosti 1,5 % z maximálního rozsahu. Rozsah tlaku je 15÷115 kPa. Rozsah napájení potřebné k chodu je 4,85÷5,35V. K měření jsou využity pouze 3 piny. Další 3 piny nejsou zapojeny. Jelikož je napájení 5V a ADC převodník mikrokontroléru je deseti bitový, je dosaženo kroku 4,88mV. Touto konstantou bude následně násobena proměnná ADCW, která se skládá ze dvou registrů ADC převodníku (ADCL a ADCH). Z obrázku (viz Obr. 11) lze vidět lineární převodovou charakteristiku mezi výstupním napětím a hodnotou absolutního tlaku v kPa. Nutno dodat, že čidlo měří absolutní tlak. Výpočet na absolutní tlak se provádí rovnicí (viz Rovnice 1).
Obr. 10 Čidlo tlaku MPX4115A
9
Obr. 11 Převodní charakteristika MPX4115A převzato z [3]
(Rovnice 1)
Kde ph je hodnota absolutního tlaku, Vdd je napájecí napětí a Vout je výstupní napětí z čidla. Pro měření atmosférického tlaku je potřeba přepočítat absolutní hodnotu tlaku na tlak atmosférický vztažený na hladinu moře. Toho bylo dosaženo výpočtem barometrické rovnice (viz Rovnice 2), nalezené na Wikipedii [5].
(Rovnice 2)
Kde p0 je tlak přepočtený na hladinu moře, p(h) je hodnota absolutního tlaku, h je výška měřeného místa a T(h) je staniční teplota přepočítaná na kelviny. Byla zvolena výška Brna 200m n. m. a průměrná teplota 15°C přepočtená na kelviny.
1.5
Měření směru větru
Pro měření směru větru bylo využito magnetického rotačního enkodéru AS5040 (viz Obr. 12) firmy Austriamicrosystem [4]. Jde o SMD součástku, takže byla potřeba
10
redukce do kontaktního nepájivého pole. Pro tento typ enkodéru je zapotřebí příčně polarizovaný magnet, který je dostání také přímo na stránkách výrobce. Enkodér pracuje na principu hallova jevu, kdy působením magnetického pole vzniká na Hallovo napětí, které AS5040 převádí na výstup. Lze využít dva výstupy, buď PWM nebo digitální. Číslicový výstup má deseti bitový výsledek, což znamená krok 0,35 stupně. Byl zvolen digitální výstup, protože mikrokontrolér s těmito daty již pracuje a není potřeba ADC převodu, jak by tomu bylo u PWM výstupu. Pro ovládání je využito pěti vodičů. Dva napájecí (lze zvolit napájení 5V a 3,3V), datový DQ, hodinový CLK a selektivní CSn. Jak vypadá komunikace, lze vidět z obrázku (viz Obr. 13)
Obr. 12 Magnetický rotační enkodér AS5040
Obr. 13 Časový diagram AS5040
Z časového diagramu jde dobře vidět, že komunikace začíná, jakmile se na CSn přivede puls nízké úrovně a po uplynutí času t CLK FE se po prvním přivedení hodinového signálu přečte desátý bit. Po dalším pulsu CLK devátý bit. Po přečtení datových bitů je přenášeno pět stavových bitů (např. přiblížení či oddálení magnetu) a poslední bit zajišťuje paritu. Jakmile je odeslána parita, nastaví se CSn na puls vysoké úrovně a čidlo je připraveno na další přečtení úhlu natočení. Jelikož je potřeba pouze údaj o úhlu natočení, po přenosu se 16-ti bitový výsledek posune o šest bitů doprava, takže zbude jen deset bitů s úhlem natočení a dál se pracuje s tímto výsledkem. Jak vypadá reálný časový diagram, lze vidět na obrázku (viz Obr. 14 a Obr. 15). Na obrázku 14 je horní průběh datového výstupu DQ a dolní průběh s hodinovým signálem CLK. Na obrázku 15 je horní průběh s hodinovým signálem CLK a dolnímu patří selektivní signál CSn.
11
Obr. 14 Časový průběh AS5040 průběhů DQ a CLK
Obr. 15 Časový průběh AS5040 průběhů CLK a CSn
12
Ukázka kódu pro eliminaci šumu, kdy je magnet na místě, ale údaje se přesto mění: data=AS5040_read_data();
//obsah registru read_data se
data=(data>>6);
//přepíše do proměnné data
data=data*0.35;
//bitovým posunem zůstane pouze
if((data>338)&(data<22)) lcd_puts("S");
//směr větru
if((data>23)&(data<67)) lcd_puts("SV"); if((data>68)&(data<113)) lcd_puts("V"); if((data>113)&(data<158)) lcd_puts("JV"); if((data>159)&(data<203)) lcd_puts("J"); if((data>204)&(data<247)) lcd_puts("JZ"); if((data>248)&(data<292)) lcd_puts("Z"); if((data>293)&(data<337)) lcd_puts("SZ");
1.6
Měření rychlosti větru
Měření rychlosti větru je spíše mechanická záležitost. Hlavní součást tvoří Robinsonův kříž (viz Obr. 14). Jedná se o tři nebo čtyři miskové polokoule, které jsou dokonale vyváženy. Anemometr, použitý v této stanici byl zakoupen od firmy Davis instrument [6] za 450 Kč. Tento kříž je zasazen na hřídel, která prochází plastovým trnem a je umístěná na dvě axiální ložiska pro hladký chod (viz Obr. 15). Na konci této hřídele se nachází kotouč se zářezem, který prochází optickou závorou. Obvod kotouče je 10 cm. Optická závora je napojena na mikrokontrolér na port D na druhý (PD2) pin, na kterém se nachází I/O linka pro umožnění externího přerušení. Při přerušení se inkrementuje proměnná, která počítá impulsy. Je vhodné volit přiměřenou dobu počítání času, po který se impulsy počítají. Pokud by se nastavila vteřina, mohl by kotouč udělat 2,9 otáčky, ale pořád by se napočítaly dva impulsy. Když se zvolí příliš dlouhé časy, měření budou přesnější, ale na úkor obnovení. Po uplynutí této měřící doby se musí resetovat i počet naměřených impulsů.
Obr. 16 Miskový anemometr
13
Obr. 17 Uchycení anemometru
1.7
Zobrazení
Jako zobrazovač interní jednotky byl použit LCD displej. Kvůli potřebě zobrazení více údajů byl zvolen displej 16x4. Tato zobrazovací jednotka obsahuje řídící obvod HD44780, pomocí kterého komunikuje displej a mikrokontrolér. LCD může pracovat ve dvou režimech: po 8 (DB7 - DB0) nebo po 4 (DB7 – DB4) datových vodičích a 3 řídících (E – povoluje komunikaci mezi mikrokontrolérem a displejem, RS – přenos buď dat nebo instrukcí a R/W – zápis nebo čtení dat/instrukcí). Protože pro komunikaci po osmi vodičích by byla potřeba 11 (8 + 3) I/O linek, byla zvolena redukovaná komunikace, ta potřebuje jen 7 (4 + 3) I/O linek. Je možné vytvořit vlastní znaky (např. pro zobrazení oC), které jsou na adrese 0x00. Takto lze definovat 8 znaků, které jsou uloženy v paměti CGRAM v displeji. Výběr znaků je možný také z předdefinovaných znaků ze znakové sady, která je vidět na obrázku (viz Obr. 16).
14
Obr. 18 Znaková sada LCD
Displej je připojen k portu A, na 3. pinu LCD se ladí kontrast, díky kterému se zobrazí ostrost celé matice. Na 15. a 16. pinu je připojeno podsvícení, které spíná mikrospínač.
1.8
Bezdrátová komunikace
Na výběr byly dva moduly bezdrátové komunikace. První možností byl Rx modul a Tx modul, kde se musí nastavovat modulace či parita. Druhou možností byly bezdrátové moduly firmy Hoperf, které mají již FSK nastavenou. Hopefr nabízí moduly jak pro různé frekvence (315, 434, 868, 915 MHz), tak různá provedení (DIP, SMD). Další
15
výhodou může být použití kombinovaného modulu, který obsahuje přijímací i vysílací jednotku. Pro tuto stanici byly použity samostatné moduly, byly zvoleny pro nižší cenu a napájecí napětí 5V. Jako vysílač (viz Obr. 17) byl zvolen modul RFM02-868D [8]. Jedná se o DIP verzi s frekvencí 868MHz (rozsah 860,48 – 879,505MHz). Obdobně byl zvolen vysílač (viz Obr. 18) RFM01-868D [7]. Pásmo 868MHz je v ČR bezplatné a na volném prostranství se moduly spojí na vzdálenost větší než 200m. Nevýhoda těchto modulů je nestandardní rozteč pinů, kterou je 2 mm ve dvou řadách. Napájení je 5V, kdyby byly vybrány kombinované moduly RFM12, je napájecí napětí 3,3V, i z tohoto důvody bylo lepší použít samostatný vysílač a přijímač. Velikou výhodou je, že si moduly sami zajistí modulaci a komunikují pomocí sériové linky. Za velkou nevýhodu je považován chybně napsaný katalogový list. U ukázkového zdrojového kódu jsou špatně napsány ovládací příkazy v inicializační části, v příkazu Power Management Command. V simple codu je uvedena hodnota 0x8239 pro vysílač i pro přijímač, ale byte 3H (et = 1 a es = 1) slouží pouze pro vysílač. Přijímač je ovládán bitem er, zde může tedy být řídící slovo např. 0x8289.
Obr. 19 Vysílač RFM02
Obr. 20 Přijímač RFM01
16
2
TESTOVÁNÍ A KONSTRUKCE
V této kapitole jsou představeny postupy testování a konstrukce meteostanice.
2.1
Testování
Při testování bylo použito kontaktní nepájivé pole, které bylo napájeno přímo z programátoru Biprog [11]. Z tohoto zdroje jsou napájeny všechny součástky na poli, včetně displeje s podsvětlením. Jako mikrokontrolér byl zvolen Atmega16. Program v jazyce C s kompilátoram AVR-GCC [12]. Teplotní čidlo má pouzdro T0-92, zde nebyl problém se zasazením do kontaktního nepájivého pole (viz Obr. 21). SHT75 má ale nestandardní šířku pinů (1,27 mm), zde už musí být použita redukce v podobě lámací lišty a napájenému propojovacího vodiče. Drobný problém byl také u zapojení tlakového čidla MPX4115A. Nastavení ADC převodu bylo nastaveno dle katalogového listu Atmega16 [10]. Dále bylo nutné přepočtem zjistit, jaká je hodnota absolutního a atmosférického tlaku z výstupního napětí. To se dá vypočítat dosazením do rovnic (Rovnice 1) a (Rovnice 2). Při prvotním měření bylo výstupní napětí Vout = 4,02V. Nejprve výpočet absolutního tlaku.
ph je hodnota absolutního tlaku Vdd je napájecí napětí Vout je výstupní napětí z čidla. A následuje přepočet na atmosférický tlak pomocí barometrické formule.
T(h) je staniční teplota 15 oC přepočtená na kelviny h je výška měřeného místa (v Brně je to 200 metrů nad mořem) p0 je tlak přepočtený na hladinu moře ph je hodnota absolutního tlaku Další co bylo potřeba udělat, byla redukce na rotační magnetický enkodér, který
17
je v SMD provedení. Redukce, na bázi patice, z SMD na DIL piny nebyla nalezena, proto se musela vyrobit. Na malou desku plošného spoje se naletovala součástka a díky lámací liště se redukce dala zasunout do kontaktního pole. Celá tato redukce byla následně použita pro finální desku plošného spoje. Dalším menším problémem se jevilo to, že i když se magnet nehýbal, hodnoty o úhlu natočení se měnily. Jako filtrace tohoto jevu byl použit kód, který nezobrazuje číselný údaj úhlu, ale jen směr. Při testování enkodéru byl změřen odběr: s magnetem 21,3mA a 25,8mA bez magnetu. Odběr teplotního čidla DS18B20 je pouze 0,7mA, kombinovaného čidla je 0,4mA. Atmega16 je to odběr 0,98mA, tlakové čidlo má odběr 6,8mA. Vysílač RFM02 odebírá 13,2mA, přijímač RFM01 11,7mA. Vysílací jednotka odebírá 51,6mA, přijímací jednotka pak 32,6mA. Další redukce byla potřeba pro bezdrátové moduly díky jejich nestandardní rozteči pinů 2mm. Toto bylo vyřešeno zvonkovým drátem naletovaným na dutinku a zaizolovanou samosmršťovací izolací, aby z důvodu blízkosti pinů nenastal zkrat. Všechna representovaná data byla zobrazována na displeji 16x2, k ovládání kontrastu byl použit trimr s hodnotou 25kΩ. Jelikož na všechna presentovaná data by dvouřádkový displej nestačil, musel být displej nahrazen 16x4, tím pádem musel být změněn i trimr ke kontrastu na hodnotu 10kΩ. Dále byl přidán znak stupně pro zobrazení teploty. Kód k přidání vlastního znaku stupně vypadá následovně: lcd_init(); lcd_clrscr(); lcd_command(0b01000000); lcd_data(0b00111); lcd_data(0b00101); lcd_data(0b00111); lcd_data(0b00000); lcd_data(0b00000); lcd_data(0b00000); lcd_data(0b00000); lcd_data(0b00000); lcd_clrscr();
18
Obr. 21 Testovací nepájivé pole
2.2
Konstrukce
U konstrukce vysílače (viz Obr. 22) byla použita jednostranná deska díky malé členitosti součástek. Aby byl využit mikrokontrolér z kontaktního pole, byla použita precizní patice, aby bylo i na dále možné nahrávat a upgradovat program. Z lámací lišty vedou vodiče k optické závoře připevněnou k horní části, ve které prochází kotouč (v plastovém trnu) spojený hřídelí s robinsonovým křížem. Další takový trn je spojen se směrovkou na vítr, na spodní straně hřídele je připevněn magnet, který je nad AS5040. Při konstrukci přijímače (viz Obr. 23) byla použita dvoustranná deska z důvodu použití IC2 (FT232RL), který zajišťuje komunikaci mezi počítačem a mikrokontrolérem. Jedná se o SMD s více externími součástkami. Aby nebyly použity drátové propojky, bylo využito možnosti dvouvrstvé desky. O součástku FT232RL lze zažádat u firmy FTDI. Nad displejem se nachází mikrotlačítko pro podsvícení LCD. V testovací fázi byl displej permanentně osvětlen, kvůli úspoře energie byl přidán mikrospínač. Rozměry desky byly záměrně určeny, aby byla přijímací jednotka vložena přímo do krabičky UK16P zakoupenou z obchodu EZK.cz. Z důvodu velikosti 9V baterie je přijímací jednotka napájena 12V. O napájecí napětí pro mikrokontrolér a čidla se stará napěťový stabilizátor 78L05.
19
Obr. 22 Osazený vysílač
Obr. 23 Osazený přijímač
20
3
ZÁVĚR
Sestavením této meteorologické stanice lze automaticky měřit základní veličiny počasí, jako je teplota a vlhkost uvnitř místnosti. Venku se pak měří teplota, tlak směr a rychlost větru. Při testování bylo zjištěno, že při srovnání se rtuťovým teploměrem se čidla nelišila. Před ustálením byly teplotní rozdíly mezi SHT75 a DS18B20 okolo 1 oC. Při ustálení se teploty obou čidel lišily pouze o 0,1 oC. Toto je spíše orientační amatérská meteostanice, protože se nedá srovnávat s poloprofesionálními stanicemi, které se cenově pohybují od 6 000 Kč. Profesionální pak od 20 000 Kč. Dále se nedá srovnat se stanicemi, které se dají zakoupit v supermarketech. Ty nemají větrné údaje. I kdyby se čidla odmyslela, je cena této stanice vyšší z důvodů použitých součástek. Do budoucna by se mohla stanice rozšířit o další čidla a funkce. Jedním z dalších čidel by mohl být snímač stmívání, který by nám poskytl údaje, kdy se rozednívá a kdy stmívá. Další možností rozšíření by mohl být čítač blesků nebo srážkoměr. Díky možnosti zapojit více teplotních DS18B20 na jednu I/O linku, by se dala měřit teplota v dalších místnostech při použití jednoho portu mikrokontroléru, díky porovnávání 64bitového unikátního kódu každého teplotního čidla DS18B20. Další možnost hardwarového rozšíření by mohl být příjem DCF signálu pro přesné rádiově řízené hodiny. Jako softwarový upgrade by se dalo hovořit o přidání menu, možností ukládat minima či maxima za aktuální den. Možnost datalogeru odesílaném přímo na internet. Další rozšíření by mohlo být přidání mikrotlačítek, pro ovládání menu nebo přepínání teploty z °C na °F.
21
LITERATURA [1] Datasheet DS18B20 [online]. 2007-12-10, 2007-01-03 [cit. 2010-05-16]. QuickView DS18B20 Programmable Resolution 1-Wire Digital Thermometer. Dostupné z WWW: . [2] Datasheet SHT75 [online]. 2007 [cit. 2010-05-19]. Digital Humidity Sensor SHT75 - Easy replaceable relative humidity sensor for high-precision measurements. Dostupné z WWW: . [3] Datasheet MPX4115A [online]. 2004 [cit. 2010-05-9]. MPXx4115 Product Summary Page. Dostupné z WWW: . [4] Datasheet AS5040 [online]. 2007 [cit. 2010-05-5]. AS5040 - 10-bit magnetic rotary encoder with absolute and incremental outputs - austriamicrosystems. Dostupné z WWW: . [5] Barometrische Hohenformel In Wikipedia : the free encyclopedia [online]. St. Petersburg (Florida) : Wikipedia Foundation, 2007-9-23, 2010-4-15 [cit. 2010-05-16]. Dostupné z WWW: . [6] Robinsonův kříž [online]. 2002 [cit. 2010-05-09]. Wind Cups, Large (Anemometers 2002 and earlier) by Davis. Dostupné z WWW: . [7] Datasheet RFM01 [online]. 2009-9-17 [cit. 2010-05-13]. Wireless FSK receiver module RFM01 - RF Receiver - HOPE Microelectronics. Dostupné z WWW: . [8] Datasheet RFM02 [online]. 2009-9-17 [cit. 2010-05-13]. Wireless FSK transmitter module RFM02 - RF Transmitter - HOPE Microelectronics. Dostupné z WWW: . [9] Datasheet FT232RL [online]. 2006 [cit. 2010-05-16]. FT232R. Dostupné z WWW: . [10] Datasheet Atmega16 [online]. 2003 [cit. 2010-04-28]. Atmel Products - AVR Solutions Datasheets. Dostupné z WWW: . [11] Programátor Biprog [online]. 2008 [cit. 2010-05-02]. Biprog_urel. Dostupné z WWW: . [12] VÁŇA, Vladimír. Mikrokontroléry ATMEL AVR programování v jazyce C. 1. vydání. Praha : BEN, 2003. 216 s. ISBN 80-7300-102-0.
22
SEZNAM SYMBOLŮ, VELIČIN A ZKRATEK RH
Relativní vlhkost (Relative humidity)
MSB
Více důležitý byte
LSB
Méně důležitý byte
PWM
Pulsně šířková modulace
LOW
Nízký impuls 0V
HIGH
Vysoký impuls 5V
CLK
Hodinový impuls
CS
Chip select
FSK
Frekvenční modulace
23
SEZNAM PŘÍLOH A Návrh zařízení
25
A.1
Obvodové zapojení vysílače ................................................................. 25
A.2
Obvodové zapojení přijímače ............................................................... 26
A.3
Deska plošného spoje přijímače – bottom (strana spojů) ....................... 27
A.4
Deska plošného spoje přijímače – top (strana součástek) ...................... 28
A.5
Osazovací schéma přijímače ................................................................. 29
A.6
Deska plošného spoje vysílače – bottom (strana spojů) ......................... 29
A.7
Osazovací schéma vysílače...................................................................30
A.8
Deska plošného spoje redukce – top (strana součástek)......................... 30
B Seznam součástek
31
B.1
Seznam součástek vysílače ...................................................................31
B.2
Seznam součástek přijímače ................................................................. 32
24
A NÁVRH ZAŘÍZENÍ A.1
Obvodové zapojení vysílače
25
A.2
Obvodové zapojení přijímače
26
A.3
Deska plošného spoje přijímače – bottom (strana spojů)
Rozměr desky 121 x 89 [mm], měřítko M1:1
27
A.4
Deska plošného spoje přijímače – top (strana součástek)
Rozměr desky 121 x 89 [mm], měřítko M1:1
28
A.5
Osazovací schéma přijímače
A.6
Deska plošného spoje vysílače – bottom (strana spojů)
Rozměr desky 86 x 67 [mm], měřítko M1:1
29
A.7
Osazovací schéma vysílače
A.8
Deska plošného spoje redukce – top (strana součástek)
Rozměr desky 23 x 22 [mm], měřítko M1:1
30
B B.1
SEZNAM SOUČÁSTEK Seznam součástek vysílače Označení C1 C2 IC1 IC2 IC3 IC4 JP1 JP2 JP3 U$1 U$2 X1 R1
Hodnota 330p 100p MEGA16-P DS18B20 AS5040 78L05 PINHD-1X8 PINHD-1X8 PINHD-1X4 RFM02 MPX4100A 9V-12V 4,7k
Pouzdro C050-024X044 C050-024X044 DIL40 TO92 SSOP16 78LXX 1X08 1X08 1X04 RFM02_DIP CASE 867 AK500/2 R0207/10
31
Popis Keramický kondenzátor Keramický kondenzátor Mikrokontrolér Teplotní čidlo Rot. Mag. enkodér Napěťový stabilizátor Redukce AS5040 Redukce AS5040 Optická závora Bezdrátový vysílač Tlakové čidlo Napájecí svorkovnice Rezistor
B.2
Seznam součástek přijímače Označení Hodnota C1 330p C2 100p C3 100n C4 100n C6 4,7u DIS1 MC1604CH-SYL IC1 MEGA16-P IC2 FT232RL IC3 78L05 L1 10u R1 1k R2 4,7k R3 10k R4 4,7k R5 10k R6 10k R7 5k S1 Podsvícení U$1 SHT75 U$2 RFM01 X 9V-12V X1 USB
Pouzdro C050-024X044 C050-024X044 C050-024X044 C050-024X044 CPOL-E2.5-7 1X16 DIL40 SSOP28 78LXX L-0207/10 R0207/10 R0207/10 R0207/10 R0207/10 R-TRIMM64Y R0207/10 R0207/10 B3F-10XX SHT7X RFM01_DIP AK500/2 USB1X90
32
Popis Keramický kondenzátor Keramický kondenzátor Keramický kondenzátor Keramický kondenzátor Elektrolytický kondenzátor LCD displej Mikrokontrolér Převodník USB Napěťový stabilizátor Tlumivka Rezistor Rezistor Rezistor Rezistor Trimr Rezistor Rezistor Mikrotlačítko Čidlo teploty a vlhkosti Bezdrátový přijímač Napájecí svorkovnice USB konektor