Šilumos ūkio valdymas

Posted: 2013-08-20 in Pezalai
Žymos:, , , ,

Apsiėmiau sudaryti porą valdiklių namų ūkiui. Vieną — šildymo automatizavimui su Raspberry Pi, kitą — saulės kolektoriaus siurblių valdymui. Projektai du, bet nusprendžiau daryti taip, kad jie tarpusavyje galėtų būti kažkiek susiję — bus mažiau darbo, kai galima sistemos dalis pernaudoti.

Kadangi mėgstu šiek tiek paplanuoti ir paprojektuoti į priekį, tai susidariau šiokį tokį planelį. Iš pradžių norėjau daryti labai paprastai, sudėti viską ant vienos plokštės ir viskas. Bet va, viename projekte, pavyzdžiui, reikia relių, o kitame — tik servovariklių. Aišku, kranelių sukinėjimas servovarikliais vietoje specializuotų pavarų — šioks toks iškrypimas, bet o ką daryti, jei norisi šiek tiek pigiau ir per daug nepergriaunant esamų vamzdynų… Be to, bandydamas viską sugrūsti į vieną vietą greitai pritrūkau valdiklio kojų. Todėl pradėjau viską skaidyti dalimis ir krauti darbą I²C magistralei. Abu projektus sujungus į vieną gavosi maždaug tokia diagrama:

Namų ūkio automatizavimo valdiklis su Raspberry Pi, Arduino/AVR ir I²C blokais | Darau, blė

Raudonas blynas — Raspberry Pi kompiuteriukas su žaliu mikrovaldikliu susietas I²C magistrale. Aš mačiau nemažai projektų, kuriuose mikrovaldiklio visiškai atsisakyta ir automatizavimo darbus atlieka išimtinai Raspberry Pi. Aš labai labai griežtai pasisakau prieš tokią architektūrą. Priežastis labai paprasta: Raspberry Pi yra kompiuteris su pilnaverte atvirojo kodo OS. Supaprastintai tai reiškia, kad jo patikimumas nėra aukštas. Jeigu jis ten sugalvos kažką atsinaujinti, kažką padaryt ir netyčia nuluš arba persikraus, jūsų namų automatika visa gali nueiti velniop. Mikrovaldiklis neturi OS, jame veikia tiesiog viena programa ir dėl to jo patikimumas yra didesnis. Jeigu ten kažką primarmalinsite, tai tiesiog neveiks. O jei veiks, tai veiks. Tiesa, gali ir blogai veikti, jei blogai sukodysite, bet čia jau kita bėda. Tad aš esu už tai, kad kompiuteris atliktų sunkius darbus, tarkime, jame būtų interneto serveris, duomenų bazė istorijai kaupti, paprogramės grafikams piešti ir pan. Taip pat jis per I²C magistralę galėtų perduoti nurodytus parametrus mikrovaldikliui. Na, pavyzdžiui įjungti „Atostogų režimą“, pakeisti palaikomą temperatūrą ar kažkokius slenksčius.

Mikrovaldiklyje turėtų suktis automatizavimo programa. Darysiu ją jungiamą ir modulinę, kad galėtų valdyti tiek saulės kolektorių, tiek šilumą, tiek abu. Pritaikomą pagal konkrečius norus. Minimali versija gali valdyti keturis servovariklius ir nuskaityti keturių termistorių reikšmes. Pasirinkau termistorius vietoje skaitmeninių Dallas (ar panašių) daviklių dėl to, kad jie pigūs. Aišku, ADC keitiklio poreikis ir daugiau laidų gali apsisukti priešingai, bet čia priklauso ir nuo to, kaip viskas išdėstyta fiziškai. Termistorius dar reikia sukalibruoti juos pastačius kuo arčiau būsimos vietos, dėl laidų varžos paklaidos, bet galima ir be to — nėra didelės tos paklaidos. Taip pat valdiklis gali pasirinktinai turėti tinklo adapterį (būti nepriklausomas nuo Raspberry Pi), prijungtą per SPI magistralę. Na, ir dar valdyti keturis servovariklius mėgėjiškam kranelių sukinėjimui.

