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

Multisterownik/ multikontroler kotłowni na Raspberry Pi B+

abwg 06 Sty 2015 17:06 36849 134
  • Multisterownik/ multikontroler kotłowni na Raspberry Pi B+

    Witam serdecznie,
    chciałbym przedstawić forumowiczom bardzo (jak dla mnie) ciekawe zastosowanie minikomputera Raspberry Pi+.

    Repozytorium i sposób instalacji dostępne są pod tym adresem: https://github.com/tm-poland/sowa

    Do tej pory do sterowania pompami kotła na paliwo stałe (drewno/ węgiel) stosowałem sterowniki Au... i Eu... do tego programator czasowy do bojlera, żeby lepiej wykorzystywać tańszą energię taryfy dwustrefowej G12w, programator czasowy do cyrkulacji CWU, termostat z kapilarą do cyrkulacji oraz przekaźnik czasowy do zrobienia tego, czego nie umieli producenci ww. sterowników. Ponieważ mam zawory odcinające z siłownikiem przed pompami, konieczne wydawało się wcześniej stosowanie dodatkowo przekaźników z cewką 230V, kontrolki faz, itd. Jednym słowem 1m2 ściany oblepiony "elektroniką" i kilogramy plastiku i metalu.

    Teram mam tylko jedną "puszkę" i to własnej produkcji :) Działa jak marzenie. Jak przed nią stoję, to mam wrażenie, że myśli jak ja... :D tylko szybciej. Nie bez znaczenia jest też znacznie mniejsze zużycie energii czegoś, co wisi i działa 24h, 365 dni w roku.

    Multisterownik/ multikontroler kotłowni na Raspberry Pi B+ Multisterownik/ multikontroler kotłowni na Raspberry Pi B+ Multisterownik/ multikontroler kotłowni na Raspberry Pi B+





    Od bardzo długiego czasu chodził mi po głowie podobny projekt, jednak czegoś brakowało, żeby zacząć - tym "czymś" okazało się właśnie Raspberry Pi. Ten minikomputer ma dla poniższego zastosowania niesamowite zalety: bardzo małe zapotrzebowanie na energię, dużo wyjść sygnałowych, możliwość programowania w popularnych językach programowania. Dla mnie C (C++), ale jak się później okazało równie dobrym wyborem okazał się Python.

    Zaczynałem od testów w Pythonie. To było moje pierwsze zetknięcie z tym językiem. Po kilku godzinach miałem już prosty działający sterownik z serwerem TCP/IP.

    Po wielu wieczorach bardzo przyjemnej pracy, wykorzystując Pythona, PHP, JavaScript i skrypty powłoki powstał "serwer kotłowni".

    Backend to wielowątkowy serwer z obsługą zapytań po TCP/IP napisany w Pythonie konfigurowany jak każdy serwer linuxowy za pomocą pliku konfiguracyjnego. Niesamowitą zaletą tego serwera jest małe zapotrzebowanie na zasoby. Na początku się tego obawiałem, wiedząc jak bardzo Python jest językiem wysokopoziomowym, ale niepotrzebnie - wyszło lepiej niż się tego spodziewałem. Gdyby nie biblioteka "1-wire", to obciążenie procesora byłoby bliskie zeru.

    Multisterownik/ multikontroler kotłowni na Raspberry Pi B+

    Wszystko jest zamknięte w taniej, fajnej i przestronnej obudowie SEZ-506 SK.
    Z ciekawszych elementów widocznych na zdjęciach powyżej można wymienić moduł 8-przekaźnikowy ze stykami o obciążalności 10A oraz moduł termopary, czyli przetwornik analogowo-cyfrowy na bazie MAX6675.

    Na płytce uniwersalnej widać dużą ilość potencjometrów. Służyły mi do regulacji jasności diod. Może niezbyt fachowy pomysł, ale zdał egzamin. Teraz po zmierzeniu rezystancji można by je zamienić na stałe oporniki.

    Dobrym pomysłem jest też użycie potencjometru do sterowania oporem magistrali 1-wire (odczyt temperatur). Domyślnie potrzeba 4.7 kOhm, jednak przy długich przewodach trzeba zmniejszyć tą wartość i w tym pomaga rezystor regulowany.

    Minikomputer podłączony jest pod sieć za pomocą Ethernetu. Wcześniej miałem WiFi, ale jednak co po kablu to po kablu. WiFi działało bezproblemowo, ale jednak kabel zapewnia spokój umysłu.

    System działa całkowicie samodzielnie. Nie potrzebuje podłączenia do sieci. Potrzebne jest to dla użytkownika, żeby mógł pooglądać sobie jak to działa i korzystać ze "stacji pogodowej".

    Dodatkowo mam podłączenie do upsa przez USB, żeby po dłuższej przerwie w dostawie prądu serwer i RPi miękko się wyłączył.

    Włączanie i wyłączanie serwera jest oczywiście obsługiwane przez skrypty systemowe, tak więc bezproblemowo automatycznie się uruchamia i wyłącza.

    Aby oglądać w przeglądarce działanie systemu/ serwera, konieczne jest zainstalowanie na RPI serwera www (np. lighttpd) i żeby przetrzymywać stany serwer bazy danych MySQL lub obsługę SQLite3. Oczywiście nic nie stoi n przeszkodzie by używać zdalnego serwera bazy danych i nie obciążać tym zadaniem RPi.


    Frontendem jest strona/aplikacja napisana w PHP z Ajaxem. Bardzo przyjemna - intuicyjna i jak na obecne czasy przystało - przyjazna do "palcowania" na tablecie czy smartfonie. Oczywiście wszystkie odczyty są pobieranie i odświeżane na bieżąco niezauważalnie dla użytkownika.

    Zrzuty z przeglądarki komputera:

    Multisterownik/ multikontroler kotłowni na Raspberry Pi B+ Multisterownik/ multikontroler kotłowni na Raspberry Pi B+ Multisterownik/ multikontroler kotłowni na Raspberry Pi B+ Multisterownik/ multikontroler kotłowni na Raspberry Pi B+ Multisterownik/ multikontroler kotłowni na Raspberry Pi B+ Multisterownik/ multikontroler kotłowni na Raspberry Pi B+ Multisterownik/ multikontroler kotłowni na Raspberry Pi B+

    Zrzuty ze smartfona:

    Multisterownik/ multikontroler kotłowni na Raspberry Pi B+ Multisterownik/ multikontroler kotłowni na Raspberry Pi B+ Multisterownik/ multikontroler kotłowni na Raspberry Pi B+ Multisterownik/ multikontroler kotłowni na Raspberry Pi B+

    Teraz może troszkę o funkcjonalności.
    Żeby przybliżyć złożoność i mnogość ustawień, zamieszczę przykładowy plik konfiguracyjny systemu:

    Code:
    # Plik konfiguracyjny SOWA1
    
    #===== USTAWIENIA GŁÓWNE =====
    [general]
    debug = False
    loglevel = 2
    logfile = ./log/sowa.log
    dioda = 5
    czujnik_temp = 00000585ad32
    czujnik_temp_zew = 0000061b5cab
    czujnik_temp_wew = 0000061cff31
    port = 8888
    relay_on = 0
    relay_off = 1
    password = ala*
    host =

    #===== BAZA DANYCH =====
    [mysql]
    wlaczone = True
    user = pi
    pass = ###
    db = sowa
    host = localhost
    freq_zapisu = 300

    [sqlite3]
    wlaczone = True
    db = sowa.db
    freq_zapisu = 300

    #===== OBIEG CO =====
    [co]
    wlaczone = True
    czas_probek_temp = 60
    t_petli = 1
    histereza = 2
    gpio = 21
    rozpalanie_delta = 2
    wygaszanie_delta = 1
    dioda = 24
    rozpalanie_dioda = 25
    wygaszanie_dioda = 23
    rozpalanie = True
    wygaszanie = True
    czujnik_temp_zasilania = 00042b12abff
    czujnik_temp_powrotu = 00042e078dff
    gdy_priorytet_cwu = True
    temp_alarm = 95

    # temp przy ktorej wylacza sie rozpalanie i zaczyna pracować pompa co
    temp_rozpalanie = 45

    # temperatura poniżej której możliwe jest uruchomienie wygaszania
    temp_wygaszanie = 40

    # temp przy ktorej zaczyna pracowac pompa co i ponizej ktorej przestaje pracowac
    # z uwzględnieniem histerezy, gdy wylaczone wygaszanie
    temp_start = 45

    # minimalna temperatura przy ktorej dziala pompa co gdy wlaczona jest opcja
    # wygaszania
    temp_min = 34

    #===== OBIEG CWU =====
    [cwu]
    wlaczone = True
    czujnik_temp = 00042b12c6ff
    gpio = 26
    dioda = 18
    t_petli = 1

    # pozwala na dorzewanie wody gdy systen ma stan rozpalania, czyli gdy piec
    # dopiero nabiera temperatury
    gdy_rozpalanie = True

    # gdy priorytet jest włączony inne moduły powinny przestać pracować, chyba że
    # mają ustawioną opcje pozwalającą na ignorowanie priorytetu CWU
    priorytet = True

    temp_max = 50

    # min. temperatura zasilania CO, przy której włączy się dogrzewanie CWU
    temp_min_co = 30

    temp_alarm = 95 
    histereza = 4

    #===== CYRKULACJA CWU ===== 
    [cyrkulacja]
    wlaczone = True
    histereza = 2
    czujnik_temp = 00042e06cbff
    t_petli = 1
    gpio = 19
    dioda = 27
    harmonogram_wlaczony = True

    harmonogram = <01-01-2014 06:00>1,2,3,4,5</31-12-2014 07:00>;
      <01-01-2014 06:00>6,7</31-12-2014 09:00>
     
    temp_max = 25
    temp_alarm = 95
    manual = False

    #===== GRZAŁKA =====
    [grzalka]
    wlaczone = True
    t_petli = 1
    gpio = 16
    dioda = 22
    histereza = 2
    temp_max =  45

    # czy grzałka ma grzać jak działa obieg CWU
    gdy_cwu = False

    # czy grzałka ma grzać jak działa obieg co w trybie pracy lub rozpalania
    # nie dotyczy to trybu wygaszania, wtedy grzałka może działać bezwarunkowo
    gdy_co = False

    # grzałka włączona 24h
    manual = False

    # czy włączony harmonogram grzania
    harmonogram_wlaczony = True

    # harmonogram grzania grzałki
    # poniedzialek to 1 niedziela 7
    # przykład: "<01-01-2014 13:00>1,2,3,4,5</31-03-2014 15:00>"

    harmonogram = <01-01-2014 13:00>1,2,3,4,5</31-03-2014 15:00>;
      <01-04-2014 15:00>1,2,3,4,5</30-09-2014 17:00>;
      <01-10-2014 13:00>1,2,3,4,5</31-12-2014 15:00>;
      <01-01-2014 04:00>1,2,3,4,5</31-12-2014 06:00>;
      <01-01-2014 06:00>6,7</31-12-2014 09:00>;
      <01-01-2014 16:00>6,7</31-12-2014 21:00>

     
    #===== OGRZEWANIE PODŁOGOWE =====
    [ogrzewanie_podlogowe]
    wlaczone = True
    histereza = 2
    czujnik_temp = 00042e06edff
    gdy_rozpalanie = False
    gdy_priorytet_cwu = True
    gpio = 20,13
    dioda = 17
    temp_min_co = 25
    temp_alarm = 95
    t_petli = 1


    #===== TERMOPARA =====
    [termopara]
    wlaczone = True
    gpio_cs = 10
    gpio_clock = 11
    gpio_data = 9
    t_petli = 1
    temp_alarm = 150 
    tylko_gdy_co = True


    Funkcjonalności:
    * odczyt temperatury wewnętrznej (z domu) i zewnętrznej
    * sterowanie pompami CO, odczyty temperatur z zasilania, powrotu, temperatury spalin
    * sterowanie pompami CWU z odczytem temperatury CWU
    * sterowanie pompami cyrkulacji CWU z odczytem temperatury
    * sterownia grzałką zasobnika CWU
    * sterowanie pompami ogrzewania podłogowego z odczytem temperatury

    Dodatkowo:
    * możliwość generowania statystyk działania systemu dla dowolnie wybranego przedziału czasowego
    * możliwość odczytania stanów systemu dla dowolnie wybranego przedziału czasowego
    * konfigurowanie systemu z przeglądarki (zabezpieczone hasłem) lub z pliku konfiguracyjnego
    * obserwacja dzienników pracy systemu na bieżąco za pomocą przeglądarki

    System ma budowę modułową, czyli użytkownik może np. wyłączyć wszystkie moduły pozostawiając jedynie sterowanie grzałką bojlera.

    Żeby połączyć się z serwerem np. z pracy lub z plaży, wystarczy forwardować port serwera WWW na zewnątrz lub skorzystać z połączenia VPN.

    To tyle. Oczywiście mam nowe pomysły na rozszerzanie funkcjonalności. Niestety ponieważ niepotrzebne mi było/ nie dysponuję sprzętem, nie zaimplementowałem obsługi wentylatora i zaworów cztero- i trójdrogowych, ale pewnie... kto wie... może... zobaczymy. :D
    W najbliższym czasie dodam obsługę alarmów. Dotychczas serwer "rozgania" temperaturę bez powiadamiania, ale przydałaby się może jakaś krótka informacja mailem lub SMS-em. Zobaczymy.

    Pisanie tego wszystkiego zajęło mi kilkanaście wieczorów (czasem nocy), ale bardzo się opłaciło. Jestem niesamowicie zadowolony z siebie, :D z efektu i z działania. Ktoś może zadać pytanie, co ze stabilnością? Tak więc, restartuję tylko, jak dodam jakąś większą część kodu - poza tym działa stabilnie sam, nic nie trzeba włączać/ wyłączać, sam rozpoznaje rozpalanie i wygaszanie.

    Od strony programistycznej: całość to ok. 1600 linii kodu w Pythonie, ok. 1100 mix PHP i HTML oraz ok. 600 w JavaSript. Było więcej, ale każdą wolną chwilę spędzam na jednym z moich ulubionych zajęć - optymalizacji :?:

    Koszty, koszty: wszystko, co potrzebne zamknęło się w 300-350 zł. Dużo kupowałem u chińczyków, ale głównie dla frajdy otrzymywania "prezentów" z końca świata, czasami też niektóre elementy są u nich łatwiej dostępne.

    Repozytorium i sposób instalacji dostępne są pod tym adresem: https://github.com/tm-poland/sowa

    Błędy i uwagi proszę zgłaszać przy pomocy githuba: https://github.com/tm-poland/sowa/issues


    Fajne!
  • #2 06 Sty 2015 18:04
    JedenZero
    Poziom 7  

    Fajny, rozbudowany projekt, też mam kotłownie na Pi :) (python, webiopi, sqlite)
    brakuje mi tu wykresów, jak już masz dane w bazie to bardzo prosto generować za pomocą gnuplot takie wykresiki:

    Multisterownik/ multikontroler kotłowni na Raspberry Pi B+

  • #3 06 Sty 2015 18:07
    abwg
    Poziom 13  

    Będą na pewno i wykresy. Na razie były mi zbędne ale z czasem dodam. Na razie koncentrowałem na bardziej strategicznych problemach.

  • #4 07 Sty 2015 02:58
    kaytec
    Poziom 20  

    Bardzo fajnie Ci to wyszło. Można się przyczepić do wiązania przewodów na supeł w szafce. Również rzeźbie coś podobnego z tym ze do sterowania mieszkaniem, oświetlenie, alarm, rolety, monitoring temperatury i pradu, zalania.

    Napisz coś więcej o stronie programowej. Ja korzystam tak jak kolega JedenZero z frameworka webiopi, plus oczywiście pakiet do i2c - bo czasem trzeba wysłać coś samemu czego framework nie obsługuje (np pullup w modułach wejść wyjść w tej magistrali)

  • #5 07 Sty 2015 08:04
    abwg
    Poziom 13  

    kaytec napisał:
    Bardzo fajnie Ci to wyszło. Można się przyczepić do wiązania przewodów na supeł w szafce.

    Jeszcze nie zdemontowałem całej starej automatyki. Trochę przewodów tam jest, dlatego na wszelki wypadek zrobiłem supeł żeby demontując nie wyrwać czegoś z puszki sytemu razem z płytką. Takie zabezpieczenie do czasu uporządkowania.

    kaytec napisał:
    Napisz coś więcej o stronie programowej.

    Starałem się wpuścić jak najmniej obcego kodu do siebie ze względu na ryzyko braku kontroli. Z zewnętrznych bibliotek korzystam z w1thermsensor i max31855 z githuba.

  • #8 07 Sty 2015 12:24
    seba_x
    Poziom 31  

    Skąd masz ikonki które są na obudowie?.

  • #9 07 Sty 2015 12:49
    abwg
    Poziom 13  

    @seba_x , nie pamiętam dokładnie adresu ale z jakiejś bazy darmowych ikon. Były trochę przerabiane na potrzeby projektu.

  • #10 07 Sty 2015 13:15
    tplewa
    Poziom 37  

    @abwg

    Ja dodam tylko ze taki sterowanik warto by wyposarzyc w watchdog-a... nie wiem czy uzywasz ale zwiecha takiego sterownika i np. nie wlaczenie pompy itp. moze sie roznie zakonczyc ;) Dodam ze BCM2835 ma taki wbudowany potrzeba tylko zaladowac modul do kernela i odpalic daemon-a...

    Moze to zrobiles, ale nic nie pisales w temacie wiec daje info :)

    Dodam jeszcze ze te chinskie przekazniki to takie srednie wyjscie, nie sa one najlepszej jakosci i po pewnym czasie lubia sie zawieszac... (przynajmniej na kilku modulach jakie kupilem do testow po pewnym czasie pojawily sie takie problemy).

  • #11 07 Sty 2015 13:55
    abwg
    Poziom 13  

    @tplewa, myślałem o watchdog'u ale zostawiłem to widząc jak to stabilnie pracuje. Pewnie wrócę do tematu. Dzięki za podpowiedź.

    Odnośnie przekaźników. Mówisz konkretnie o samym przekaźniku SONGLE 10A? Jeżeli tak to może masz rację. Do tej pory nie zauważyłem jakiegokolwiek problemu, najwyżej zmienię je na coś innego. BTW taki moduł jest tani. W zapasie jak widzisz na zdjęciu są jeszcze 2 wolne, więc w razie jakichkolwiek problemów przełączam na zapasowy i w kilkanaście sekund działa na nowym przekaźniku.

  • #12 07 Sty 2015 14:21
    tplewa
    Poziom 37  

    Tak dokladnie o te przekazniki :) No cena jak cena wiec nie ma co wymagac... W sumie mialem tylko dwa takie moduliki wiec tez mozliwe ze mi sie trafily jakies felerne... no ale to akurat najmniejszy problem...

    Co do watchdog-a to za zwyczaj uklady dzialaja stabilnie az do momentu zwiechy ;) po to jest wlasnie watchdog ;)

    Nie wiem jakiego distro uzywasz ale powinienes spokojne do niego znalezc opis jak odpalic watchdog-a (ot haslo dla google "raspberry pi watchdog" itp.), w sumie to chwila roboty i ma sie ciut wieksza pewnosc ze w razie zwiechy system wystartuje na nowo i uklad bedzie dzialal...

  • #13 07 Sty 2015 14:45
    abwg
    Poziom 13  

    tplewa napisał:
    Tak dokladnie o te przekazniki :) No cena jak cena wiec nie ma co wymagac... W sumie mialem tylko dwa takie moduliki wiec tez mozliwe ze mi sie trafily jakies felerne... no ale to akurat najmniejszy problem...

    Ja miałem też dwa takie moduły. Wyglądały na zdjęciach podobnie a jakość wykonania była kolosalnie różna. Zostawiłem sobie ten solidniejszy ;) Ale jak mówisz nie był to problem modułów tylko samych przekaźników.

    tplewa napisał:
    Co do watchdog-a to za zwyczaj uklady dzialaja stabilnie az do momentu zwiechy ;) po to jest wlasnie watchdog ;)

    Tak, wiem. Poprzednie sterowniki sprzętowe musiałem bardzo często resetować bo uzyskiwały (najczęściej w nocy) stany nieustalone. Ten na kilkaset godzin działania nie zawiódł nawet raz. Choć na samym początku musiałem opisywać odpowiednio niektóre wyjątki, gdy po nocy zdarzał się jakiś Traceback ... :) w logach.

  • #14 07 Sty 2015 14:54
    tplewa
    Poziom 37  

    No tutaj masz elektronike od strony uC w miare solidnie zaprojektowana, co przy roznych konstrukcjach w tym amatorskich ze wzgledu na projekt elektroniki/wykonanie PCB itp. czasami sie tak konczy. Ale poprawnie zaprojektowany sterownik tez powinien dzialac bez problemow i zwiech o ile oprogramowanie nie ma bledow... a na inne wypadki bo zawsze moga pojawic sie jakies smieci w zasilaniu, iskrzace styki w przekazniku itp. to zabezpiecza sie watchdogiem i ma sie przynajmniej czesciowo problem z glowy jak procek sie zawiesi...

    W sumie ja osobiscie przy sterownikach moze nie pieca (bo nie mam) :) staram sie takie cos robic co by potem spac spokojnie jak to sie mowi :) Choc czasami to byly kombinacje z zewnetrznym modulem jak uzywana byla np. plyta miniITX... ot program resetowal zewnetrzny uklad watchdog-a

  • #15 07 Sty 2015 15:54
    Milek79
    Poziom 14  

    abwg napisał:
    Gdyby nie biblioteka "1-wire" to obciążenie procesora byłoby bliskie zeru.

    Kernel ma obsługę 1wire i odczytu temperatury z DS18B20, wystarczy załadować odpowiedni moduł modprobem, więc nie trzeba robić tego w userspace.

  • #17 07 Sty 2015 19:16
    szandi
    Poziom 10  

    Jak to możliwe to poproszę o film prezentujący działanie

  • #18 07 Sty 2015 20:37
    abwg
    Poziom 13  

    Milek79 napisał:
    Kernel ma obsługę 1wire i odczytu temperatury z DS18B20, wystarczy załadować odpowiedni moduł modprobem, więc nie trzeba robić tego w userspace.

    Tak, ma w1-gpio i w1-therm jednak z jakichś przyczyn odczyt danych z czujników w Pythonie powoduje znaczne (w porównaniu z resztą) obciążenie procesora. Nie zgłębiałem przyczyny ale gdzieś autor jakiejś alternatywy do modułów w1-* już o tym pisał.

    Dodano po 35 [sekundy]:

    szandi napisał:
    Jak to możliwe to poproszę o film prezentujący działanie

    a co dokładnie chciałbyś zobaczyć?

  • #19 07 Sty 2015 20:57
    saly
    Poziom 32  

    abwg napisał:
    Działa jak marzenie. Jak przed nią stoję to mam wrażenie że myśli jak ja :D ... tylko szybciej.

    :P :P :P

    Dobre, też mam sterownik swojej produkcji w piwnicy i często jak na niego patrze napawa mnie duma, a żona kładzie się ze śmiechu.


    Plus za pomysł konstrukcje i stopień zaawansowania.
    Minus za wykonie plątanie kabli.

  • #20 07 Sty 2015 21:05
    abwg
    Poziom 13  

    @saly, witam w gronie zadowolonych z siebie ;) - to bardzo potrzebne w te ciemne dni :)

    Dodano po 1 [minuty]:

    saly napisał:
    Minus za wykonie plątanie kabli.

    Oj ... śpieszyło mi się żeby zobaczyć jak działa :)

  • #21 07 Sty 2015 22:12
    Verio
    Poziom 10  

    Wygląda na prawdę świetnie. Polecam zamiast apache'a nginx'a, który wręcz idealnie pasuje do RPi ;)

  • #22 08 Sty 2015 11:03
    tzok
    Moderator Samochody

    Mam takie pytanie - układ pracuje stabilnie, ale zawsze może się zawiesić (po roku, dwóch, zasilacz może zacząć "siać" i zachowanie układu może stać się nieprzewidywalne)... jaki jest "naturalny" stan wyjść sterujących (np. podczas resetu) i jak się on ma do sterowania elementami wykonawczymi? Należałoby to tak podłączyć żeby wszystkie obwody były wtedy rozłączone (poprzez odpowiedni dobór sterowania "z plusa" albo "z minusa" i użycie styków n.c. lub n.o.).

  • #23 08 Sty 2015 11:42
    jack63
    Poziom 41  

    tzok napisał:
    Należałoby to tak podłączyć żeby wszystkie obwody były wtedy rozłączone (poprzez odpowiedni dobór sterowania "z plusa" albo "z minusa" i użycie styków n.c. lub n.o.).

    Nie koniecznie wszystko musi być rozłączone. To zależy od filozofii bezpieczeństwa układu. Przykładowo pompa obiegowa powinna być raczej wyłączna przez układ sterownia, bo lepiej niech przegrzeje obiekt niżby miała się zagotować woda w kotle.
    Jednak poruszony problem jest ważki.
    @abwg Jaki system operacyjny masz na Pi ? Na ile jest on Real time?
    Projekt bardzo mi się podoba. Wynik działań jest dla mnie kolejną zachętą, mobilizacją. Chyba będzie trzeba kupić Pi i zacząć się uczyć go programować. :D
    PS. Jak pisali koledzy, uważaj na przekaźniki! Szczególnie te "typowo" chińskie. Z doświadczenia wiem, że nawet te "nasze" markowe z czasem tracą swoje właściwości i stają się źródłem trudnych do wykrycia problemów.
    Jakiś czas temu miałem problemy z instalacją (nie ważne jaką). Układ zachowywał się dziwacznie. Po "badaniu" okazało się że jeden ze styków i 4-ro letniego przekaźnika R4 miał rezystancję 38 om. Stres zostawia mocne wspomnienia :D. Po przełożeniu kabli na sąsiednią wolną parę styków, akurat była wolna, układ wrócił do swojej poprawnej pracy.
    Także weź to pod rozwagę.

  • #24 08 Sty 2015 13:11
    abwg
    Poziom 13  

    tzok napisał:
    Należałoby to tak podłączyć żeby wszystkie obwody były wtedy rozłączone (poprzez odpowiedni dobór sterowania "z plusa" albo "z minusa" i użycie styków n.c. lub n.o.).

    Ale przecież tak jest. To czy jest NZ czy NO zależy od tego jak się wepniesz w I/O przekaźnika. Ja wybrałem logikę NZ.

    Dodano po 2 [minuty]:

    jack63 napisał:
    PS. Jak pisali koledzy, uważaj na przekaźniki! Szczególnie te "typowo" chińskie.

    Czy są jakieś markowe przekaźniki które byłyby zamiennikiem dla tych w module z cewką 5V? Najlepiej tak żeby pasowały nóżkami.

    Dodano po 23 [minuty]:

    Sam sobie odpowiem:
    RELPOL RM-50-3011-85-1005, więc ja nie widzę problemu. Można kupić moduł i przelutować.

    Dodano po 2 [minuty]:

    i kolejny: FINDER 36.11.9.005.4011 obydwa w cenie ok 4 zł za szt.

  • #25 08 Sty 2015 13:49
    jack63
    Poziom 41  

    abwg napisał:
    Ale przecież tak jest. To czy jest NZ czy NO zależy od tego jak się wepniesz w I/O przekaźnika. Ja wybrałem logikę NZ.

    Nie o to chodzi. Nie to miał na myśli @tzok. Chodzi o bezpieczeństwo. W programie jest Ci obojętne czy załącz pompę jest stanem 0 czy 1 jakiejś linii portu procesora. Mozna to zmienić. Można zdefiniować odwrotną logikę. Pełna swoboda, byle była konsekwencja działań. Jednak w przypadku awarii/zwiechy/wyłączenia zasilania/itp lepiej by było aby stany elementów wykonawczych były bezpieczne dla układu. Przykład z pompą Ci coś nie sugeruje? Chodzi o to żeby elementy wykonawcze nie były tylko "niewolnikami" sterownika, ale aby były troszkę niezależne. Układ jako całość ma mieć szansę się obronić nawet gdyby sterownik padł/zawiesił się/itp.
    Dlatego lepiej jest aby za włączanie się ważnej pompy odpowiadał styk NC a nie NO. Niech sterownik "świadomie" ją wyłączy.
    Oczywiście nie jest to panaceum na wszystkie problemy, ale nieskorzystanie z takiej możliwości uważam za błąd w sztuce automatyki.
    abwg napisał:
    Czy są jakieś markowe przekaźniki które byłyby zamiennikiem dla tych w module z cewką 5V? Najlepiej tak żeby pasowały nóżkami.

    Masz duże wymagania. Osobiście wolę nóżki w galarecie a nie te od przekaźników. :D
    Z reguły chincyki kopiowali rozwiązania zachodnie, więc są duże szanse. Jednak poszukiwania mogą być żmudne i długotrwałe. Przechodziłem ta "chorobę" kilka razy i nie dam się nią zarazić ponownie.
    Przecież nie wiadomo jakie są chińskie "oryginały"? To Ty masz wszystkie dane.
    Przekaźników o małym poborze prądu na 5V cewki tzw. cyfrowych/mikroprocesorowych jest coraz więcej. Po prostu szukaj w necie lub olej to i zamontuj na kabelkach, które i tak Ci nie przeszkadzają ( :D ) , jakieś inne przekaźniki o podobnych parametrach cewki. Rozwiązań może być wiele w zależności co ten przekaźnik załącza. Czasem lepiej jest dać opto-triaka. Czasem podeprzeć się drugim większym przekaźnikiem. Ogólnie im obciążenia są bardziej indukcyjne i prądy większe oraz zwiększa się częstośc załączeń (decyduje o tym układ sterownia!)tym trwałość przekaźnika szybciej spada.

  • #26 08 Sty 2015 13:49
    tplewa
    Poziom 37  

    Co do diagnozowania problemow to tutaj raczej nie bedzie problemow, na plytkach ktore mialem po prostu nie zalacza stykow... pomaga pukniecie w przekaznik ;) Do tego jest to objaw staly... na poczatku od czasu do czau byl problem potem to juz jest nagminne.

    Co ciekawe przekaznik nie wykonywal jakiejs wielkiej ilosci cykli wlacz/wylacz... Do tego nie padly wszystkie przakazniki na jednym module problem byl z 1 szt. i na drugim 2 szt. - reszta nie wykazywala takich objawow.

    W sumie moze jak znajde czas by gdzies w ustronnym miejscu je odpalic to zrobie test z zliczaniem ilosci cykli wlacz wylacz (ile wytrzyma reszta). Na razie sobie to odpuszczam bo odpalenie czegos takiego w pokoju czy mieszkaniu chyba by mnie do obledu doprowadzilo (ze wzgledu na odglos zalaczania/wylaczania).

    Zreszta jak widac nie jest to jakis wielki problem bo przekazniki mozna wymienic, a cena modulow mowi sama za siebie - wiec nie ma co marudzic, to nie jest sprzet do zastosowan przemyslowych - ot raczej dla amatorow do prototypowania...

  • #28 08 Sty 2015 14:21
    abwg
    Poziom 13  

    jack63 napisał:
    Chodzi o to żeby elementy wykonawcze nie były tylko "niewolnikami" sterownika, ale aby były troszkę niezależne.

    Rozumiem, ale nie wydaje mi się że implementacja dodatkowego rozwiązania nie powinna już być przedmiotem tego projektu. Na problemy z napięciem zastosowałem zasilacz awaryjny z możliwością soft-off. Mówisz o pompie że się nie uruchomi. Nie uruchomi się też, gdy się wypracuje. Zawsze można wpiąć równolegle dwie pompy itd. ... można tak bez końca.
    Gdy przekaźnik nie zadziała, czyli pompa się nie włączy i woda osiągnie jakiś poziom ustalony, uruchamia się alarm optyczny, może dźwiękowy (nie mam na razie, ale żaden problem) i można dodatkowo na maila czy sms.
    jack63 napisał:
    abwg napisał:
    Czy są jakieś markowe przekaźniki które byłyby zamiennikiem dla tych w module z cewką 5V? Najlepiej tak żeby pasowały nóżkami.


    Jednak poszukiwania mogą być żmudne i długotrwałe. Przechodziłem ta "chorobę" kilka razy i nie dam się nią zarazić ponownie.

    Akurat były krótkie i chyba trafione.

    Dodano po 2 [minuty]:

    jack63 napisał:
    Pewnie to te same przekaźniki miniaturowe stosowane w chińskich podróbach interfejsu do Opla, czyli OpCom'ie. Poszukaj tematów o tym interfejsie. Niekoniecznie na Elektrodzie, ale np. na PEBie.

    O czym piszesz, bo przekaźniki już 3 posty temu znalezione?

    Dodano po 5 [minuty]:

    Przez Was chyba się wkurzę zamówię kolejny moduł i przelutuję te przekaźniki na coś markowego ;)

    Dodano po 2 [minuty]:

    Test ilości załączeń można zrobić bardzo łatwo. Wystarczy podpiąć pod I/O przekaźnika GPIO skonfigurowany jako INPUT. Czyli przekaźnik włączony -> daje sygnał INPUT na GPIO. Przekaźnik załączony -> nie ma INPUT to podanie numeru iteracji czasu testu i wyjście z pętli :)

  • #29 08 Sty 2015 14:28
    jack63
    Poziom 41  

    abwg napisał:
    O czym piszesz, bo przekaźniki już 3 posty temu znalezione?

    No to jesteś szybki i skuteczny, bo znalazłeś zamienniki w czasie gdy pisałem swojego posta i nie zauważyłem edycji Twojego. Także ten problem jest rozwiązany.

  • #30 08 Sty 2015 14:34
    k750i
    Poziom 17  

    Fajnym Zabezpieczeniem jest zastosowanie wyłącznika termicznego na temperaturę np. 70st. w szereg z wentylatorem. Jak temperatura wzrośnie powyżej np. 70st bo np. zawiesi sie przekaźnik od dmuchawy to ten wyłącznik sie rozłączy i odetnie zasilanie dmuchawy. Po opadnięciu temperatury wraca do stanu przewodzenia

    szukać pod nazwą
    Wyłącznik termiczny 10A 250V 70C zamknięty

    Pozdrawiam