Programovateľný izbový termostat

Zariadenie, ktoré som vyvinul pre reguláciu teploty v našom dome. Vykonáva programovú reguláciu teploty (so snímaním v jednej miestnosti), program možno nastaviť na 1 týždeň.
RJ

Tento termostat pracuje ako dvojstavový regulátor, sníma teplotu v miestnosti a podľa aktuálnej požadovanej teploty ovláda kotol. Na kotli, ktorý používame sa teplota vody nastavuje ručne, takže ekvitermická regulácia nebola realizovateľná. Môj termostat má možnosť nastaviť požadovanú teplotu v týždňovom pracovnom cykle, pričom na každý deň je možné nastaviť 16 požadovaných teplôt na ľubovoľné časy dňa (krok 15 min). Regulácia má rozlíšenie 0,25°C, hysterézu 0,5°C.
Požadovaná teplota je riadená záznamami o zmenách teploty, ktoré sú uložené v EEPROM riadiaceho mikrokontroléra. V týchto záznamoch je stanové v akom čase sa má nastaviť požadovaná teplota pre reguláciu a jej nová hodnota. Tieto záznamy sa spravujú cez nastavovacie funkcie prístupné obsluhe cez menu termostatu. Okrem záznamov je možná okamžitá zmena požadovanej teploty aj ručne, takto nastavená požadovaná teplota platí do nasledujúcej zmeny podľa programu. Tiež je možné prepnúť termostat do ručného režimu, kedy bude kotol natrvalo zapnutý alebo vypnutý (bez ohľadu na regulačný program). Teplota sa vzorkuje frekvenciou 1 Hz. Na rozhodovanie o zopnutí kotla využívam priemernú teplotu za posledných 32 s.
Pokladám za dôležité aby riadiaca jednotka dokázala prekonať výpadok elektriny bez toho, aby sa jej resetovali hodiny. Nechcel som tam pridávať ďalší integráč, ktorý by mal schopnosť počítať čas aj pri napájaní zo zálohovacieho kondenzátora, takže túto funkciu tiež zabezpečuje mikrokontrolér. Ten sa v prípade výpadku elektriny prepne do spánkového režimu, kedy je napájaný len zo zálohovacieho kondíka (220 mF), po opätovnom zapnutí elektriny program pokračuje kde bol prerušený. Keďže neviem zistiť ako dlho trval výpadok, hodiny zostanú v takom stave ako boli v momente vypnutia. To je však vždy lepšie ako keby sa mali resetovať na nejakú východziu hodnotu. Okrem toho väčšina výpadkov trvá niekoľko sekúnd, max. minút, takže vzniknutý rozdiel nebude vážny a termostat na to obsluhu upozorní a tá hodiny zase nastaví.

Hardvérová časť zariadenia

Termostat sa skladá z dvoch samostatných častí: napájací zdroj spolu so spínačom na ovládanie kotla a meracej jednotky umiestnenej v regulovanej miestnosti. Bloková schéma:
blokova schema
RJ - riadiaca jednotka, NZ + SP - napájací zdroj a spínač

Blok NZ+SP obsahuje trafo s usmerňovačom a filtrom a relé pre spínanie kotla. Použitím relé je zabezpečené galvanické oddelenie termostatu od kotla a tiež bude rovnako dobre fungovať aj keď bude treba spínať striedavé napätie. Riadiaca jednotka je pripojená k zdroju 3-žilovým káblom, (2 žily napájanie, tretia spínanie relátka). Kotol je pripojený 2-žilovým káblom. Relátko je zapojené ako vypínač, takže pokiaľ by sa RJ odpojila, kúrenie bude fungovať.
Na spojenie obidvoch častí som použil telefónny kábel (pekný tenký) a konektory RJ11. V podkladoch nájdete aj plošáky so svorkovnicami pre hrubší kábel.
Spomínanou druhou časťou je RJ, tá obsahuje riadiaci mikrokontrolér, meranie teploty v miestnosti, komunikáciu s obsluhou, zálohovanie napájania v čase výpadku elektrickej sieti a napájací obvod na stabilizáciu napätia.
Na meranie teploty som použil snímač LM35CZ, jeho presnosť je ±0,4 °C (pri 25 °C). Mikrokontrolér som použil typu ATmega8A, taktovaný kryštálovým oscilátorom 3,6864 MHz. Prostriedky na komunikáciu s obsluhou sú: 4 tlačítka, LCD (2x16 znakov), 2 ledky na signalizáciu prevádzkového stavu. Ako zdroj referenčného napätia slúži LM336-2.5 nastavená na 2,56 V. Vnútri krabičky RJ je prepážka, ktorá oddeľuje priestor kde sa nachádza snímač od zvyšku (kde sú súčiastky vyrábajúce teplo).


