Inteligentní internetový termostat se sítí digitálních teplotních čidel

21. 5. 2015
Doba čtení: 8 minut

Sdílet

V seriálu si popíšeme stavbu termostatu, který dokáže řídit teplotu v bytě či domě nejen podle teploty změřené v jedné místnosti (jak je běžné), ale po inteligentním zpracování naměřených teplot z rozsáhlé sítě teplotních čidel. Topení se dá také ovládat na dálku – proto nazývám termostat internetovým.

Stavba termostatu a sítě teplotních čidel vyžaduje mírné elektrotechnické znalosti a trochu zručnosti. Dojde na pájení, ale dalo by se mu teoreticky i vyhnout, pokud by to situace u čtenáře vyžadovala (např. kvůli nepřekonatelné obavě z roztavené pájky či kvůli absenci páječky atp.). Velkým kladem tohoto návodu je myslím finanční dostupnost – cena celé realizace zůstane bezpečně v trojciferné částce, zvlášť pokud při nákupu součástek přes Internet strpíme delší dobu doručení z dálného Východu. V textu budu průběžně uvádět nejnižší ceny jednotlivých komponent, aby se čtenář mohl při nákupu zhruba orientovat a věděl, nebere-li ho prodejce moc na hůl.

Základní a asi nejznámější model s procesorem ATMEGA328p běžícím
na 16 MHz a napájeným 5 V, který je schválně v patici, aby bylo
jednoduché ho vyměnit (to když při pokusech unikne z procesoru kouř, na
který vnitřně funguje). Dále je na desce druhý procesor ATMEGA16U2,
který zajišťuje komunikaci s PC přes USB a málokdo o něm ví, že je také
volně programovatelný.

Uno, nejznámější zástupce platformy Arduino

Srdcem termostatu je z několika důvodů, které uvedu později, Arduino. Čtenáře, kterým toto slovo vyvolává silné negativní konotace až fyzický odpor, bych poprosil o záměnu tohoto slova kdekoliv v mých textech za sousloví „8bitový mikrokontrolér fy ATMEL“. Význam celkového sdělení to nijak neovlivní, neboť Arduino používám především jako široce známou a dostupnou platformu a snažím se z ní brát jen to nejlepší. A čtenářům takříkajíc s prstem na tepu doby, kteří ohrnují nos nad čímkoliv s méně než 32 bity, bych navrhl číst text s otevřenou myslí – návod samotný jde analogicky – troufám si tvrdit, že bez větších úprav – použít i pro jiné mikrokontroléry nebo počítače. Principy dále uvedené zůstanou platné a tipy k řešení některých situací by se mohly hodit i zatvrzelým zastáncům Raspberry Pi, ESP8266 či jakýchkoliv dalších procesorů a platforem.

Doma tímto termostatem řídím teplovodní podlahové vytápění, kde otopnou vodu ohřívá běžný (dalo by se říct hloupý) plynový kotel. Věřím ale, že stejný návod lze použít i pro jiné druhy vytápění všemi energiemi, které jde na dálku elektricky spínat a vypínat (takže třeba klasický kotel na uhlí, kam se přikládá ručně lopatou, není nejvhodnějším kandidátem – i když vlastně představuje lákavou výzvu doplnit ho mechanickým dávkovačem briket, zautomatizovat topení v něm a také ho začít ovládat na dálku). Pokud nevládnete topením ve svém bytě, stále můžete návod použít pro podobné účely – například pro měření a regulaci teploty v bojleru, solárním panelu, akváriu/teráriu, ve skleníku, ve sklípku, na chalupě nebo kdekoliv jinde. Inteligentní termostat dostupný přes Internet dokáže ovládat nejen vytápění, ale i větrání, nebo třeba regulovat vlhkost vzduchu nebo půdy (dosahuje-li do skleníku) atd. Čím víc čidel má, tím více „vidí“ a může se lépe rozhodovat a řídit větší množství procesů. I pokud by pouze měřil a nic nereguloval, může být také velmi užitečný – grafy teplot a dalších naměřených veličin v čase kolikrát pomohou odhalit neefektivní nebo přímo energeticky ztrátové chování stavby či jejích obyvatel.

