niedziela, 30 marca 2014

Inteligentny dom sterowany za pomocą arduino - koncept

Przy okazji budowy domu zaplanowałem sobie kilka elementów, którymi można będzie sterować zdalnie - w dowolny sposób - telefonem, z przeglądarki, pilotem...

Dedykowane rozwiązania tego typu są strasznie kosztowne. Na szczęście na etapie budowy można położyć odpowiednie kable samemu a do sterowania wykorzystać chociażby Arduino.

Ja zaplanowałem głównie sterowanie oświetleniem. Dodatkowo będę mógł jeszcze sterować bramą garażową, bramą od ogrodzenia, elektrozaworem od nawadniania ogrodu i domofonem.

Zależało mi aby instalacja elektryczna w budynku była  standardowa - tak aby w przypadku większej awarii mikrokontrolera można było w prosty sposób wrócić do korzystania z niej w tradycyjny  sposób.

Wybrałem następujące rozwiązanie:
Do każdej puszki w ścianie w której będzie przełącznik od oświetlenia którym chcę sterować poprowadziłem dodatkową skrętkę. Wygląda to mniej więcej tak:

Do tak przygotowanej puszki można:
1.  podłączyć zwykły przełącznik - a tym samym korzystać z instalacji tradycyjnie
2. to co nas bardziej interesuje: 

umieścić w puszce przekaźnik, na przykład taki:

Przekaźnik musi być jak najmniejszy tak aby zmieścił się w puszce za przełącznikiem.
Taki przekaźnik można obciążyć prądem o maksymalnym natężeniu 10A, ale do większości zastosowań jest to w zupełności wystarczające.
Przewody (faza i zero), które normalnie podłączone są do przełącznika podłączamy do wyjścia przekaźnika, ponieważ to on będzie odpowiadał za zamykanie i rozłączanie obwodu.
Zwykły przełącznik musimy zamienić na przełącznik dzwonkowy (bezstanowy), ponieważ światło będziemy załączać chwilowym impulsem wysyłanym do mikrokontrolera. To Arduino będzie pamiętało aktualny stan żarówki (włączona/wyłączona) i w razie potrzeby będzie wysyłało sygnał załączenia/wyłączenia do przekaźnika.
Do sterowania całym obwodem wykorzystamy 5 żył z naszej skrętki:

Do przekaźnika:
 +5V
GND
Sygnał

Do przełącznika dzwonkowego:
+5V
Sygnał

Jeśli jest taka potrzeba napięcie +5V można puścić jedną żyłą i  rozdzielić je już w puszce na przekaźnik i przełącznik (daje nam to oszczędność jednej żyły), ale to dodatkowe kombinowanie w i tak już ciasnej puszce, więc wygodniejsze jest wykorzystanie dwóch przewodów z napięciem.

Cały schemat połączenia dla jednego przekaźnika i jednego przełącznika wygląda następująco:

Oczywiście podłączenie żarówki przedstawione jest w sposób poglądowy.

Każde dodatkowe urządzenie którym chcemy sterować należy podłączyć w sposób analogiczny.
Jak widać ze schematu jedno połączenie zajmuje dwa cyfrowe piny Arduino. Dlatego zdecydowałem się na wykorzystanie Arduino Mega (a dokładnie jego klona). Dzięki temu powinno się udać obsłużyć wszystkie urządzenia którymi zamierzam sterować za pomocą jednego Arduino.

Arduino zostanie umieszczone w szafce Rack znajdującej się w garażu. Tam zbiegają się wszystkie przewody.
Na razie wygląda to tak :)


Jak łatwo sobie wyobrazić podłączanie przełączników i przekaźników bezpośrednio do Arduino spowoduje dużą plątaninę przewodów. Dodatkowo będzie bardzo podatne na przypadkowe rozłączenia. Ewentualna wymiana uszkodzonego mikrokontrolera byłaby również bardzo kłopotliwa. Moja propozycja rozwiązania tego problemu oraz oprogramowanie dla arduino pojawią się w jednym z kolejnych wpisów.

