První krůčky

01.12.2010

Zde popisuji svoje pokusy o vytvoreni regulace pro rizeni domaciho slolarniho systemu a topeni.
Cilem je vytvoreni digitalni regulace, ktera by byla pouzitelna i pro jine ucely domaci automatizace
nez je jen regulace topeni.
Na pocatku jsem mnel nasledujici pozadavky:
- Co nejmensi prikon.
- Moznost ethrnetu a owladani pres web.
- Cenova dostupnost
- univerzalnost
Rozhodl jsem se pro platformu firmy DIGI (www.digi.com) a jejich modul DIGI Connect ME 9210.
To proto ze ve sve dobe (r. 2010) to bylo to nejlevnejsi a nejdostupnejsi co jsem nasel.

Jde o modul s ARM procesorem 75MHz, 8MB rom a 16MB ram s moznosti behu operacniho systemu LINUX.
Modul je pripraven k osazeni do desky plosneho spoje.
Popis regulace solarniho systemu a topeni pro rodinny dum:
Solarni system se sklada ze dvou sestav slunecnich teplovodnich kolektoru jedna orientovana na JV
a druha na JZ, bojleru na teplou vodu 200l, akumulacni nadoby 800l. K topeni je k dispozici plynovy kotel
a kotel na tuha paliva.
Slunickem se ohriva boiler (tepla uzitkova voda) a akumuacni nadoba. Boiler muze byt take horivam
plynovym kotlem, nebo pomoci akumulacni nadoby.
Topeni muze byt realizovano bud pomoci plynoveho kotle , nebo akumulacni nadoby. Akumulacni nadoba
muze byt ohrivana bud slunecni energii nebo kotlem na tuha paliva.
V teto konfiguraci vznika pomerne mnoho kombinaci zapojeni a regulace cele soustavy neni nikterak jednoducha.
Abych si situaci zjednodusil rozdelil jsem regulaci na jednotlive dilci regulacni celky, jako napr. regulace solrniho okruhu,
ohrev TUV, kotel na tuha paliva, dohrev akumulacni nodoby, vychlazovani akumulacni nadoby, topeni, cirkulace TUV, topeni.
Pro samotne ovladni jsem zvolil 1-wire sbernici pro mereni teploty cidla dallas MAXIM 18B20, a pro ovladani elektroventilu
relatkova pole taktez ovladane pres 1-wire sbernici.
HW:
pro jednoduchou montaz jsem zvolil krabicky na dim listu do jedne jsem umistil ridici modul jehoz jadro tvori zminovany modul DIGI
connect me9210 a do dalsich jsem umistil relatkova pole.
Ridici modul:
K modulu digi connect me9210 jsem pripojil prevodnik na rs232 (seriovy port), jeden I2C 8bit expander portu pro ovladani tlacitek,
bzucaku a jedno rele. Druhy 8bit I2C expander portu jsem pouzil pro ovladani alfanumerickeho displaye. Na I2C jsem jeste napojil
hodiny relaneho casu zalohovane baterii a prevodnik z I2C na 1-wire sbernici.Na desku jsem rovnez umistil jednoduche stabilizatory
napeti na 5 a 3,3V (jak se pozdeji ukazalo moc vhodne to neni, protoze jednoduche stabilizatory srazeji napeti prevodem do tepla,
a pri vyssich proudech se docela zahrivaji, lepsi ale slozitejsi by byl nejaky spinany regulator).
Vyjimecne je to v tom, ze veskere zapojeni je na desce jednostrannneho plosneho spoje.
Modul 1-wire releove pole 6xrele + 2x input
releove pole s pouzitim obvodu DS2408 (8bit expander pro 1-wire sbernici).
6bitu je pouzito na ovladani relatek a zbyle dva je mozne pouzivat jako digitalni vstup.
Zajimavosti zapojeni ze ze i prvnich 6 bitu lze pouzit take i jako vstup avsak na jejich stav reagujou pripojena relatka, tj
relatka lze ovladat TTL urovni na jednostlivych vstupech (0- rele sepne) nebo pomoci 1-wire sbernice.
Ve vychozim stavu jsou relatka vypla. Relatka snessou 8A/250V avsak v seplem stavu maji pomerne velky odber
0.5W jedno. K modul je potreba dovest napajeni 5V pri vsech sesti seplych relatkach ma modul prikon cca 3 W.
Poznamka: ridici modul obsahuje stabilizator 5V/1A. Toto napeti je pres pojistu vyvedeno na svorkovnici a urceno i pro napajeni relatkovych poli.
Ridici modul tedy bezpecne utahne napajeni pouze jedno relatkoveho pole. Muj system obsahuje tri relakova pole (3x6=18 relatek), tudiz si musim zajitit dodatecny zdroj.SW:
BASH
prvni krok bylo zprovozneni HW v linuxu. I2C sbernice stejne jako 1-wire sbernice nebyla problem stacilo vybrat podporu v jadre.
Stejne tak I2C expandery portu. Trochu potrapily hodiny relaneho casu (neprisel jsem na to jak linuxovemu modulu ric
na jake I2C adrese se hodiny nalezaji, vyresil rucnim zasahem do zdrojovych kodu linuxoveho jadra. S teplotnimi cidly DS18B20
nebyly v linuxovem jadre problemy, zato podporu pro expander portu DS2408 a DS2413 jsem v jadre vubec nenasel, proto jsem
si pro tyto obvody musel napsat vlastni ovladace. Jinou moznosti by bylo pouzit projekt 1-wire, jenze po prelozeni zdrojovych kodu
byl vysdek tak velky, ze by se do omezene pameti modulu nevesel, tim netvrdim, ze by to neslo nejak osekat, ale nemnel jsem naladu se
v cizich zdrojacich hrabat.
druhy krok -napsani samotneho programu pro regulaci.
Abych menl vyvoj co nejjednodusi napsal jsem vse v programovacim jazyce prikazoveho radku (bash). Jednotlive casti regulace
jsem naprogramoval jako samostane programy, veskere parametry se ukladaji do konfiguracnich souboru odkud si je program za letu cte.
stejne tak je zde zte i zapisuje webova zprava. Pri ladeni po jednotlivych programech vse krasne fungovalo, ale kdyz jsem
spustil vse na jenou, tak nestacila pamet ani rychlost procesoru. Zkratka provadeni prikazu z davky (bataku je systemove hodne narocne
z kazdym rikazem se spusti a ukoncuje nejaky program (co prikaz to samostany program a to si sebou v linuxu bere vysokou reziji).
Resenim je vse prepsat nejlepe do C jako jeden jediny program.
No tim jsem zatim skoncil momentalne se bashove programky snazim rozumne prepsat do C.
C
Po nekolika mesicich jsem regulaci uspesne prepsal do C. Program ted spotrebuje tak cca 20% casu procesoru, takze program se chova velice svizne.
Pro zajimavost jednotlive regulace jsem rozdelil do samostatnych vlaken. O web se stara somostany webovy server s cgi rozhranim. Cele program po prelozeni
ma cca 400KB. Oproti BASHove verzi ma mnoho vychytavek, napr. konfiguraci cidel pres web, pri mreni teplot ukladni max., min, a prumernych hodnot, moznost zapnot
logovani, u swithu citace poctu prepnuti, atd. .vis. screenshoty. Nejvice limitujicim faktorem je pocet teplotnich cidel, protoze precteni jejich teplty trva cca 3/4 sec. a po tu dobu je zaplokovana jakakoliv dalsi komunikace po 1w sbernici.

© 2016 SEAHU . Komenského, Řícmanice , 664 01
Vytvořeno službou Webnode
Vytvořte si webové stránky zdarma! Tento web je vytvořený pomocí Webnode. Vytvořte si vlastní stránky zdarma ještě dnes! Vytvořit stránky