Namų katilinės valdymo sistemos prototipas (home heating control system)

Po ilgų programavimo darbų, atskirų modulių testavimo, ne sistemoje testavimo, derinimo ir pan. pagaliau galiu išmėginti realiame gyvenime savo katilinės valdiklio prototipą.

Viskas prasidėjo, nes norėjosi daugiau komforto ir didesnio naudingumo iš katilo.  Kai jis yra naudojamas savitakos rėžimu, niekas nėra žinoma kokia temperatūra pasieks kambarius, kokios temperatūros vanduo grįžta į jį, ar nesusidaro rasojimas ir t.t. ir pan. Visa tai blogina naudingumą ir trumpina katilo veikimo amžių.Viskas ilgai (per ilgai) glostyta, šlifuota, bet vis tiek atsiranda klaidų įgyvendinant, todėl reikės dar kodo prirašyti, norint kad veiktų patikimiau. Pavaizduota valdymo pultas:

Daryta rankomis ir kirviu, aij bet man gerai, nors iš tikro labai reikia staklikių gręžiojimui.

Čia tik vyksta visko atvaizdavimas, todėl nuosekliai:

Pirmoje eilutėje rodoma temperatūros pozicija (3) ir temperatūra 18,… toliau rodo kokia sistemos būklė (A), o tai reiškia automatinis valdymas, nes yra dar (R), rankinis valdymas. Toliau nurodo Ketureigio padėtį, kuri dabar yra 0, arba 0 laipsnių atidarytas, kitaip rodo 1,2…,9 kur kievienas nusako kiek dešimčių laipsnių atsidaręs: 10,20 ir iki galo, t.y. 90 laipsnių. Tuščias tarpelis po 0 ne šiaip sau, ten papildoma vieta klaidai nurodyti, jei kartais temperatūros davikliai sugestų (tfu tfu tfu).

Kita eilutė prasideda xxxx eilute. tieisog nurodo prijungtų papildomų relių būklę. Šiuo metu visos yra atjungtos ir nevaldomos: gali būti nustatymas dar visada įjungta, arba auto (pagal laiką). paskutinis skaičių derinys rodo laiką 01:54. fotografuojant nepasirodė dvitaškis tiesiog…

Šone išdėstyti šviesos diodai nurodantys informaciją apie vykstančius procesus. ATIDARO/UŽDARO nurodo kaip elgiasi  ketureigis vožtuvas. Degimu norima pažymėti, jog katilas yra įkaitęs ir gali pradėti atiduoti energiją į sistemą. Šildymas pasako, jog sukasi cirkuliacinis siurbliukas ir varinėja vandenį į kambarių radiatorius. Vandens cirkuliacija pasako, jog yra kaitinamas vanduo boileryje, nes jo temperatūra yra mažesnė nei katilo ir galima tenais pakaupti energiją. Taip pat pridėta saulės cirkuliacija vasaros metu šildyti vandenį pasitelkiant saulės energiją. Kitos dvi lemputės yra blogos, nes nurodo jog kažkas negerai: katilas užvirė bei nutiko avarija. Su užvirimu tai viskas aišku, bet prie avarijos dar reikia padirbėti, ne taip ten paprasta.

Ką sistema daro. Ogi valdo pagrindinius katilinės mazgus: t.y. ketureigį vožtuvą ir cirkuliacinius siurbliukus. Taip, siurbliukai visi 3, nes vienas varinėja vandenį po sistemą, o kitas skirtas tik karšto vandens šildymui ir tuo pačiu veikia kaip vožtuvas. Paskutinis skirtas sukti vandenį į saulės baterijas.