Relių blokas bus pasirinktinai atskiroje plokštėje su I²C keitikliu bei galingesnių tranzistorių mikroschema relėms įjungti (diagramoje yra detalių kodai). Vienas blokas galės valdyti aštuonias reles.

Tiems, kurie nori rinkti daugiau statistinių duomenų, galimas išplėtimas su I²C magistrale valdomu analoginiu-skaitmeniniu keitikliu ir aštuoniais papildomais termistoriais matavimui. Ir, be abejo, skystųjų kristalų ekraniukas tiesioginiam valdymui mygtukais (kurie, beje, bus prie valdiklio).

Visoje šioje architektūroje yra vienas kabliukas, kurį man dar reikia gyvai išsibandyti. Pamenate, rašiau apie I²C sąsają tarp Raspberry Pi ir Arduino/AVR? Ten Raspberry Pi buvo masteris, o Arduino — sleivas. Gerai, jeigu architektūroje tik tiek dalių ir yra. O čia yra daugiau. Raspberry Pi turi „kalbėtis“ su mikrovaldikliu, o mikrovaldiklis — su likusiais įrenginiais. Taigi, mikrovaldiklis turi vienu atveju būti sleivas, kitu — masteris. I²C protokolas šiaip yra multi-master, t.y. vienoje magistralėje gali būti ir keli masteriai, tik jie turi mokėti vienas kitam netrukdyti. Arduino Wire biblioteka tai moka padaryti ir galima iš mikrovaldiklių sudaryti gan įdomias I²C topologijas. Bet va, Raspberry Pi, regis, multi-master režimo palaikymo neturi, bent jau kol kas. Aišku, Rasberry Pi į tą I²C magistralę ką nors siuntinės gan retai. Kartais per tinklą gautus nurodymus pavers konfigūracijos užklausomis, o kitais kartais periodiškai klausinės temperatūros reikšmių ir rašys jas į diską/duomenų bazę. Jei kartais dviejų masterių užklausos sutaps, magistralėje gali įvykti nesąmonių: man reikia išsiaiškinti, kiek tos nesąmonės gali kažką sugriauti. Šiaip spėju, kad nelabai ką, greičiausiai viskas bus gerai. Vienintelė problemėlė ta, kad būtinai reikės I²C magistralės logikos lygių keitiklio, nebepavyks išsisukti su tiesioginiu Raspberry Pi ir valdiklio sujungimu. Kol yra tik du elementai, tas įmanoma, bet jei atsiranda daugiau ir dar papildomas vienas masteris, tai jau šis reikalas nebegalimas. Na, bet ši problema nedidelė: reikia dviejų tranzistorių ir keturių rezistorių.

Buvo, tiesa, kilus kitokia mintis: sujungti Raspberry Pi ir Arduino per nuosekliąją jungtį. Bet kažkaip atsisakiau jos. Noriu išnaudoti vieną magistralę iki maksimumo. O ir kodyti paprasčiau, kai viskas su tom pačiom bibliotekom sukasi.

Dar jaučiu, kad reikės išbandyti dvipusių plokščių gamybą, nes vienpusės pradeda truputėlį užknisti. O gal apskritai pradėti pas brolius kinus užsisakinėti, nes projektas gali tapti kartotiniu… nežinau kolei kas. Nervija tai, kad truputį gaila pinigų laminatoriui ir jo modifikavimui, o su lygintuvu tikslumas ne tas. Fotorezistu užsiimti irgi nenoriu, labai jau procesas ištįsta…

Tai tiek. Mielai lauksiu pasiūlymų patarimų iš žmonių, kurie šioje temoje turi patirties ar bent jau šiaip nuomonę. Mano čia pabandymai bus tikrai mėgėjiški ir daugiau skirti pažintiniams tikslams. Na, ko pats savo būsimus namus susiprojektuosiu su visokiomis išmanybėmis.

Šiaip, kai kažką realaus sukurpsiu, pasidalinsiu ir plokščių projektais, ir programiniu kodu. Dabar dar nelabai turiu ką parodyti be viršuje esančio blokinio projektėlio.