obr2
obr3


Softvér zariadenia

Softvér sa stará o meranie času a teploty, spravuje regulačný program, dáva obsluhe informáciu o aktuálnom stave regulácie (teplota, čas, zapnutý kotol). Čas sa počíta v týždennom cykle, keďže aj regulačný program je týždňový. Funkcia vykonávajúca reguláciu beží asynchrónne voči užívateľskému rozhraniu, takže teplota sa odmeria presne raz za sekundu aj ak užívateľské rozhranie napríklad niekde čaká na stlačenie tlačítka a pod. Pri meraní napätia na snímači robím priemer štyroch meraní a až ten považujem za odmeranú teplotu. Z odmeraných teplôt za posledných 32 s sa počíta priemer a podľa neho sa rozhoduje o spínaní kotla.
Spínanie kotla má ochranu proti častým zmenám stavu, výstup nezmení stav skorej ako 40 s po poslednej zmene (táto funkcia je skôr bezpečnostná ako praktická).
V základnom zobrazení je na displeji zobrazený čas, aktuálna teplota a požadovaná teplota (v automatickom režime) alebo nápis ,,Ručne“, keď je termostat v ručnom režime. Mimo základného zobrazenia sa zobrazuje menu a komunikuje sa s obsluhou. Prostredníctvom menu môže obsluha pridávať záznamy do regulačného programu, mazať, meniť existujúce záznamy, meniť režim regulácie, nastaviť hodiny termostatu a zmeniť aktuálnu požadovanú teplotu. Tiež je možné program prezerať bez jeho zmeny, toto je vhodné keď si chceme pozrieť ako je regulačný program nastavený.
Záznamy regulačného programu sú uložené v EEPROM mikrokontroléra. Na každý deň je možné uložiť 16 záznamov, v zázname je zapísaný čas kedy sa má nastaviť teplota a nová požadovaná teplota. Veľkosť záznamu je 2 B. Pamäť vyhradená pre záznamy je rozdelená na bloky pre každý deň. Spolu je pre záznamy vyhradených 7*16*2 = 224 B. Pamäť som rozdelil na bloky pre jednotlivé dni, aby sa pri vyhľadávaní nemusela prehľadať celá pamäť záznamov, ale len blok dňa, čím sa ušetrí čas. Ak sa nenašlo čo sa požadovalo v určitom dni, až vtedy sa prejde na blok susedného dňa atď. V EEPROM sú tiež uložené texty zobrazované na displeji.


obr4

Hodnotenie po celej vykurovacej sezóne v prevádzke

S týmto termostatom v izbe dosahujeme preregulovanie do 0,5 °C, čo záleží od teploty vonka a teploty vody. Preregulovanie je spôsobené hlavne tým, že aj po vypnutí kotla relátkom ešte beží čerpadlo až dokým teplota vody neklesne pod nejakú hranicu.
Po vyvetraní klesne teplota v miestnosti asi o 0,5 °C, takže termostat môže zapnúť kúrenie, takže je vhodné vyvetrať tesne predtým ako by sa kúrenie zaplo bez vetrania.
Zálohovanie hodín dokáže udržať informáciu podstatne dlhšie ako som čakal a ako je potrebné (mnoho dní). Úspora zemného plynu sa prejavuje hlavne keď sú teploty vonka nad asi 5°C (vtedy sa kúrenie zapne povedzme raz za 1,5 h), pri mrazoch sa tiež niečo ušporí, ale zázraky sa čakať nedajú.


obr5
obr6
obr7