Toliau atliekami temperatūros matavimai. Tam panaudoti skaitmeniai davikliai DS18 serijos. Prijungiami prie vienintelio išvado ir nuskaitomi. Nuskaičius atliekami sąlygų patikrinimai ir sistema nusprendžia į kokią būklę save nustatyti. yra matuojamos 4 temperatūros: katilo išėjimas, katilo grįžtamasis, į sistemą paduodamo vandens, boilerio. Visa tai apsprendžia ką daryti su ketureigiu vožtuvu ir su cirkuliacijomis, kokią informaciją išvesti operatoriui, pavaizduoti ką nors ekrane ir priimti mygtukų paspaudimus. Jeigu yra prijungtos papildomos relikės, tai dar pažiūri ar reikia jas paklibinti, kokį garsą dar ateityje išleis, esant blogai būklei.

Kas tas ketureigis vožtuvas? Tai tiesiog mazgas į kurį sueina 4 vamzdžiai iš sistemos, o mazge sukeliojasi plokštelė kuri nukreipia vandenį ten kur reikia ir tuo pačiu viską išmaišo, permaišo ir sumaišo. Ir tai labai gerai, nes galima atskirti vandenį kuris sukasi tik radiatoriuose nuo to, kuris sukasi tik katile. Bet vožtuvas tik metalo gabalas, todėl jam reikia kažo kas sukeliotų (kad ir žmogus), o čia pasitarnauja pavara:

Pirma foto vaizdas iš priekio, antra foto su pavaros duomenimis. Tas baltas lapukas priklijuotas ne šiaip sau. Jis tiksliai nurodo kokiu kampu yra atsidaręs vožtuvas. Ir pavara tiksliai nuvažiuoja 90 laipsnių į atsidarymo poziciją. Taip ji turi kažkokią perdavimo mechanizmą ir kuriuo nustatomas rankinis-elektrinis valdymas.

Ši pavara yra 5Nm galingumo (RC modeliuose, tai reikštų 50kgcm ;) ), tačiau ji yra lėtoka, nuo 0 iki 90 nukeliauja per 670 sekundžių. Tai aišku nelabai gerai katilo užvirimo atveju, bet iš kitos pusės visai gerai, nes vožtuvas lėčiau pakeičia temperatūrą, o šildymo sistema ir taip yra inertiška ir nebereikia papildomo balansavimo, pvz PID.

Toliau pateikiu super tvarkingą “proto” plokštę, kuri atlieka visą visą skaičiaivmo darbą, bet tik nereikia išsigąsti, čia gi prototipas:

Ir svarbiausia viskas veikia (na rimtai viskas puikiai veikia)!!! o kaip gi kitaip. (bet jau projektuojama plokštė ir viskas bus sudėta tvarkingiau.

Sistemos pagrindas Atmega32, geras uC. Plaka širdis 3,6864 MHz dažniu. Jau užimta 11kB flash, ir dar panašiai gali prireikti (žiūrėti apačioje). Sunkiausia dalis (abiejomis prasmėmis) yra GUI. Reikia kad būtų viskas tvarkinga, suprantama, paprasta ir žinoma be klaidų. Čia iš tikro ir vyko pagrindinis darbas, gerai, kad Tomas K. daug padėjo, net per daug ir aišku esu jam daug skoloj.

Meniu pagalba galima nusistatyti pagrindines temperatūras, kada kaip sistemai elgtis. Nustatyti ketureigio vožtuvo valdymą į automatinį rėžimą ar rankinį, ar padaryti jo inicializaciją, bei galimybė per prievartą jį nuvaryti į kokią nors poziciją. Dar vykdomas daviklių pririšimas prie jų matuojamos vietos, bei vykdomas jo ID išsaugojimas atmintyje, kad išjungus ir įjungus jie vėl veiktų. Reikia taip pat nustatinėti cirkuliacijos režimus. Ar jie bus su pertrūkiais ar ištisiniai. Toliau nustatomos relikės, jų įjungimo/išjungimo laikas, būklė, ir galiausiai smulkmės kaip ekranėlio pašvietimas bei žinoma laikrodis.

Kol sistema buvo projektuojama, joje taip pat veikė NiMH akumuliatorių kroviklis, bei kompiuterio aušintuvo valdymas :) šiuos parametrus irgi buvo (ir yra) galima keisti, tik nėra aparatinės dalies jau.

