Elektroda.pl
Elektroda.pl
X
Metal Work Pneumatic
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Sterownik ogrzewania na Raspberry Pi

cosmit 05 Lut 2016 14:27 13554 28
  • Sterownik ogrzewania na Raspberry Pi

    Witam,
    kilka lat temu stanąłem przed wyborem sposobu ogrzewania w nowym domu. Poniżej krótki opis tego, co finalnie zostało “poskładane” i działa już od kilku miesięcy. Nie wiem, czy temat jest ciekawy dla szerszego grona, dlatego starałem się ograniczyć opis detali. W przypadku większego zainteresowania mogę go uzupełnić.

    Elementy zestawu:
    - dwa rozdzielacze podłogówki, po osiem pętli grzewczych
    - dwa bufory 500l połączone szeregowo
    - gazowy piec kondensacyjny
    - kominek z płaszczem wodnym
    - Raspberry Pi jako sterownik

    Schemat mniej więcej oddaje, jak to jest połączone: Sterownik ogrzewania na Raspberry Pi

    Sterownik na podstawie zewnętrznej temperatury i krzywych grzewczych oblicza temperatury podłogówki dla każdej kondygnacji osobno (2 x thermostate_weather). Teraz w zależności od aktualnych temperatur, na rozdzielaczach modyfikowane są wypełnienia PWM dla siłowników. Z uwagi na dużą bezwładność, do porównania brane są temperatury średnie z kilku minut. Rozdzielacze zasilane są z bufora, który z kolei podgrzewany jest albo przez piec kondensacyjny, albo przez kominek. Za temperaturę w buforze odpowiada thermostate_buffer, który sprawdza, czy temperatura jest o kilka stopni wyższa niż obliczona przez termostaty pogodowe rozdzielaczy. Jeżeli jest niższa, podawany jest sygnał do pieca gazowego. Piec gazowy ma ustawioną własną grzywę grzewczą tak, aby grzać o kilka stopni więcej, niż wyliczają pogodówki podłogowe. Ma to zabezpieczyć przed sytuacją zbyt zimnej wody w buforze. Piec gazowy grzeje tylko jeden bufor (500l).

    Kominek ma prosty termostat, który w momencie przekroczenia ustawionej temperatury zrzuca ciepłą wodę do bufora, dodatkowo pilnuje, aby zbytnio nie wychłodzić kominka podczas pracy z uwagi na kondensację wody (zabezpieczenie przed korozją). Nie jest to idealne rozwiązanie, ale nie mam zaworu mieszającego i lepsze to niż nic. Kominek grzeje dwa bufory 1000l.

    Dodatkowe zadanie - zabezpiecza pompy i co jakiś czas uruchamia je na kilka minut. Ma to sens głównie latem, gdy normalnie pompy są wyłączone przez kilka miesięcy.

    LCD 4x16 pozwala na szybki podgląd podstawowych parametrów: temperatury, stan pomp, siłowników. Jest dowolnie konfigurowalny i w przypadku, gdy potrzebujemy więcej danych wyświetlane komunikaty są przełączane co ustalony czas.





    Serwer TCP umożliwia na komunikację z procesem sterownika podczas pracy. W szczególności służy do monitorowania temperatury, stanów zadań, stanów wyjść. A także pozwala na zmianę ustawień podczas pracy.

    Serwer WWW pozwala na bieżąco podglądać aktualny stan (dane odświeżają się automatycznie), zmieniać ustawienia (wymagane hasło) oraz za pomocą wykresów przeglądać dane historyczne:
    główna strona: http://maco.skalski.biz/
    wykresy: http://maco.skalski.biz/charts.php Sterownik ogrzewania na Raspberry Pi

    Proces sterownika napisany w C++. Każdy task jest osobnym wątkiem. Konfiguracja zapisywana jest w pliku XML. Jako bazę danych wybrałem SQLlite. Logowanie za pomocą Log4CPP. Rozwiązanie jest bardzo elastyczne i już teraz posiada wiele możliwości konfiguracji. W przypadku, gdy jakoś logika nie jest obsługiwana, można dopisać kolejny task i go po prostu użyć.

    W takim kształcie układ działa pierwszy sezon i sprawdził się znakomicie. Po wyregulowaniu parametrów w zasadzie bezobsługowy.

    Dodatkowo w salonie dorzuciłem czujnik wilgotności i temperatury, który komunikuje się bezprzewodowo (Wi-Fi) ze sterownikiem za pomocą ESP8266. W kotłowni za pomiar temperatury i ciśnienia atmosferycznego odpowiada BMP085.

    Plany na przyszłość:
    - Dorobić logikę do wyłączania niektórych obwodów (lub całego pietra), gdy rozpalony jest kominek, bo w salonie jest za ciepło. Zdawałem sobie z tego sprawę już na etapie planowania ogrzewania, ale nie chciałem rezygnować z kominka,
    - Planuję założyć ogniwa fotowoltaiczne i w przypadku nadmiaru energii podgrzewać wodę w buforach (dodatkowa logika),
    - Zreorganizować serwis WWW. Cały czas to jest zlepek kilku stron i funkcjonalności
    - Dołożyć kilka dodatkowych czujników do monitorowania: np. temperatury czy wilgotności w pomieszczeniach,
    - Część automatyki domowej zrealizowana jest poprzez centralkę alarmową, która obecnie jest niezależna i docelowo byłoby te dwa urządzenia połączyć.


    rozdzielacz Sterownik ogrzewania na Raspberry Pi

    siłownik termiczny - sterowany PWMSterownik ogrzewania na Raspberry Pi

    płytka z przekaźnikami, jeden został zastąpiony mosfet'em - PWMSterownik ogrzewania na Raspberry Pi

    cały sterownik, widoczna płytka z przekaźnikami (piec co, pompa kominek) oraz zasilacz (ładowarka telefonu)Sterownik ogrzewania na Raspberry Pi

    przykładowe dane na wyświetlaczuSterownik ogrzewania na Raspberry Pi


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • Metal Work Pneumatic
  • #2 05 Lut 2016 16:35
    machacz102
    Poziom 14  

    Witam.

    Na wykresie temperatury zewnętrznej masz dość spore skoki, mógłbyś pokazać jak zrealizowałeś czujnik? Pytam bo wygląda na to że jest on podgrzewany przez słońce i stąd takie piki.

    edit

    Tak poza tym to cieplutko masz, powyżej 22 stopni praktycznie cały czas, i temperatura skacze 22 - 25. Nie przeszkadzają Ci takie skoki?

  • #3 05 Lut 2016 17:55
    cosmit
    Poziom 11  

    machacz102 napisał:

    Na wykresie temperatury zewnętrznej masz dość spore skoki, mógłbyś pokazać jak zrealizowałeś czujnik? Pytam bo wygląda na to że jest on podgrzewany przez słońce i stąd takie piki.


    ds18b20 wrzuciłem do puszki czujnika pogodówki pieca gazowego (Termet). Jest od północnej strony, dodatkowo osłonięty od góry jakby gzymsem. Słońce nigdy nie ma prawa bezpośrednio go oświetlać. Czujnik jest blisko bramy garażowej i już kiedyś zauważyłem, że reaguje na jej otwarcie (powietrze z garażu go podgrzewa) :)

    Co do samego algorytmu to piki nie mają większego wpływu, ponieważ poszczególne zadania często maja histerezę, a dodatkowo bezwładność całego układu jest tak duża, że i tak jest to "wygładzane".

    Mam dodatkowy typ "device", który uśrednia pomiar, ale tutaj akurat zrezygnowałem z niego

    machacz102 napisał:

    Tak poza tym to cieplutko masz, powyżej 22 stopni praktycznie cały czas, i temperatura skacze 22 - 25. Nie przeszkadzają Ci takie skoki?


    Przeprowadziłem się z kamienicy, której nigdy nie mogłem dogrzać i teraz sobie odbijam :) Czujnik w salonie to DHT22 i o ile wilgotność podaję w miarę stabilną to temperatura pływa (według mnie porażka ten czujnik). Dodatkowo wrzuciłem go do małej obudowy przetwornicą 3.3v i ESP8266. Tutaj faktycznie się podgrzewają nawzajem, temperatura jest podawana z jakimś offsetem. Mniej więcej się zgadza a mnie bardziej zależało na sprawdzeniu trendu temperatury niż na dokładnej wartości

  • #4 05 Lut 2016 18:15
    tomekgl
    Poziom 15  

    Projekt ciekawy. Miałem średnie doświadczenia ze stabilnością RPi, nawet z mocnym zasilaczem. Zakłócenia od strony USB potrafiły zresetować płytkę.
    Długie kable sygnałowe pokrzyżowane z zasilającymi 230V to proszenie się o kłopoty. Nie wiem na ile krytyczny jest proces którym sterujesz, ale nie ryzykowałbym bez zewnętrznego watchdoga, jeśli np. stałe włączenie kotła może spowodować awarię.

    EDIT:
    Czy próbki z pomiarów wrzucasz do wspomnianego sqlite'a czy masz jakiś inną bazę do szeregów czasowych (RRD, whisper)? Jak z wydajnością?

  • Metal Work Pneumatic
  • #5 05 Lut 2016 18:44
    cosmit
    Poziom 11  

    Układ wystartował ponad rok temu, był cały czas modyfikowany i rozbudowywany. Od tego czasu nie zawiesił się ani razu. Na początku planowałem watchodog'a ale bardzo pozytywnie zaskoczyło mnie raspberry i w tej chwili nie myślę o tym. W całym układzie tylko sterowanie kominkiem z płaszczem jest krytyczne. W przypadku zagotowania wody mam bombę w salonie. Jeżeli reszta logiki zawiedzie to co najwyżej będzie za ciepło/zimno.

    Kominek jest krytyczny/niebezpieczny więc układ zasilany jest przez UPS'a z akumulatorem samochodowym oraz dodatkowo mechaniczny (niezależny) termostat puszcza zimną wodę przez wężownicę schładzającą. To fabryczne rozwiązanie i mam nadzieję że to wystarczy...

    Dodano po 10 [minuty]:

    tomekgl napisał:

    Czy próbki z pomiarów wrzucasz do wspomnianego sqlite'a czy masz jakiś inną bazę do szeregów czasowych (RRD, whisper)? Jak z wydajnością?


    Na tą chwilę wszystko trzymam w sqlite. Tylko surowe dane bez żadnych uśrednień. Baza służy głównie do wykresów, podczas startu zaczytuję jeszcze stany wyjść (żeby nie włączyć np pompki jeżeli wcześniej ją wyłączyłem) ale to margines.

    Tak naprawdę to witryna, którą udostępniłem komunikuje się z moim raspberry poprzez dwie warstwy proxy, gdzie każda ma swój cache. Nie wiedziałem jaki ruch elektroda wygeneruje i wolałem nie ryzykować. Każda warstwa ma swoją instancje bazy dzięki czemu rysowanie wykresów zupełnie nie obciąża raspberry, bo dane historyczne są na serwerze hostującym stronkę. Architektura może trochę na wyrost ale bardzo elastyczna.

  • #6 05 Lut 2016 23:30
    paciek74
    Poziom 12  

    Pytania od strony instalacyjnej:
    1. Dlaczego masz zadaną temp na pietrze wyższą niż na parterze? Gorzej zaizolowałeś dach?
    2. Kolana stalowe "czarne" przy rozdzielaczach - nie miałeś mosiężnych?
    3. Czy instalację masz w systemie zamkniętym?

    A tak poza tym interesująca konstrukcja. Ja nie miałem czasu na tworzenie i kupiłem do siebie gotowy sterownik. Jak na razie działa (1,5 roku).

  • #7 06 Lut 2016 00:02
    cosmit
    Poziom 11  

    paciek74 napisał:
    Pytania od strony instalacyjnej:
    1. Dlaczego masz zadaną temp na pietrze wyższą niż na parterze? Gorzej zaizolowałeś dach?


    Dach mam płaski, dobrze zaizolowany. Nie wiem co najbardziej wpływa (pewnie wszystko) ale:
    - Na dole jest dużo grzejących sprzętów (głównie w kuchni) + kominek.
    - Na pietrze są pokoje dzieci, które większość czasu spędzają na podłodze
    - Na dole są w 90% płytki, na górze głównie panele

    paciek74 napisał:
    2. Kolana stalowe "czarne" przy rozdzielaczach - nie miałeś mosiężnych?


    Nie robiłem sam hydrauliki, przy budowie domu jest tyle do ogarnięcia, że trzeba było wybierać co robię sam a co "zamawiam"

    paciek74 napisał:
    3. Czy instalację masz w systemie zamkniętym?


    Tak, cała instalacja jest w systemie zamkniętym. Kominek podnosi ryzyko, ale takie podłączenie było najłatwiejsze w moim przypadku.

    paciek74 napisał:
    A tak poza tym interesująca konstrukcja. Ja nie miałem czasu na tworzenie i kupiłem do siebie gotowy sterownik. Jak na razie działa (1,5 roku).


    Szukałem jakiegoś gotowca, ale ciężko było. Zawsze czegoś brakowało :) W ogóle to z hydraulikami jest ciężko: albo starej daty zupełnie nie rozumieją nowszych rozwiązań, albo "nowsi" którzy proponują systemowe rozwiązania za ciężkie tysiące. Miałem kilku takich w stylu "10 tysięcy i będzie ciepło w domu". Kotłownia powstała na zasadzie że przygotowałem listę co mi potrzeba, narysowałem schemat i hydraulik to pospinał. Wydaję mi się że do końca nie był przekonany że to będzie działać :)

  • #8 07 Lut 2016 19:27
    mąci
    Poziom 15  

    Bardzo fajny projekt, właśnie sam się przymierzam do budowy takiego sterownika, tylko ze do sterowania temperaturą C.O. i C.W.U. oraz dwoma piecami : węglowym i gazowym oraz solarami. Czy w Twoim sterowniku można bezpośrednio zmieniać temperature z urzadzenia? Czy mógłbym prosic o schemat elektroniczny i program?

  • #9 08 Lut 2016 09:56
    _JAG_
    Poziom 15  

    Projekt fajny.
    Nie chciałeś od razu rozwinąć tego urządzenia o funkcje stacji pogodowej (barometr i higrometr) lub nawet jeżeli masz wentylację mechaniczną o sterownik do niej?

    Jaką masz pompkę na tym rozdzielaczu?
    Teraz są takie fajne pompy energooszczędne na magnesach trwałych.
    U mnie mam pompkę, która pobiera 15W a robi pracę jak zwykła 60-80W, a przecież ona chodzi 24h/dobę w okresie grzewczym.

    A co do różnicy temperatur to jestem pewien, że to przez wykończenie powierzchni - panele trochę jednak bardziej izolują i przez wyższa temperatura.

  • #10 08 Lut 2016 12:16
    cosmit
    Poziom 11  

    mąci napisał:
    Czy w Twoim sterowniku można bezpośrednio zmieniać temperature z urzadzenia? Czy mógłbym prosic o schemat elektroniczny i program?


    Ustawienia można zmieniać:
    - z poziomu konfiguracji xml, wymaga restartu procesu, wymaga zalogowania do raspberry i edycji pliku
    - z poziomu przeglądarki www można zmienić parametry poszczególnych elementów (np krzywą grzewczą, wyłączyć pompę, etc.)

    Da mnie jest to wystarczające, ale nie jest to wygodne. Kiedyś myślałem o dorobieniu suwaków na stronie www,, żeby można było podnieść/obniżyć temperaturę (offset do krzywych), w planach był też prosty manipulator (z komunikacją wifi) ale na tą chwilę brak czasu. Poza tym przy podłogówce takie zmiany będą widoczne dopiero za kilka godzin, więc ich użyteczność jest dyskusyjna. Trzeba raz wyregulować układ i później jest w zasadzie bezobsługowy. Ja po jednym pełnym sezonie grzewczym jeszcze od czasu do czasu coś "dostroję".

    Schematu elektronicznego nie mam, bo w zasadzie to składak z gotowych modułów (tak wygląda dzisiejsza elektronika - jak klocki):
    - raspberry
    - zasilacz 5V - wymontowany z ładowarki telefonu/tabletu
    - 3 x gotowa płytka z dwoma przekaźnikami, tak jak pisałem wcześniej na potrzeby siłowników, które steruje PWM'em zamiast przekaźnika wlutowałem mosfeta.
    - chyba 6 x ds18b20 do pomiaru temperatury, spięte w gwiazdę, przy większej ilości trzeba zmniejszyć wartość rezystora podciągającego
    - standardowy LCD 4x16
    - BMP085 - czujnik ciśnienia - raczej jako bajer bez wpływu na nic, komunikuje się przez i2c
    - ESP8266+DHT22+przetwornica 3.3V - dodatkowa czujka temperatury/wilgotności w salonie - bez wpływu na główny proces - tylko podgląd/monitoring

    Żadnej magii tutaj nie ma, raczej standardowe połączenia :) Jeżeli potrzebujesz jakieś dokładniejsze informacje to mogę przygotować, ale opisywanie wszystkiego trochę nie ma sensu bo pełno tego w internecie.

    Program też w tej chwili nie bardzo nadaje się do publikacji, zwłaszcza że tak naprawdę to kilka modułów: proces sterownika (C++), serwis WWW (php/javascript), trochę skryptów (bash). Może jak to uporządkuję to upublicznię całość, na tą chwilę jeżeli potrzebujesz jakichś szczegółowych informacji na temat któregoś z rozwiązań to postaram się pomóc.

    Jak ciekawostkę załączam plik konfiguracyjny:config.txt Download (8.91 kB)

  • #11 08 Lut 2016 12:23
    cosmit
    Poziom 11  

    _JAG_ napisał:
    Nie chciałeś od razu rozwinąć tego urządzenia o funkcje stacji pogodowej (barometr i higrometr) lub nawet jeżeli masz wentylację mechaniczną o sterownik do niej?


    Pomiar ciśnienia już jest, szukam dobrego miejsca na czujnik wilgotności na zewnątrz (wewnętrzny już jest).
    Wentylację mechaniczną mam i cały czas działa na najniższym biegu. Nie bardzo wiem co mógłbym w niej sterować? Wykrywać ruch w łazience :)? Mierzyć wilgotność w domu?

    _JAG_ napisał:

    Jaką masz pompkę na tym rozdzielaczu?


    Pompki standardowa około 50W (działają na pierwszym biegu). Jak się policzy zużycie to faktycznie boli, ale dopóki się nie zepsują to pewnie ich nie wymienię

  • #12 10 Lut 2016 13:44
    _JAG_
    Poziom 15  

    Jakie masz wentylatory - jakiej firmy.
    Jestem zwolennikiem BLCD zarówno w pompkach jak i wentylatorach dlatego pytam. Można sterować je bezstopniowo i oszczędności są dość spore w zużyciu prądu.
    Kupiłem ostatnio 2 wentylatory EBM niestety na 12-15V ale blcd i będę na nich robił rekuperator. Ich sprawność pomijając transfer 230v-15v jest 3-5 razy większa do napędzanych zwykłym silnikiem.

    A o sterowanie wentylacją to w tej kwestii dopiero zamierzam zgłębić temat - ale na pewno będą presostaty z układem dopasowujący moc nawiewu do wywiewu i programator tygodniowy.

  • #13 10 Lut 2016 22:12
    cosmit
    Poziom 11  

    _JAG_ napisał:
    Jakie masz wentylatory - jakiej firmy.

    Mam fabryczny rekuperator, nawet nie wiem co w środku siedzi

    _JAG_ napisał:
    A o sterowanie wentylacją to w tej kwestii dopiero zamierzam zgłębić temat - ale na pewno będą presostaty z układem dopasowujący moc nawiewu do wywiewu i programator tygodniowy.


    Mam dedykowany sterownik z możliwością zaprogramowania całego tygodnia, ale jak dla mnie to bezużyteczny bajer. Wszystko działa cały czas na najniższym biegu i to wystarcza. Kilka razy na miesiąc żeby wywiać kuchenne "zapachy" włączamy na chwilę wyższy bieg i to wszystko.

    Jeżeli miałbym coś automatyzować to tak jak pisałem:
    - można wykorzystać czujki alarmu z łazienek i gdy ktoś jest w łazience to włączyć wyższy bieg na kilka minut (trudno się goli z zaparowanym lustrem:). Mam w ten sposób zrobione sterowanie cyrkulacją ciepłej wody i sprawdza się znakomicie.
    - można sprawdzać wilgotność powietrza w wyrzutni i na tej podstawie sterować mocą. Mam teraz suche powietrze w domu i być może dałoby się je jakoś poprawić przez włączanie/wyłączanie wentylacji
    - może są jakieś inne pomysły, które można by rozważyć

    Gdzieś to jest w moim TODO, tylko nie jestem jakoś przekonany, że to będzie działać i nawet zakładając, że będzie czy faktycznie będę z tego korzystał

  • #14 13 Lut 2016 14:06
    paciek74
    Poziom 12  

    Trochę obok głównego tematu.
    Podziwiam za wytrwałość. Ja ze wszystkich górnolotnych planów zostałem tylko z porozciąganymi kablami w ścianach do sterowania podłogówką, garścią DS, wyświetlaczami, a i tak steruję centralnie w kotłowni temp na wszystkie obiegi podłogowe. Jedynie co zamontowałem to odczyt temp zasilania podłogówki na rozdzielaczu głównym, abym nie musiał chodzić do kotłowni. Do 35 st wyświetla a potem dodatkowo miga, że coś jest nie tak (schematów pełno w internecie). Zalecam zastosowanie pomp ze sterowaniem elektronicznym (sam zamieniłem pompy obiegowe po dwóch miesiącach) - one w sezonie pracują cały czas i widać to na rachunku (wiem, że są droższe ale wierz mi, że się opłaca).

  • #15 14 Lut 2016 23:40
    3xstory
    Poziom 5  

    Ciekawa rzecz. Mam parę pytań bo sam przymierzam się do czegoś takiego. Chociaż ja chce użyć czegoś mniejszego. RPi to moim zdaniem za duży komputer do tego.
    Mógłbyś więcej powiedzieć o oprogramowaniu? Piszesz " Każdy task jest osobnym wątkiem." Rozumiem, ze działa to tak, ze wybierasz sobie np. jakiegoś czujnika temp DS i piszesz prosty programik w C, który co np 5 minut loguje temp do bazy danych. Potem inny programik czyta bazę danych i steruje zaworem na pietrze. Inny programik znowu czyta bazę danych i steruje zaworem na dole. itd. Wszystko kompilowane na samym RPi?
    Na zdjęciu widzę pompkę. Ona chodzi cały czas, czy tez jest sterowana tak aby uzyskać określony przepływ wody?

  • #16 15 Lut 2016 09:48
    cosmit
    Poziom 11  

    3xstory napisał:
    Chociaż ja chce użyć czegoś mniejszego. RPi to moim zdaniem za duży komputer do tego.


    Też planowałem to zrobić na jakimś AVR ale przez przypadek zobaczyłem jak działa RPI. Moim zdanie to był najlepszy wybór do tego zadania. Może i główną logikę bym w atmege wepchnął, ale teraz mam rozwojową platformę, którą już planuje rozbudować. Za avr chyba tylko cena przemawia, tutaj masz komputer o nieporównywalnych możliwościach.

    3xstory napisał:

    Mógłbyś więcej powiedzieć o oprogramowaniu? Piszesz " Każdy task jest osobnym wątkiem." Rozumiem, ze działa to tak, ze wybierasz sobie np. jakiegoś czujnika temp DS i piszesz prosty programik w C, który co np 5 minut loguje temp do bazy danych. Potem inny programik czyta bazę danych i steruje zaworem na pietrze. Inny programik znowu czyta bazę danych i steruje zaworem na dole. itd.


    To trochę inaczej działa. Proces sterownik jest jeden (plus kilka skryptów, głównie administracyjnych, uruchamianych z crontab'a). Sterownik ma jedną konfigurację urządzeń (czujniki, przekaźniki, lcd, itp): co jest podpięte, do których portów, jak często odświeżać dane, itd. Teraz wewnątrz tego jednego procesu działa kilka wątków np:
    - wątek serwera TCP, w każdym momencie mogę się połączyć i zobaczyć np jaki jest stan czujników, mogę pozmieniać ustawienia, włączyć pompkę, itd
    - wątek termostatu kominka, sprawdza czy woda w płaszczu jest odpowiednio gorąca i jeżeli tak to "zrzuca" ją do bufora
    - dwa wątki termostatu pogodowego, dobierają temperaturę zasilnia podłogi dla każdego piętra osobno, sterują siłownikami na rozdzielaczach, itd
    - wątek termostatu bufora, pilnuje żeby w buforze cały czas była temperatura wyższa niż ta obliczona przez termostaty pogodowe, jeżeli jest za niska to włącza się piecyk gazowy
    - wątek lcd, wątek zabezpieczenia pomp

    W uproszczeniu wszystkie wątki mają cały czas dostęp do innych wątków i do danych z czujników, bo to się dzieje w ramach jednego procesu.

    Bazy danych mogłoby nie być. W uproszczeniu trzyma ona tylko dane historyczne na potrzeby wykresów. Wykresy są niezależne od sterownika (uproszczenie) i na serwerze www są skrypty w php, które na podstawie bazy rysują wykres. Mogę teraz skopiować bazę i rysować te wykresy np na laptopie bez połączenia z internetem.

    3xstory napisał:
    Wszystko kompilowane na samym RPi?


    Nie, zbyt długo to trwa :) Do pisania kodu, debugowania używam eclipsa albo spod cygwina albo z ubuntu. Gdy wszystko działa to kompiluję crosskompilatorem na ubuntu i gotowe binarki wrzucam na RPI. Bardzo rzadko zachodzi potrzeba debuggowania czegoś bezpośrednio na RPI ale wtedy mamy remotegdb.

    3xstory napisał:

    Na zdjęciu widzę pompkę. Ona chodzi cały czas, czy tez jest sterowana tak aby uzyskać określony przepływ wody?


    Jeżeli chodzi o pompki na rozdzielaczach to one działają cały czas. Inaczej chyba się nie da. Przepływem wody a tym samym temperaturą steruje siłownik termiczny, który otwiera/zamyka dopływ "świeżej" ciepłej wody do rozdzielacza. On jest sterowany PWM.

  • #17 18 Lut 2016 04:05
    uzi18
    Poziom 23  

    Projekt ciekawy i przyznam sie ze kiedys cos takiego chcialem zrobic jednak RPi szkoda troszke do takich rozwiazan, planujesz udostepnic go dla innych osob?
    Czy moglbys powiedziec jak sie sprawdza bufor ciepla i polaczenie szeregowe?
    Jak czesto wlacza sie piec?

    Pytam poniewaz przypadkiem tu trafilem, szukajac rozwiazan podobnych jak aktualnie tworze.
    Planowalem cos zrobic na RPi lecz doszedlem do wniosku ze najlepiej bedzie oddac czesc sprzetowa dla aktualnie taniego Arduino Mega z EthernetShield, a jesli bedzie potrzeba
    sterowania czyms na wyzszym poziomie to RPi bedzie mial mozliwosc nim sterowac jako swoisty master.

    Moj sterownik jest troszke inny, z zasady ma zajmowac sie czystym spalaniem ekogroszku w piecu z podajnikiem zgodnie z ktoryms z kilku algorytmow spalania.
    Powstal po tym jak producent bruli/ecoal porzucil sterowniki pierwszej generacji, potrafi sie z nim komunikowac i rozszerzac o dodatkowe moduly.
    W projekcie jest juz kilka osob i generalnie zalezy nam na czystym procesie spalania.
    Dodatkowo bedzie (jest) sterowanie peryferiami tj. pompkami, zaworami 3D-4D, wentylatorami AC/DC i zbieranie temperatur w formie zarchiwizowanej na karcie SD.
    Projekt jest udostepniony na github w formie opisu jak polaczyc moduly (tak-gotowce/OpenHardware) i pliku hex do mikrokontrolera.
    Na karcie SD znajduje sie strona WWW udostepniona na porcie 80.
    Dane na stronie odbierane sa w formie zapytan AJAX, a sama strona napisana jest przy uzyciu m.in. AngularJS.
    Jestesmy na etapie testowania czesci skladowych, a sam sterownik juz dodaje modulacje dmuchawy polepszajac znaczaco jakosc spalania - co przeklada sie na rzadsze czyszczenie pieca.
    Poniewaz sterownik jest konfigurowalny, nie musi nic palic a moze rozdzielac tylko cieplo jak powyzej opisany, juz nie dlugo bedzie niezalezny od bruli/ecoal, skladajac i konfigurujac tylko czesc elementow uzyskujemy tylko czesc jego funkcjonalnosci - nie kazdy wszystko potrzebuje, co przeklada sie na elastycznosc systemu.
    Nie sposob tu opisac wszystkich mozliwosci.
    RPi sluzy mi aktualnie jako zdalny programator, skrypt w bash pobiera najnowsza wersje z github i programuje do mikrokontrolera ;)
    Moze za jakis czas opisze go w dziale DIY.
    Dla ciekawych Link, screeny ze strony WWW moge udostepnic.

  • #18 18 Lut 2016 13:42
    cosmit
    Poziom 11  

    uzi18 napisał:
    Projekt ciekawy i przyznam sie ze kiedys cos takiego chcialem zrobic jednak RPi szkoda troszke do takich rozwiazan, planujesz udostepnic go dla innych osob?


    Jeżeli ktoś będzie zainteresowany szczegółami, to się dogadamy i przygotuję co trzeba. To jest wszystko jest naprawdę bardzo mocno konfigurowalne i możlwiości są naprawdę duże

    Myślałem nad podaniem linka do repozytorium git'a, ale musiałbym dorobić trochę lepsze zabezpieczenia. Na szybko zablokowałem tylko większość funcji dostępnych z poziomu WWW. Ryzyko, że ktoś się włamie na sterownik ogrzewania pewnie nie jest duża, ale z drugiej strony mam bombę w salonie w postaci kominka i wolę tego nie ułatwiać.

    Co do samego raspberry to kosztuje okolo 100pln i ma w zasadzie wszystko czego potrzebuję. Nie wiem np na ile Atmega pozwala na programowanie obiektowe czy użycie graficznego debbugera, bo robiłem tylko małe układziki. Przy wiekszych ilościach pewnie bym się zastanawiał ale jako domowe rozwiązanie moge tylko polecać

    uzi18 napisał:

    Czy moglbys powiedziec jak sie sprawdza bufor ciepla i polaczenie szeregowe?
    Jak czesto wlacza sie piec?


    Szeregowe połączenie - o co dokładnie pytasz? Czy chodzi o to, że ma 2x500l zamisat 1x1000l? Okazyjnie kupiłem używane takie zbiorniki.

    Piecyk włącza sie mniej wiecej raz na 2h na ~30min. To akurat udostepniam, można pooglądać :)
    Cały dom na żywo, refresh 30s: http://maco.skalski.biz/
    Wykresy historyczne: http://maco.skalski.biz/charts.php

  • #19 18 Lut 2016 23:02
    uzi18
    Poziom 23  

    Tak ciekaw jestem jak sie bufory sprawdzaja w takiej konfiguracji.
    Zerknalem na wykresy i wyglada jakby bufor2 sie (prawie) wogole nie ladowal ...

    Atmega sprawdza sie w obiektowym programowaniu.
    Jest tania i mozna ja szybko podmienic w razie awarii.
    Do tego uzyta jako sterownik zmniejsza ryzyko uwalenia RPi :)
    RPi pewnie mogloby ujsc ale ma malo I/O i zauwazylem problemy z watkami gdy pisalem program w python.
    Odstepy czasowe bardzo wazne w precyzyjnym podawaniu paliwa potrafily plywac, pod tym wzgledem atmega bila RPi na glowe.

    Generalnie poszlismy w te strone aby kazdy kto potrzebuje zrobic sobie sterownik nie musial zbyt duzo inwestowac.
    Budowa jest modulowa i nie wszystkie rzeczy sa wymagane, program sprawdza nawet dostepnosc modulu ethernet i gdy go brak nie uruchamia serwera www.

  • #20 19 Lut 2016 12:00
    cosmit
    Poziom 11  

    Piecyk gazowy grzeje tylko pierwszy bufor (powrot jest wpiety pomiędzy buforami). Mam jeszcze możliwość (zawory) grzania połowy bufora i góry bufora (10cm). Jak projektowałem kotłownie to nikt nie potrafił doradzić jak będzie najlepiej. Wydaje mi się, że teraz jest optymalnie, bo przy innych ustawieniach to piecyk sie co chwilę włącza/wyłącza, albo znowu działa cały czas (palnik wygaszony a tylko pompka piecyka pracuje).
    Drugi bufor startuje dopiero gdy odpalam kominek. 500l wydaje się za małe. Dodatkowo bufory mają wężownice wiec może coś jeszcze pod nie podepnę, albo może grzałkę i panele fotowoltaiczne. Temat rozwojowy :)

    Co do atmegi to wcale nie krytykuję Twojego wyboru bo pewnie jest optymalniejszy do Twoich zastosowań (choćby realtime) i też to rozważałem. Zdecydowała jednak wygoda, tutaj na płytcę mam wszystko co potrzebuje (a nawet więcej).

  • #21 19 Lut 2016 19:24
    uzi18
    Poziom 23  

    Wlasnie to mnie trapilo, z tym buforem. Powinienes sie zastanowic
    jak zmodyfikowac uklad aby oba bufory miec ladowane.
    Wtedy wiecej ciepla wykorzystasz z kominka i bedzie ekonomiczniej.

    W tych czasach jest to dylemat mocne mikrokomputery tanieja.
    RPi nie jest jakas udana konstrukcja, te co sie pojawily po nim maja duzo wiecej IO itp.
    I tu byl dylemat jak wspierac te wszystkie plytki.
    Wiec wpadlem na pomysl ze jesli uzyje sie arduino mega
    jako swoistego pomostu do sprzetu to nie wazne co za plytka bedzie w roli RPi
    Zawsze bedzie dzialac poprawnie.
    Pozniej wpadlem na pomysl aby arduino czesc rzeczy przejelo na siebie.
    Okazalo sie ze spokojnie radzi sobie z wieloma rzeczami na raz w tym z www.
    Jeszcze sporo miejsca w nim zostalo.

    Tak czy owak w przyszlosci czesc rzeczy bedzie robic rpi
    Mozliwe ze bedzie zbierac dane do bazy i miec w sobie zaimplementowane narzedzia do ich analizy, w tym kosztow ogrzewania.

    Moze nawet docelowo wiekszosc funkcji pojdzie do rpi a mega pozostanie prostymi IO.
    Mysle ze czas pokaze, projekt zyje i ciagle sie rozwija.

  • #24 01 Mar 2016 10:33
    cosmit
    Poziom 11  

    Ja znam "sposób" dobierania na podstawie zapotrzebowania na ciepło: tak dobrać bufor aby palić raz na 1/2/3 dni. W 1000l jesteś wstanie zmagazynować trochę ponad 1.1kWh na każdy stopień. Czyli przy założeniu że najniższa temperatura użyteczna to 35C i nagrzewasz bufor do 80C (deltaT=55C), to masz w nim zmagazynowane około 60kWh. Teraz musisz policzyć na jak długo to wystarczy dla Twojego domu.

    Druga sprawa to też bezpieczeństwo w systemach zamkniętych: za mały bufor szybko się nagrzeje i nie będzie wstanie odebrać ciepła z kominka czy kotła. To może doprowadzić nawet do rozerwania instalacji.

    Pewnie jest jeszcze wiele różnych czynników, które należałoby wziąć pod uwagę, ale to musi ktoś z branży CO się wypowiedzieć

  • #25 16 Lut 2018 21:23
    pawel2828
    Poziom 2  

    Witam
    Układ mi się podoba. Właśnie przymierzam się do budowy domu i podobnie pomyślałem o ogrzewaniu gazowym wspomaganym kominkiem z płaszczem wodnym. Połączenie szeregowe rozumiem - kryterium "okazja cenowa". Mam zasadnicze pytanie : Jaki to jest kominek? Firma? No i podstawowe: Jaka moc?
    Pozdrawiam

  • #27 16 Lut 2018 21:45
    pawel2828
    Poziom 2  

    Tak oglądam dalej te wykresy i trochę zaskoczyło mnie ze to jest 20kW ten kominek, myślałem że jednak ma mniejszą moc.
    Czy ma sterowanie przepustnicą?
    Czy założył Pan zawory zwrotne na wyjściu z kominka? Zauważyłem że jak już nie pracuje a kocioł gazowy grzeje to w nim rośnie temperatura - przy otwartych szybrach może ciepło uciekać w "komin"

  • #28 16 Lut 2018 22:05
    cosmit
    Poziom 11  

    Nie dam glowy, ze ma akurat 20kW, musialbym poszukac faktury albo instrukcji, ale tak na 99% to ten model. Po wykresach moze byc trudno okreslic moc bo w zasadzie wszystko co na wykresach zalezy od palenia :)
    Nie mam przepustnicy
    Nie mam zaworow zwrotnych, schemat mniej wiecej taki jak na rysunku, jedyne opory moze robic pompka. nie mam tez zaworu mieszajacego, co chyba jest najwiekszym uchybieniem, ale staram sie utrzymywac w miare wysoka temperature podczas palenia, zeby uniknac skraplania
    Fakt czasem temperatura w kominku rosnie, to zalezy jak silowniki sie w danym momencie otworza, woda plynie tam gdzie ma najmniejsze opory, pewnie cos tam ucieka w komin, ale staram sie zamykac doplyw powietrza jak sie nie pali

    Uklad dziala juz 3 rok i to nawet calkiem poprawnie, jest tylko jeden minus, ktory trzeba wziac pod uwage: przy dobrze ocieplonym domu w salonie po zapaleniu szybko robi sie goraco. Niby wylaczam/ograniczam podlogowke jak kominek jest goracy, ale to nie jest wystarczajace

  • #29 10 Mar 2018 20:44
    3xstory
    Poziom 5  

    pawel2828 napisał:
    pomyślałem o ogrzewaniu gazowym wspomaganym kominkiem z płaszczem wodnym

    Nie buduj domu z kominkiem z płaszczem wodnym. W przypadku braku prądu nie masz żadnej możliwości ogrzania domu. Ani gazem, ani kominkiem.
    Kominek bez płaszcza za to jak już koniecznie chcesz ogrzewać większą powierzchnie , to wybuduj kanały do rozprowadzania ciepłego powietrza wspomagane wentylatorem.