Mnohé se změnilo od doby, kdy jsem navrhoval a vyvíjel svůj systém sledování (vnějších) a regulace (vnitřních) teplot. Aplikace, které jsem použil pro vývoj, doznaly podstatných změn, rovněž přibyly nové typy mikrokontrolerů, senzorů a jiných "hraček".

Systém je založen na použití senzorů (teploměrů) firmy Maxim - Dallas, které pro komunikaci s řídícím kontrolerem používají jednodrátovou sběrnici (bus). Většina typů senzorů může být prostřednictvím této sběrnice rovněž napájena - tzv. parasitic power (složitější zařízení s většími nároky na příkon zdroje musí být napájeny zvlášť, sběrnice pak slouží pouze pro komunikaci). To znamená, že pro připojení jednodušších zařízení lze použít pouhé dva dráty (nejlépe ve formě stíněného, např. koaxiálního kabelu). Každé zařízení na sběrnici má přidělenu jedinečnou adresu (adresa je nastavena při výrobě a nelze ji měnit); ke sběrnici lze tedy paralelně připojit více zařízení (adresy všech připojených zařízení lze zjistit speciálním algoritmem).

Se zařízeními na jednodrátově sběrnici lze komunikovat mnoha různými způsoby, za použití mnoha různých technických řešení. Já jsem použil mikrokontroler, především proto, že jsem potřeboval, aby - vzhledem k tomu, že systém slouží i k regulaci teplot - bylo celé zařízení (alespoň pokud se týká základní funkce regulace teploty) autonomní, nezávislé na funkci připojeného PC.

Mikrokontroler


Použil jsem mikrokontroler firmy Atmel. Důvodů bylo hned několik. Především existence vývojového prostředí v OS Linux (AVR Cross Development Kit). Dále výbava mikrokontrolerů. FLASH ROM pro uložení programu, FLASH ROM pro ukládání dat (zapisovatelná procesorem), poměrně velká RAM, bohaté vybavení I/O porty různých typů, Watchdog timer, poměrně dokonalé zabezpečení a signalizace výpadků napájení, jednoduché zapojení (X-tal oscillator, dva kapacitory), jednoduché programování in-circuit (pro programování není potřeba vyjímat kontroler z obvodu). Možná i několik dalších důvodů, je možné, že si všechny ani nepamatuji.

Mikrokontroler je k senzorům (teploměrům) připojen zmíněnou jednodrátovou sběrnicí (s parazitním napájením senzorů), s počítačem komunikuje prostřednictvím seriového (RS-232) rozhraní. Pro programování je použit adaptér k paralelnímu portu PC vlastní výroby. Regulace teplot a měření je zcela autonomní, PC pouze čte výsledky a nastavuje teploty v rámci denního režimu.

Pokud by někdo chtěl s mikrokontrolerem Atmel experimentovat, mohu samozřejmě poskytnout různé rady "jak na to".

Senzory, řízení teploty


Pro měření teploty jsem použil obvod Maxim - Dallas DS18B20. Pro řízení topných těles jsem použil tzv. Solid State Relay - v podstatě Opto-TRIAC - polovodičový prvek, používající k sepnutí optický prvek. Spíná se stejnosměrným proudem cca. 20-30 mA, řídící vstup je galvanicky oddělený od výkonové části, takže jej lze řídit přímo výstupem mikrokontroleru.

Aplikace pro sběr dat


Jako aplikaci sloužící pro sběr dat jsem použil Cricket. Skript sbírající data komunikuje (RS-232) přímo s mikrokontrolerem.

1wire bus


1wire bus je klíčovým prvkem celého řešení. Jak jsem již uvedl, existuje řada možností, jak se zařízeními na sběrnici komunikovat. Za nejvhodnější dnešní alternativu osobně považuji některý z USB adaptérů (samozřejmě, musí být podporovaný zvolenou aplikací). Jednodrátové sběrnici je věnována celá řada Web stránek, zde bych uvedl např. 1-Wire.Org.

Zajímavé řešení pro Linux je OWFS (OneWire FileSystem). Zařízení na sběrnici jsou v Linux OS reprezentována jako "device files", což z uživatelského hlediska znamená, že se tváří jako soubory, ze/do kterých je možné kopírovat data, v závislosti na funkci toho kterého zařízení. Případný monitorovací systém pak pouze čte tyto soubory a zpracovává data (to je, mimochodem, jedno z kouzel Unix systemů: zařizení se tváří jako soubory, které lze číst a do kterých lze psát). Toto řešení jsem nepoužil (z důvodu požadavku na autonomii), ale pro "běžného" uživatele je nesporně schůdnější.

Meteorologická stanice - jak na to


Řešení, popsaná až doposud, byla založena na použití OS Linux, řadě znalostí a rovněž schopnosti experimentovat, jak pokud jde o HW, tak SW stránku věci.

Existují nicméně mnohem přístupnější řešení. Uvedu zde několik odkazů.

Hobby Boards. Knížky, rady, stavebnice, hotová zařízení.

1-wire Weather Station - Starter Kit - Weather Station hardware, free software. Dole na stránce je pár odkazů na další použitelný SW (i pro MAC, zdá se :-). Ne všechen SW je "free".

Z odkazů vyjímám:

Oww (One-wire weather) - Linux, případně i Windows (pouze text mode). Detailní popis HW (jak senzorů, tak i standalone systému - Linksys NSLU2 (Kliknout zde, zadat "NSLU2" do okénka "search", kliknout na šipku, pak kliknout na první vyhledaný odkaz) - po instalaci Linuxu vznikne malý Linux systém, cca USD60), detailní popis instalace SW. Spíš pro hračičky.

-----

Pozn.: Po připojení výše uvedené Weather Station k Linuxu (OWFS, prostřednictvím podporovaného adaptéru) lze samozřejmě číst výstupy všech senzorů meteorologické stanice a použít vlastní monitorovaci aplikaci (např. zmíněný cricket).