Čia taip atrodo relikių valdiklis ir relikių prijungimas:

Tokiu būdu prijungiu 3+4 relikes (3 cirkuliacijos + 4 kam nors kitkam).

Kaip matosi iš kelių nuotraukų, davikliams/relėms prijungti panaudojau telefoninius laidus/jungtis. kodėl taip nusprendžiau padaryti? Nes iš tikro kilo dilema, ar relikės turi būti pagrndinėje dėžėje ir iš jos nuvesti 220VAC laidus iki rozečių, ar visgi padaryti mažas plokšteles su relikėmis ir nuvesti iki jų valdymą. Pasirinktas antrasis variantas, nes taip paprasčiau ir mažiau reikia saugumo, nes įtampa vos 12 V, o 220 yra iškart vietoje pakomutuojama. Tuo pačiu paprastas perjungimas, naujo laido nutempimas net ir esant veikiančiai sistemai ir pajungi klinkt-plinkt ir viskas.

Kokie liko darbai, neskaitant dėžių ir šiaip apipavidalinimo:

//TODO vartotojo vadovas

//TODO rezervinio maitinimo saltinio krovimas, valdymas

//TODO vandens aptikimas, jei truktu vamzdziai ar pan. garsinis signalizavimas

//TODO 12VDC -> 220VAC keitiklis

//TODO sklendziu pavaru konstravimas, valdymas

//TODO  katilo galios valdymas

//TODO temperaturos davikliu klaidos aptikimas ir sistemos isvedimas i avarine bukle

//TODO klaidu kodu sarasas, ju pranesimas

//TODO dumu daviklio prijungimas, nuskaitymas, garsinio pavojaus pskelbimas

//TODO telemetrija

//TODO gal prijungti mobiluji telefona kuris pranestu apie esminius nutikimus ar valdymas

//TODO saules bateriju sukinejimas pagal saules pozicija

//TODO dar kas nors…

kada nors tikiuosi užbaigti šią sistemą…

tags:
posted in Elektronika, Mikrovaldikliai, Projektai by admin

Follow comments via the RSS Feed | Leave a comment | Trackback URL

2 Comments to "Namų katilinės valdymo sistemos prototipas (home heating control system)"

  1. name wrote:

    kam katilui matuot temperatura 4 skaiciu po kablelio tikslumu :) Ar cia parodyta, kad moki iki tiek suskaiciuoti, at kokioj laboratorijoj kokiu amebu temp. matuoji:). Užima daug atmegos atminties nes kokius float tipo kint. naudoji ir dar tiek sk. po kablelio. Atrodo žiauriai netechniškai.

  2. admin wrote:

    Dėkui už pastabą, tad noriu paitkslinti.

    naudoju oneWire jutiklius DS18 serijos, kurie temperatūrą supakuoja į int16 kintamąjį, ty jis tik 16 bitų (12+4), o ne float (32). todėl tai atminties papildomai neužima.

    aš nusiskaitau tokią temperatūrą, kokią duoda daviklis, ir jos visiškai neapdorojęs, paskui tvarkausi su visomis kaip jau reikia.

    ėmiau visą skaičių, nes tai nėra sudėtinga ir bet kokiu atveju būtų reikėję naudoti 16bitų, tai vis tiek daugiau atminties nereikia.

    kadangi suapvalinimui būtų reikėję naudoti papildomus skaičiavimus, nusprendžiau atvaizduoti visą temperatūrą.

Leave Your Comment

 
Copyright © freshmake85

Powered by Wordpress.

Design by Bingo - The Web Design Experts.

Creative Commons licenzija
Code, images, text, sound, video by http://freshmake85.myftp.org is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.