Digitální LCD termostat s bezdrátovým přenosem

 

    Tento termostat jsem zkonstruoval pro řízení teploty podlahového topení, které je vytápěné elektrickým topným kabelem. Kromě běžného termostatu s nastavitelnou hysterezí bezdrátově přijímá informaci o nočním proudu z RF vysílače 433 MHz a umožňuje tak pracovat ve dvou režimech – v denním a nočním. Požadovaná teplota se nastavuje pro každý z nich, protože je výhodné v době nočního proudu naakumulovat do podlahy co nejvíce tepla, zatímco ve dne teplotu pouze udržovat. Doplňkovou funkcí je měření doby provozu na denní a noční provoz, aby bylo možné stanovit spotřebu energie.

    V následujícím textu je popsán ovládací software i elektrické zapojení termostatu, vysílač nočního proudu a napájecí zdroj + silové spínání výstupu naleznete na samostatných podstránkách.

 

Základní parametry:

Rozlišení teploměru:                              0,2 °C

Rozsah teploměru:                                0-50°C

Rozsah nastavení teplot:                       10-50°C

Rozsah nastavení hystereze:                 1-5°C

 

Popis funkcí a ovládání:

    Základem zapojení je procesor AT89C4051, verzi 2051 nebylo možné použít z důvodu nedostatečné kapacity paměti programu. Procesor zajišťuje měření teploty, řízení displaye, ovládání výstupního relé příjem informace o stavu nočního proudu. Termostat se ovládá pouze třemi tlačítky, 2 slouží pro nastavení hodnoty a třetí pro volbu provozu:

·         Vypnuto – výstup je trvale vypnut, termostat pouze měří teplotu a případně zobrazuje symbol nočního proudu

·         Trvale – termostat funguje v době denního i nočního proudu, v každém dle samostatně nastavené teploty. Počítadla doby provozu počítají odděleně dobu denní a noční

·         Noční provoz – termostat funguje pouze v době nočního proudu podle nastavené noční teploty. Počítadlo počítá pouze dobu provozu na noční proud.

 

Uspořádání menu pro SW verzi 1.2

    Na základním displayi je v horním řádku zobrazována aktuální teplota (obnovuje se každé 2s), ve spodním řádku symbol N (pokud svítí, je noční proud), vedle něj provoz (vy = vypnuto, tr = trvale, no = noční provoz) a vpravo stav výstupního relé (blikající ** = výstup sepnut, off = výstup vypnut).

   

    Stiskem tlačítka + nebo – se přejde na nastavení denní teploty, přičemž dále se tlačítky + a - teplota zvyšuje nebo snižuje. Stiskem tlačítka „volba provozu“ (VP) se přepneme do nastavení noční teploty, dalším stiskem VP do nastavení hystereze. Po nastavení požadovaných teplot se po 4s automaticky přejde na základní display.

 

    Krátkým stiskem tlačítka VP se zobrazí aktuální režim provozu, dalším krátkým stiskem se přejde na další (v pořadí: vypnuto – trvale – noční provoz). Po 4s od posledního stisku tlačítka se přejde na základní display.

 

    Dlouhým stiskem tlačítka VP se zobrazí počítadlo uplynulé doby na noční proud ve tvaru N 0000h00m00s, přičemž h jsou hodiny, m minuty a s sekundy J. Stiskem tlačítka + se toto počítadlo vynuluje. Dlouhým stiskem VP se vrátíme na základní display. Po krátkém stisku VP se zobrazí počítadlo uplynulé doby na denní proud ve tvaru D ..... Opět je možné jej vynulovat tlačítkem + nebo se dlouhým stiskem VP vrátit na základní display.

 

    Nyní se krátkým stiskem VP přepneme na režim RX TEST. Ten je užitečný pro kontrolu správné komunikace mezi vysílačem nočního proudu a termostatem – vysílač musíme také přepnout do testovacího režimu (vysílá pak každé 4s a na termostatu se symbol N rozsvěcí okamžitě, zhasíná 2s od posledního přijatého povelu). V režimu TEST je také rychleji zobrazována naměřená teplota – údaj se obnovuje 3x za sekundu (výhodné při kalibraci). Krátký stisk VP = skok na display RX chyby, dlouhý stisk VP = základní display. Na displayi RX chyby je zobrazen počet chyb, které nastaly během komunikace mezi vysílačem a termostatem během provozu. Vynulovat lze tlačítkem +. Krátkým stiskem VP přejdeme na zobrazení počítadla nočního provozu, dlouhý stisk VP = návrat na základní display.

 

 