Předchozí zmínka o podlahovém vytápění v mém domě je důležitá – tento zdroj tepla má totiž nesmírnou setrvačnost a značné dopravní zpoždění, takže běžné pokojové termostaty selhávají při jeho řízení. Jednoduše vysvětlím: když je třeba v poledne v domě zima, klasický komerční termostat zaregistruje pokles teploty vzduchu pod nastavenou mez, sepne kotel a ten začne ohřívat vodu v podlaze. A pak trvá dlouhou dobu, než se ty tuny betonu v podlaze vodou ohřejí a pak než prohřejí podlahovou krytinu a konečně začnou od podlahy pomalu ohřívat vzduch. Dřív než ve čtyři hodiny odpoledne se teplota vzduchu v místnostech nezačne zvedat. Vím, že teplota vzduchu zdaleka není jedinou určující veličinou tepelné pohody (více rozhoduje teplota velkých těles v místnosti a vlhkost vzduchu), bohužel komerční termostat s termistorem v sobě nic jiného než teplotu vzduchu ve výši 150 cm nad podlahou, kde je přišroubovaný na zdi, nevidí. A až se vzduch v této výšce konečně ohřeje na přijatelnou teplotu a termostat vypne topení, je už sedm hodin večer, do podlahy bylo mezitím napumpováno takové množství tepelné energie, že až do tří do rána je v bytě nedýchatelně horko a nedá se spát. Přestože jsem používal velmi chytrý (komerční) termostat s PI regulací, to několikahodinové dopravní zpoždění (čas mezi začátkem topení a momentem, kdy se projeví na teplotě vzduchu, kterou měřil termostat) nebyl s to pochopit a po letech neustálých výkyvů teplot (nejdřív zima, pak přetopeno, a tak pořád dokola) byl mou hlavní motivací pro vývoj vlastního termostatického řešení, který mi tepelnou pohodu v bytě udržuje výrazně lépe.

Síť teplotních čidel, kterou jsem postavil, zasahuje nejen do více místností (než jen do obýváku, jak je u komerčních termostatů obvyklé), ale hlavně jsem s ní expandoval mimo stěny obydlí. Kromě měření teploty na severní straně fasády, která se používá i u ekvitermní regulace, jsem myslím poměrně netypicky umístil čidlo i na nejjižnější bod fasády s nejlepším výhledem na oblohu. Hlavní myšlenkou bylo měřit solární tepelné zisky, které dokáží i v mrazivých zimních dnech výrazně ovlivnit teplotu v místnostech s okny obrácenými k jihu. Pokud svítí Slunce na jasné obloze, má termostat s čidly v místnostech obrácených na jih velmi zkreslené údaje – myslí si, že je v domě horko, proto vůbec netopí, a pak je ve zbytku domu zima, zvlášť po západu Slunce. Zároveň ale platí, že solární zisky ohřejí dům tak výrazně, že není nutno topit tak mocně, jak by případně napovídala ekvitermní regulace podle teploty na severní straně domu (pokud bych ji měl, což jsem nikdy neměl). Mnohem lepší je dle mého názoru při topení ve slunečném zimním dni najít nějakou střední cestu, reflektující solární zisky, ale nenechávající se jimi zmást. A o tu se v našem termostatu, který si sami naprogramujeme, můžeme pokusit.

Čidlo na jižní straně domu měří teplotu na Slunci

Jsem tedy přesvědčen, že pro kvalitní řízení vytápění či jinou na teplotě závislou regulaci je potřeba mít co nejvíce informací o teplotách v systému, a to nejen teplotách vzduchu v místnostech a venku, ale lépe (zvlášť u toho podlahového vytápění) i o teplotách otopné vody, ideálně na několika místech otopného systému. Z těchto teplot vody by se totiž dala odvodit teplota betonových podlah a z toho dále odvodit míru dopravního zpoždění a tedy dokonce nutnost začít topit dříve, než teplota vzduchu zobrazená na termostatu poklesne pod stanovenou mez. Ano, termostat by mohl být jaksi prediktivní, extrapolovat teplotní změny do blízké budoucnosti a začít topit dřív, než se skutečně ochladí pod stanovenou mez a tak fakticky eliminovat dopravní zpoždění podlahového vytápění. Díky této vizi nazývám termostat inteligentním. Z výše uvedeného vyplývá, že rozsáhlou síť teplotních čidel považuji za naprosto zásadní pro realizaci inteligentní regulace, a proto se jí budu v dalším textu nebývale věnovat.

Z čeho tedy postavit tu síť teplotních čidel? Na trhu je celá řada teplotu měřicích součástek a čidel, ale myslím, že z nabídky výrazně vyčnívají čidla od firmy Dallas Semiconductors, konkrétně řady DS18B20, a to díky svým skvělým až unikátním vlastnostem. Za prvé, čidla jsou z výroby kalibrovaná, plně digitální a naměřenou teplotu hlásí přímo ve stupních Celsia – není tedy nutné procesorem přepočítávat nějakou jinou elektrickou charakteristiku, nedej bože ještě nelineární, na teplotu.