Do kontroli stanu przekaźników z poziomu telefonu, tabletu  i przeglądarki wykorzystam OpenHab (http://www.openhab.org/) - świetne rozwiązanie na licencji OpeSource napisane w Javie.
Przetarłem już pierwsze ścieżki, więc o tym również będzie w kolejnych wpisach :)



22 komentarze:

  1. Mam podobną wizję okablowania domu, nie wybrałem jeszcze idealnego rozwiązania. To co Pan przedstawił jest w porządku, ale nie ma typowego 'ręcznego' sterowania tą żarówką... Co jeśli nagle arduino padnie ? - trzeba będzie grzebać w puszkach... Druga sprawa, to pytanie czy nie ma problemu z wysyłaniem sygnału/napięcia po skrętce na te kilka/kilkanaście metrów? No i czy umieszczając skrętkę 'tak blisko' przewodów z napięciem nie obawia się Pan zakłóceń?

    OdpowiedzUsuń
  2. Szukałem w sieci podobnych rozwiązań i podobno się sprawdzają. A jak to będzie, to zobaczymy w praktyce. Chwila uruchomienia zbliża się nieuchronnie :) Na pewno opiszę rezultat. Co do padu Arduino to oczywiście w takim przypadku pozostaje jedynie grzebanie w puszkach. Na pewno będę trzymał rezerwowy sterownik pod ręką... Zobaczymy jak to wyjdzie

    OdpowiedzUsuń
  3. Mam pytanie gdzie moge dostać taka plytke pod przekaźnik jak widac na zdjeciu?

    OdpowiedzUsuń
    Odpowiedzi
    1. Ja kupowałem tu: http://www.aliexpress.com/wholesale?SearchText=relay&catId=0&initiative_id=SB_20141001222716

      Usuń
    2. Ten komentarz został usunięty przez autora.

      Usuń
  4. Czy są już jakieś efekty tej instalacji do pokazania? Bardzo zaintrygowałeś mnie takim sposobem wykonania inteligentnej instalacji :)
    Jak zakończyłeś kable? Na patchpanelu LANowym?

    OdpowiedzUsuń
    Odpowiedzi
    1. Są, widać je w kolejnych wpisach :)

      Usuń
    2. Gdzie te kolejne wpisy bo nie mogę znaleźć ;)

      Usuń
  5. Cześć, patrząc po dacie zamieszczenie Twojego wpisu już dobrze ponad rok jak instalacja pracuje u Ciebie w domu. Czy mógłbyś podzielić się krótkim komentarzem jak się ona sprawuje? Czy gdybyś teraz ją robił, coś byś zmienił? Ja pewnie za jakiś miesiąc będę prowadził instalację elektr, i też chciałem poprowadzić przewody do późniejszego wykorzystania jako sterujące i pewnie zrobię dokładnie tak jak Ty opisałeś, chyba że mógłbyś coś doradzić co warto byłoby zmienić. Btw, dobrze kojarzę że pracowałeś w Decerto?
    Pozdrawiam
    Paweł

    OdpowiedzUsuń
    Odpowiedzi
    1. Cześć.
      faktycznie pracowałem w Decerto :)
      Jeśli chodzi o instalację myślę że można powiedzieć że działa dobrze i w miarę stabilnie.
      Miałem kilka problemów...
      Jeden z nich to taki, że przy dużych gwałtownych skokach napięcia (włączenie bramy garażowej, bramy wjazdowej, jakiejś piły... generalnie urządzeń dużej mocy zdarzały się przypadki samoczynnego załączania niektórych świateł. Udało się to praktycznie wyeliminować przez dodanie dodatkowego stabilizatora napięcia do zasilania przekaźników.

      Drugi problem jest taki że po zaniku napięcia ethernet shield w arduino ma czasami problemy z uruchomieniem się. Być może to wina mojego arduino, może shielda (to jakieś chińskie klony), ale takie przypadki się zdarzają. Na szczęście to bardzo rzadkie przypadki i wystarczy zwykły reset arduino, więc nie jest to uciążliwe.

      Co bym zmienił...
      Zastanawiam się nad usunięciem arduino i oparciem wszystkiego wyłącznie na raspberry PI, ale to ma wady i zalety. Z jednej strony uprości się architektura (zniknie mqtt, dodatkowe urządzenie itd), ale RPI ma dużo mniejszą liczbę PIN'ów GPIO więc trzeba by to rozszerzyć dodatkowymi shieldami... Dlatego waham się czy gra jest warta świeczki biorąc pod uwagę że generalnie rzecz biorąc wszystko działa poprawnie.
      Ostatnio podłączyłem również czujniki temperatury do całego układu, odpaliłem w OpenHab, wszystko fajnie działa, wyniki odkładają się do bazy można rysować wykresy. Generalnie fajna zabawa, tylko czasu mało ;)

      Usuń
  6. Taaa z tym czasem to coś o tym wiem ;) dzięki serdeczne za odpowiedź i rady, uwzględnię je budując instalację. Pozdrawiam-Paweł.

    OdpowiedzUsuń
  7. Cześć
    Temat był poruszany dosyć dawno, ale jeśli zagląda jeszcze tu ktoś, kto mógłby doradzić w kwestii ułożenia okablowania pod instalację opartą o openhab będę bardzo wdzięczny. Może nawet jeszcze sam autor bloga po czasie ma dodatkowe przemyślenia na ten temat i chciałby się nimi podzielić.
    Z góry dzięki za odzew.

    OdpowiedzUsuń
  8. Siema czy mógłbyś dokładniej opisać jak podłączyć przekaźnik do puszki?

    OdpowiedzUsuń
  9. Cześć kolego sorry, że po takim czasie odpisuje, ale miałem masę pracy. Opiszę Ci pokrótce mój problem, a więc:
    Mam na suficie 8 punktów świetlnych, założenie:
    - system oparty o Raspberry
    - sterowanie za pomocą kontaktu dwu-przyciskowego oraz stronki
    - mają być niezależne od siebie gdy są sterowane za pomocą stronki, a gdy dochodzi do sterowania za pomocą kontaktu dwu-przyciskowego to przy przyciśnięciu jednego przycisku załącza się sekcja 4 punktów przy przyciśnięciu drugiego następna sekcja 4 punktów.

    W necie wypatrzyłem 8-kanałowy moduł przekaźnikowy RM10 5V z izolacją optoelektroniczną. Ten przekaźnik chciałem wcisnąć w ścianę przy włączniku światła, do każdego kanału chciałem podłączyć po jednym punkcie świetlnym (8 kanałów 8 punktów) ale teraz nie wiem co z włącznikiem? Ponadto chciałbym się dowiedzieć jakich kabli użyć aby podłączyć przekaźnik oddalony od centralki Raspberry o ok 2m. Czy mógłbyś mi podpowiedzieć co nie co w tej sprawie?? Zastanawiałem się też nad sterowaniem kontaktami, a więc pewnie jakiś ekspander musiał bym mieć aby zwiększyć ilość pinów, ale to dalszy temat na razie oświetlenie. Pozdrawiam! Dzięki za pomoc!

    OdpowiedzUsuń
    Odpowiedzi
    1. ale skoro masz mieć dwie sekcje po 4 punkty, to nie potrzebujesz 8-kanałowego modułu, tylko 2-kanałowego, a tu już temat staje się dużo prostszy.
      Przykładowo - możesz wrzucić coś takiego:
      https://www.aliexpress.com/item/XD-69-2-channel-5v-low-level-solid-state-relay-module-With-solid-state-relay-fuse/32295721778.html

      tylko to obsługuje prąd do 2A - więc zależy jakie żarówki wrzucisz.
      między przekaźnikiem a raspberry jest u mnie napięcie 5V, więc ja tam mam skrętkę i to zupełnie wystarczy. Pin'ów więcej też nie potrzebujesz. sterujesz 2-ma sekcjami, nie 8-ma, więc generalnie potrzebujesz 4 żyły: +5V, GND, sygnał do 1 sekcji, sygnał do 2 sekcji

      Usuń
    2. Chciałem w oprogramowaniu stworzyć tryby świecenia. Przykładowo wciskając tryb czytania zapalają Ci się tylko dwa punkty świetlne nad głową, a reszta jest wyłączona, itp. Czy przy takim połączeniu będzie to możliwe? Kontakt również musi być podłączony pod przekaźnik ?

      Usuń
    3. Kontakt musisz podpiąć pod raspberry, nie pod przekaźnik.

      Jeśli chcesz sterować każdą żarówką osobno, to jednak potrzebujesz 8 przekaźników. Nie ma jednoznacznej odpowiedzi jak to zrobić najlepiej. Generalnie przekaźniki podłączasz do instalacji 220V i do sterownika, więc musisz znaleźć miejsce aby umieścić je tam, gdzie jesteś w stanie doprowadzić przewody 220V od wszystkich 8 żarówek i dodatkowo przewody od sterownika (rpi) No i w tym przypadku faktycznie skrętka Ci nie wystarczy do poprowadzenia wszystkich przewodów sterujących. Przy tak rozdrobnionym podejściu chyba bym się już poważnie zastanowił nad jakimiś kontrolerami sterowanymi przez wifi które wpinasz po prostu przed żarówkę (tylko one też mają kilka cm, więc dobrze byłoby żeby była jakaś zabudowa gdzie można je ukryć)

      Usuń
    4. Masz jakiś konkretny kontroler wifi na myśli?

      Usuń
    5. przykładowo taki:
      https://www.aliexpress.com/item/New-Sonoff-Smart-Remote-Control-Wireless-Switch-Module-Modified-Low-cost-Update-Smart-Home-Solution-with/32779350846.html?ws_ab_test=searchweb0_0,searchweb201602_4_10065_10068_10000032_119_10000025_10000029_430_10000028_10060_10062_10056_10055_10054_10059_10099_10000022_10000012_10103_10000015_10102_10096_10000018_10000019_10052_10053_10107_10050_10106_10051_10000007_10084_10083_10118_10119_10080_10082_10081_10110_10111_10112_10113_10114_10115_10116_10037_10033_10032_10000041_10000044_10078_10079_10077_10000038_429_10073_10000035_10120_10121-10050_10116_10120,searchweb201603_3,afswitch_1_afChannel,single_sort_2_default&btsid=2d8a56cd-22bd-43b9-9bff-a5c5be125314

      tylko z tego co czytałem żeby się do nich dobrać z raspberry trzeba je przeprogramować, ale nigdy tego nie robiłem

      Usuń
    6. Wyobraź sobie, że masz kabel od halogena led w ręce i skręcasz go z innym tym samym kablem tak aby po jego wpięciu w przekaźnik, ten skręcony kabel wyszedł po za obręb przekaźnika z każdym następnym robisz to samo te kable które masz łączysz w sekcje 1-4 pierwsza sekcja podłączasz pod pierwszy przycisk kontaktu i 5-8 druga sekcja pod drugi przycisk konaktu ? Czy coś takiego miało by prawo bycia i życia?

      Usuń
  10. Witam, potrzebuje pomocy jak zrobić to sterowanie przekaźnika z włącznika.
    Jaka wartość tego opornika tam jest i jak skonfigurować w raspberry pi + domowicz.
    Póki co to działa mi przekaznik tylko właśnie brakuje mi włącznika dzwonkowego :)

    OdpowiedzUsuń