Schéma zapojení termostatu:

 

Zapojení termostatu - kliknutím se otevře obrázek ve větším rozlišení

 

Popis zapojení

    Základem zapojení je mikroprocesor ATMEL 89C4051 se standardními součástkami (krystal Q1, blokovací kondenzátory C1 a C2, resetovací kondenzátor C3). Taktovací frekvenci uvedenou ve schématu jsem později snížil na 14.3 MHz (stejně tak u vysílače). Deska termostatu se připojuje k výkonové části (zdroj + spínání topného tělesa) přes konektor X1. Svorka +5V je kladné napájení (později změněné na 5.6V), GND je zem. RE1 a RE2 jsou výstupy na spínací relé, RE2 je přímý, druhý je pouze výstupem portu - ten jediný je využit. RE1 je nezapojen a připraven pro případné další využití (oddělené spínání více topných kabelů s nezávislým nastavením). TC1 a TC2 jsou vstupy pro teplotní čidlo, FZV datový vstup - na něm jsou přijímána data s informací o nočním proudu.

 

Měření teploty

Pro měření teploty využívá procesor svůj vnitřní komparátor, jehož invertující vstup je připojen na RC člen R1-C9 a neinvertující na měřené napětí. Toto napětí je odvozené z děliče R4/Rt (Rt je teplotní čidlo KTY 81-210). Teplotní čidlo je jedním vývodem připojené na záporné napětí tak, aby při teplotě 0°C bylo měřené napětí 0V a při 50°C bylo co měřené napětí co největší (cílem je co nejlepší rozlišení a minimální vliv rušení a šumu). Na to má vliv velikost záporného napětí a hodnota rezistorů R4+R3, které nastavují kladné předpětí. Kondenzátor C5 pouze filtruje rušivé signály na vstupu komparátoru.

Funkce tohoto integračního A/D převodníku je velmi jednoduchá – na začátku měření je kondenzátor C9 vybit pomocí vnitřního tranzistoru portu P1.1 a je spuštěn časovač T0, který pracuje v 16ti bitovém režimu. Napětí na kondenzátoru exponenciálně narůstá a časovač odměřuje uplynulý čas. V okamžiku rovnosti napětí kondenzátoru C9 a neinvertujícího vstupu se překlopí výstup komparátoru (vnitřní port P3.6) a časovač je zastaven. Uplynulá doba (hodnota registru TH0) je přímo úměrná měřenému napětí. Registr TH0 je ukazatelem do dvou tabulek výsledků, přičemž tabulka tabtep1 obsahuje hodnoty ve stupních a tabtep1 hodnoty desetin stupně. Každá tabulka má 255 hodnot což je pro rozsah 0-50°C postačující. Hodnoty do tabulek byly vypočteny podle Ohmova zákona, viz tento soubor.

 Pozn: nejprve jsem používal časovač v 8bit. módu a časovač čítal max.  do 255 strojových cyklů. To je nevýhodné, protože potom nelze využít všech 255 hodnot – zpracování instrukce jb p3.6 (vyhodnocení stavu komparátoru) trvá 2 strojové cykly a časovač není možné zastavit okamžitě. Důsledkem je rozlišení pouze na 128 hodnot. Řešením by bylo využití přerušení od časovače, které však tento procesor nemá. Mnohem jednodušší je však využití 16ti bitového režimu časovače (až 32768 hodnot)

 