Čidlo DS18B20 v pouzdře TO-92

Za druhé, čidla měří teplotu ve velmi širokém rozsahu –55 °C až +125 °C, což s velkou rezervou pokrývá teploty vody a vzduchu při vytápění. Dále, čidla jsou velmi přesná a rychlá – dokáží změřit teplotu v běžném rozsahu s přesností ±0,5 °C a to s volitelným rozlišením až 1/16 °C – tedy přesněji než na desetinu °C, a navíc mnohokrát za sekundu! Zde bych si je dovolil srovnat s jiným běžně používaným čidlem DHT11/DHT22, které potřebuje až dvousekundovou pauzu mezi měřeními, jinak nevrací správné hodnoty. Navíc má primitivní komunikační protokol závislý na přesném časování a o nějaké sběrnici si může nechat úplně zdát (vizte dále).

Zcela unikátní vlastností čidel DS18B20 je možnost připojit je všechny na jednu 1-Wire sběrnici. 1-Wire bus je velmi zajímavý vynález firmy Dallas Semiconductors, který neslouží pouze těmto čidlům, ale celé plejádě dalších zařízení. Takto se 1-Wire sběrnice může stát jakousi páteří Internetu věcí ve vašem obydlí. Navíc, v extrémním případě je možné, jak název sběrnice napovídá, propojit čidla jen jedním jediným vodičem (podrobněji o tomto fenoménu níže), což se může za určitých okolností hodit. A s 1-Wire sběrnicí se pojí další skvělá vlastnost teplotních čidel DS18B20, a sice jejich unikátní, laserem při výrobě vypálená 64bitová adresa. Díky tomu je možno na jednu jedinou sběrnici připojit téměř libovolné množství čidel, a pak je jednoduše adresovat, tedy ptát se každého zvlášť, jakou teplotu zrovna měří.

Čidla připojená na jedné sběrnici

Jednou z velmi důležitých vlastností je i cena stavby takové sítě termočidel: čidla DS18B20 se dají koupit už za 20 Kč za kus v pouzdře TO-92 (stejné provedení jako malý tranzistor), anebo za zhruba 40 Kč ve vodotěsném provedení s jedním metrem kabelu (ceny uvádím z asijských tržnic jako jsou Ebay či Aukro, v českých elektroobchodech mohou být vyšší). Přestože jsem ještě nepopsal všechny skvělé vlastnosti těchto čidel (například dokáží monitorovat teplotu a hlásit překročení či podkročení uživatelsky nastavených mezí), už je nejspíš zřejmé, proč navrhuji postavit síť teplotních čidel právě s DS18B20. Zbývá otázka, jestli koupit ta jednotlivá čidla „holá“ (TO-92), nebo jít do těch pěkných vodotěsných provedení.

bitcoin_skoleni

Čidlo DS18B20 ve vodotěsném provedení

Když jsem se před lety rozhodoval já, z nějakého důvodu jsem o těch vodotěsných netušil a nakoupil jsem ty holé. Tyto se velmi hodí v bytě při měření teploty vzduchu, ale venku v sněhu a dešti či při měření teploty vody v potrubí bych je už podruhé nepoužil (přestože jdou dobře zaizolovat např. tavnou pistolí) a doporučil bych spíš to vodotěsné provedení, které se bude mnohem lépe například upínat kovovou sponou k potrubí (a neukroutí si u toho nožičky, jako se mi povedlo s holým TO-92). Kupodivu (podle měření teplot v síti kamaráda) se ani nepotvrdila moje obava, že vodotěsné provedení DS18B20 bude mít jistou setrvačnost měření, protože ten jeho kovový obal se bude muset při změně vnější teploty nejdřív ohřát, než ohřeje to uvnitř zavřené TO-92 pouzdro, a posléze po změně teploty opět ochladit, což oboje zabere čas – jak je ale vidět na grafu níže, i vodotěsná čidla reagují na změny teplot opravdu hbitě (vizte teplotu na výstupu ze solárního kolektoru).

Graf teplot naměřených za 12 hodin včetně průměrů, maxim a minim

Příště probereme stavbu sítě čidel konkrétně a podrobně, včetně negativních zkušeností, které jsem za pár let měření v těchto sítích posbíral.

Autor článku

Petr Stehlík vystudoval aplikovanou informatiku a pracuje jako vývojář webových aplikací a administrátor linuxových serverů. Provozuje vlastní server tvpc.cz.