Reklama
Komentarai
  1. Povilas Poderskis parašė:

    Gal tamsta žinot, kodėl yra tiek mažai out of the box išmaniųjų namų sprendimų? Taprasme nu man kažkaip nesicompute’ina – jeigu smartfonai jau kainuoja tiek mažai, kodėl negali būt visokių devaicų, lengvai montuojamų, kurie taipogi kainuotų taip mažai.

    • mindogas parašė:

      Taip yra todel kad klientai visokiu nesamoniu nori 😀 Pvz elemntarus apsvietimas.. Klientas nori kad butu 5 jungikliai vienai lempai o visu tu jungikliu nenori jungti i gudro namo valgikli nes taip prarastu greiti bei stabiluma (ta taip, valdikliui luzus sviesos nebebus). Ka tokiu atveju darome: jungiame lempa per 1 trisaki bei 4 ketrusakius 220 ar kitokios sroves jungiklius o valdikli gaminame kaip antra trisaki jungikli (vistik norime kad internetu galetume ijungti/isjungti sviesa). Ir dabar turime nezinomybe ar sviesa dega ar ne.. tenka gaminti itampos sekimo jutikli kuris jaustu ar per lempos laida siuo metu teka/imanoma srove.. Jei nesupratote ka cia kliedziu tai neesme, bet sprendimus universalius atlikti turi gudru namu gamintojas, o tai padaryti sudetinga.

      • Darau, Blė parašė:

        Visiškai suprantu, tik nelabai žinau, kodėl mikrovaldiklis galėtų lūžti 😀 Jie, bjaurybės, pakankamai stabilūs.

        Šiaip labai geras sprendimas yra pozicinės relės (latching relay). Jas galima junginėti signaliniais jungtukais, o valdiklis gali būti tik vienas iš jungtukų, per papildomą daviklį sekantis, ar relė yra įjungta. Be abejo, geriau rinktis SS relę — arba ją pasidaryti. Bent jau mano galvoje ateičiai sukasi būtent tokie variantai.

        • mindogas parašė:

          Ppratai taip jie yra stabilus, taciau zmones galvoja kiek kitai – tai yra elektronika ir jis genda 😀 Paprasti jungikliai nera elektronika (ten elektrika 😉 )tai jais galime pastiketi siltu procentu 🙂

          Mano pavyzdyje reles veiktu gerai tiesiog problema yra kitu jungikliu sekimas. Jei valdiklis yra ijunges rele tai vartotojas jungiklius gali perjungti daug kartu ir ivairiai tad taip valdiklis pameta realybe ka ta rele dabar daro: ijungia ar isjungia.

          Kas liecia SS reles tai anos gi kaista. Siaip mazai apie jas turiu informacijos bet mano galvoje kaitimas + Low Amps.

          • Darau, Blė parašė:

            Kai žmonės galvoja negalvodami, tai bėda, sutinku 🙂

            Hm, nelabai suprantu bėdą, kaip ten valdiklis gali kontrolę pamest. Jeigu jis seka, ar relė tiekia elektrą, ar netiekia, tai problemos ir nėr. Jis tada žino, ar ji įjungta, ar neįjungta.

            Dėl kaitimo tai viskas nuo dydžio priklauso. Esu čiupinėjęs rankos storumo tiristorių, kurie junginėja kiloamperus be jokių radiatorių. Jei viskas to tiristoriaus, tiksliau, TRIAC’o ribose, tai viskas turėtų būti gerai. Bet šito nežinau, gyvai nebandžiau kol kas ir nežinau tiksliai, kokie ten yra parametrai ir kokios galimybės. Galbūt pakeisti pavargusią relę kas porą metų yra pigiau, nei pirkti ar gaminti SS relę iki gyvenimo galo.

            • mindogas parašė:

              Pamesti gali nes rele nezino kokioje padetyje dabar yra like jungikliai. Butu gerai jei rele butu vienintele elekra tiekianti grandis bet taip nera. Stai mano apsvietimo modelis aprasytas cia: http://www.electrical101.com/4way-switches.html Pirmoje animacijoje galime laikyti kad pirmasis jungiklis yra musu rele, o like trys fiziniai jungikliia. Taigi perjungus viena is tu triju jungikliu valdiklis nebezino ar rele vis dar tiekia elekra.

              • Darau, Blė parašė:

                O tu jopšikmat tada 😦 Dabar jau aišku. Nu šlykštokas atvejis. Visgi geriau būtų signaliniai jungtukai. Aš savo naujuose namuose planuoju išimtinai tik signalinius. Pozicinius nebent katilinėj ir garaže, ūkinėse patalpose. Bet gyvenamoj erdvėj — tik signalinius.

    • Darau, Blė parašė:

      Hmmm… tai kad čia tokia žmogiška sritis, kur be individualaus sprendimo kažkaip nelabai kas ir įmanoma… Šiaip yra daugybė atviro kodo valdiklių, net ir lietuviškas Jonio valdiklis. Be to, dėl out of the box netiesa, kad nėra. Yra. Kainuoja nuo 30 kilolitų. Ateina ir per savaitę padaro, jei nereikia ypatingų tiuningų. Bet va, man 30 kilolitų gaila, aš geriau dar kartą į Australiją nuvažiuosiu pasibastyt po pakrantes ir po dykumas… Ir gal nugriebdamas truputį asmeninio laiko kažką susilituosiu, susikodysiu ir bus dar ir taip, kaip aš noriu 🙂

      • Povilas Poderskis parašė:

        Ne nu aš suprantu maždaug, kad yra 30 kilolitų iš kokio nors ten Elsis ar kokio industrinės automatikos grando sugalvojusio kad gali čia dar pamėtyt ir tokių visokių mažmožių.
        Bet man ir open source nelabai tinka. Aš aišku turėdamas daug laiko gal ir susidėstyčiau tuos daviklius pats, lituot moku ir schemą pasidaryt ir t.t., bet rankos mano vienok gan kreivos.
        Plius aš nesuprantu kas būtent čia kainuoja – elektronika tikrai nėra brangi. Mano poreikiai irgi ne kosminiai: šviesų reguliavimas, apskaitymas, automatiniai langai, automatiniai durų užraktai, plius vienas kitas webcam’as ale. Tai čia aš matau tik pigius komponentus. Ko aš visai nesuvokiu aišku yra elektra, o ne elektronika – tai matyt ten kaina ir išauga ar kaip čia?

        • Darau, Blė parašė:

          Didžiąja dalimi, gerbemasai, kaip patsai žinote, čia brangiausiai kainuoja stabilus veikimas, t.y. geras softas tiek valdikliuose, tiek kompiuteriniame mazge (jei toks yra, o dažniausiai kažkoks yra), jo visas ištestavimas, produkto įdiegimas ir išbandymas bei, galų gale, palaikymas (supportas).

          Iš gatavų dalykų yra įvairių komponentų, kuriuos galima susirankioti visokiuose ybėjuose ar alibabose ir įsidiegti. Labai geras to pavyzdys yra čia, kur kodas atviras, o visi komponentai — gatavi: http://saulevire.lt/kolektoriaus-valdiklis/

          Beje, tamstos išvardyti poreikiai yra ganėtinai kosminiai. Jei gyveni kur nors bute ar jau pastatytame name, tai įsivaizduoti, kaip tas visas šviesas per naują sujunginėti kapitaliai būsto nepergriaunant, yra sudėtinga. Aš gyvenu bute ir net negalvoju visų šių elementų automatizuoti, nes neturiu jokio įkvėpimo bandyt pravedžiot iš naujo laidus. Kur kas pigiau yra projektuoti būsimą būstą su visais laidų kūšiais ir linijomis. Reikalą gali kiek palengvinti iš anksto numatyti vamzdžiai pravedimui ir kabančios lubos. Kitu atveju net ir paprastas nuo fotelio valdomų šviesų įdiegimas yra užpakalis.

          Paprastas pavyzdys: norisi kambario apšvietimą padaryti valdomą kokiu nors kanalu, geriausia bevieliu, nes kitaip blogai bus su papildomais laidais. Kur tą valdiklį kišti, visko negriaunant? Jungiklis yra paprastas pozicinis, per kurį realiai teka įtampa, o ne ateina iki jo ir išeina toliau. Nėra kaip pasirūpinti maitinimu. Variantas yra jungtuko vietą užtrumpinti ir viską sumontuoti lempoje (galbūt blokų skylėje bus vietos). Bet tada nelieka „antžeminio“ jungiklio, tik bevielis. Antras variantas — montuoti jungiklyje, bet tada reikia silpnos įtampos, einančios per lempą, kaip naktinio indikatoriaus atveju. Su liuminescencinėmis lempomis toks variantas neįmanomas, jos blyksės…

          Out of the box sprendimai paprastai dar turi apimti platų vartojimo atvejų spektrą, kas irgi išaugina kaštus. Ir dar vienas niuansas: visas namų išmanumas yra ganėtinai naujas reikalas. Nagingi žmonės, kaip mano dėdė, darydavosi pilnai elektroninius (ne skaitmeninius) „išmanumus“ ir prieš 30 metų.

          Kalbant apie esamų sistemų modifikavimus vienas iš variantų pasinaudoti X10 standarto įranga. Su ja duomenys iš dalies perdavinėjami bevieliu ryšiu ir elektros linijomis. Kažkada mačiau ir paruoštų sprendimų su šia įranga, ją ir pačiam susidėlioti nėra labai sudėtinga.

  2. mindogas parašė:

    Idejos idomios tik turiu klausima – o kodel Ethernet nededi i aviete? Jei zadi naudoti LCD bei WEB’a vienu metu manau susidursi su resursu trukumais Atmega328 viduje. Siuo metu pats gaminu moduliuota gudru nama ir jungiu mikrovaldiklius i RS485 tinka, taciau mano atveju valdymo logika visai kitokia nei pas tave. Jei idomu galime susikontaktuoti ir persimesti idejomis, manau abiem tai praverstu 🙂

    • Darau, Blė parašė:

      Avietė ir taip turi Ethernet, tiesa. Tačiau čia yra bendra diagrama, su visais numatytais moduliais. Vienas draugas nori viską valdyti per avietę, ten kaupti istorinius duomenis ir pan., o kitas nori per Ethernet adapterį, be kompų. Kad Ethernet ryja daug resursų, tai žinau, sąsaja bus minimalistinė. Blogiausiu atveju, pridėsiu dar vieną Atmegą. Be to, jeigu bus Ethernet ar avietė, tai gal LCD iš viso nereikės.

      Galim ir kokio alaus susimatyti, kalba geriau eina. Jei teisingai nuspėjau vaizdus pagal tamstos remonto nuotraukas, tai galim būti netolimi kaimynai.

      • SauleVire.lt parašė:

        Ir aš darausi šilumos ūkio valdymą. Akumuliacinė talpa, pora motorizuotu vožtuvų, pora cirkuliacinių siurblių, saulės kolektoriaus valdymas, ateityje būtinai duomenys į tinklą. Šiai žiemai sau ir kaimynui darau su arduino mega 2560 ant maketinės plokštės, bet paskui būtinai pramoninė PCB iš kinų. Omnio naujienose bandžiau mestelti idėją kooperavimuisi, bet taip niekas ir neatsiliepė. Visų rezultatas tas pats, bet atskirai… Ar jau aptarėt klausimą prie alaus?

        • Darau, Blė parašė:

          Idėja kooperavimuisi būtų puiku, nes man reikia kaip minimum trijų plokščių, o kitaicai, kiek žinau, pigiausiai gamina bent po dešimt. Esu matęs ir po penkias, bet kaina skiriasi. Tiesa, aš Megos naudoti nenoriu, nes turiu 328 krūvelę. Atsisakiau idėjos su analoginiais termodavikliais, bus visur įprastieji DS18B20.

          Dar dėl kai kurių įpatumų aš ruošiuosi naudoti ir paprasčiausius servovariklius, kurie bus šalia esančių kranų pritvirtinti. Nežinau, kiek iš to bus naudos, bet kitaip nelabai išeina.

          Pradinė idėja kiek persiformavo, dabar ruošiuosi ant vienos plokštės dėti aštuonias reles, tris išvadus servovarikliams, vieną elektrodą skirti Dallasams, padaryti valdymą keliais mygtukais per vieną analoginį įvadą ir pridėti LCD. Toliau — pasirinktinai: arba tinklo adapteris komunikacijai, arba I2C magistralė į Raspberry Pi.

  3. SauleVire.lt parašė:

    Atmega 328 užstrigo su 3 ds18b20 davikliais, kai iš jo padariau www serverį konfiguracijai. Tik duomenų perdavimui užtektų ir mažesnio buferio, bet jei bus daviklių paieška ir priskyrimas, tai nežinau ar užteks atminties… Galutiniam variantui svarstau Stellaris launchpad už8 usd su siuntimu http://www.ti.com/tool/EK-LM4F120XL.
    Poreikiai kaip suprantu visų skirtingi, todėl reikia galvoti apie relių išplėtimo modulį.
    Mano relių poreikis:
    2 motorizuoti vožtuvai (panašūs į, tik su rankinio valdymo galimybe – http://www.ebay.com/itm/motorized-ball-valve-DN20-2-way-electrical-valve-/271219079429?pt=LH_DefaultDomain_0&hash=item3f25eab905) – 4 relės
    3 cirkuliaciniai (akumuliacinės, boilerio, radiatorių) – 3 relės
    pamaišymo vožtuvas- 2 relės
    saulės kolektorius – 1 relė
    rezervinis šildymas dujomis- 2 relės (elektrai gal užteks vienos).
    “Paprasčiausius“ servovariklius bandžiau, nepavežė, bet atpalaidabus tuos rutulinius vožtuvus žmonės naudoja, pvz:- http://zir.lt/e107_files/public/1320259292_139_FT14158_20111101512_.jpg
    Galvojant apie gražų korpusą, tai patogiau vietoj mygtukų naudoti rotary encoder’į – http://www.ebay.com/itm/10-Pcs-12mm-Shaft-Rotary-Encoder-Switches-Dia-6mm-New-/141021376143?pt=LH_DefaultDomain_0&hash=item20d5876e8f , bet jam vieno išvado jau neužteks…

    • Darau, Blė parašė:

      Na, aš ruošiuosi „įhardkodint“ Dallasų serijinius prieš tai juos susirankiojęs. Daryti paiešką ir saugojimą pvz., EEPROM, tai tingiu… Relių bloką valdysiu per I²C, teoriškai galima sukrauti 8 multiplekserius po 8 reles. Tiek gal net ir neprireiks. Laiko yr, pasižaisiu…

      Šiaip, aišku, yra didelė pagunda spjaut ant visų mikrovaldiklių ir padaryt normalų ir galingą aparatą išimtinai su Raspberry… bet labai nepasitikiu OS stabilumu.

      • SauleVire.lt parašė:

        Tam ir paėmiau mega 2560, kad dalasų adresų rankioti nereikėtų. Kūrenimo sezonas čia pat, tai ant maketinės jau jungtys sulituotos, laidai tampomi. Pasižiūrėsiu kai ten viskas veikia. Pasianalizuosiu grafikus, algoritmus paderinsiu. Pasižiūrėsiu kiek atminties programa naudoja.
        Būtų gerai, jei atliekamų PCB išmest nereiktų 🙂

Parašykite komentarą

Įveskite savo duomenis žemiau arba prisijunkite per socialinį tinklą:

WordPress.com Logo

Jūs komentuojate naudodamiesi savo WordPress.com paskyra. Atsijungti / Keisti )

Twitter picture

Jūs komentuojate naudodamiesi savo Twitter paskyra. Atsijungti / Keisti )

Facebook photo

Jūs komentuojate naudodamiesi savo Facebook paskyra. Atsijungti / Keisti )

Google+ photo

Jūs komentuojate naudodamiesi savo Google+ paskyra. Atsijungti / Keisti )

Connecting to %s