Řízení displaye

    Zobrazovacím prvkem termostatu je dvouřádkový 8 znakový LCD display, který je ovládán standartním řadičem HD44780. Procesor 4051 je k němu připojen čtyřbitově, tzn. že bajty jsou vysílány postupně po polovinách (nibllech). Kromě 4 datových vodičů D4-D7 jsou pro komunikaci nutné porty RS a ENABLE. RS určuje, zda jsou vysílána data nebo instrukce a ENABLE určuje okamžik platnosti dat. Komunikace s řadičem je poměrně jednoduchá, na začátku je vyvolán podprogram init, který nastaví 4-bitovou komunikaci a další volitelné parametry zobrazení (rolování rextu, kurzor, posuv kurzoru atd.). Také je nadefinován znak °, který je uložen do vnitřní paměti CG RAM na pozici 0 – přes tu je poté volán. Pak už lze pouze vkládat data/instrukce do akumulátoru a vysílat je pomocí podprogramů pdata nebo pinst. Tyto volají další podprogramy (vyslani, vystup), které rozdělí bajt na spodní a horní nibble a vyšlou je na datové porty D4-D7. Podprogram retez zprostředkovává výpis řetězového textu pomocí ukazatele DPTR.

 

Ovládání výstupního relé

    Výstup rele1 je řízen podprogramem porov, který porovnává nastavenou teplotu s aktuálně naměřenou. Je-li větší než nastavená, je relé vypnuto a příznak horni je nastaven – čeká se na pokles pod spodní mez. Od nastavené teploty je odečtena hystereze a výsledek je uložen do registru dlimit – s tímto je porovnávána aktuální teplota, pokud je horni nastaven. Je-li vynulován, porovnává se s registrem limit (nastavená hodnota teploty). V závislosti na příznaku pnocni (je-li nocni proud, je nastaven) porovnává s denní nebo noční teplotou. Po každé změně nastavení režimu (vypnuto, trvale, nocni p.) se nastaví příznak zmena, který pokud je současně nastaven příznak horni způsobí sepnutí výstupu rele1. Stejně tak sepne při nastavení příznaku nočního produ pnocni.

Přenos nočního proudu:

    Uskutečňuje se v pásmu 433.92 MHz, na straně termostatu je signál přijímán vf modulem AUREL (viz obr.) a dekódován využitím sériové linky procesoru 4051.

přijímací modul v jednotce termostatu

   

    Na straně vysílače je procesor 2051, který moduluje vf vysílací modul. Celý vysílač je umístěn poblíž HDO nebo libovolného spotřebiče (např. bojler), který je spínán pouze v době nočního proudu. Z důvodu co nejmenšího využití pásma 433.92 MHz vysílač vysílá pouze každé 2 minuty krátkou sekvenci (používá se 9-ti bitový režim, nejdříve se vysílá 1B adresa a potom 1B data). V jedné sekvenci se vysílání opakuje 50x. Pokud termostat přijme platná data, po dobu 10 minut nastaví příznak nočního proudu (na displayi se zobrazí symbol N) a termostat funguje na noční režim. Pokud během této doby nepřijde další sekvence, termostat přejde po 10 minutách do denního režimu.

    Později jsem software 1.1 doplnil další funkcí, která kontroluje chybovost komunikace mezi termostatem a vysílačem – po skončení režimu nočního proudu (zhasnutí symbolu N na displayi) může být další spuštěn až za 70 minut. Pokud je spuštěn v kratší době, znamená to, že přijímač 5x nepřijal správně informaci o NP, přešel na denní provoz a potom opět na noční. Počet chyb lze vyčíst v menu RX chyby (viz ovládání).

 

 

Konstrukční uspořádání:

    Provedení DPS je přizpůsobené dvoudílné plastové krabičce KP-33, ze které  využita jen jedna polovina. V krabičce je vyříznuté okénko pro display a vyvrtány 3 díry pro tlačítka (rozměry viz výkres). Na zeď se připevňuje přes držák, který je tvořen 7cm širokým pásem hliníkového plechu a vrchní díl je z bočních stran prošroubován čtyřmi samořeznými šrouby. Motiv etikety jsem navrhnul v Autocadu a vytiskl na lesklou samolepící fólii.

Deska plošných spojů digitálního termostatu

 

Ke stažení:

== tato stránka se nachází na adrese www.djpeak.cz ==