Podłączenie modułu przekaźnika w systemie Domoticz

wpis w: Domoticz | 54

W dzisiejszym wpisie opiszę jak podłączyć do Raspberry moduł przekaźnika do sterowania zasilaniem. Może on posłużyć do sterowania listwami, lampkami oraz praktycznie wszystkimi urządzeniami podłączanymi do prądu.

W moim przypadku będę chciał sterować zwykłą lampką nocną.

Sam moduł przekaźnika możemy kupić min. w sklepie Electropark.

Moduł 1-przekaźnika 5V
Moduł 1-przekaźnika 5V

Dane techniczne:

  • Liczba przekaźników: 1
  • Napięcie zasilania przekaźnika: 5V DC
  • Max. obciążenie styków przekaźnika:
    • 10A/230V AC
    • 10A/30V DC
  • Diody LED sygnalizujące stan załączenia przekaźnika
  • Dioda LED sygnalizująca zasilanie modułu
  • Wymiary: 43x24mm

W moim przykładzie zastosowałem moduł z jednym przekaźnikiem. Można zastosować moduły wieloprzekaźnikowe (największy jaki widziałem to 16). Dzięki takiemu przekaźnikowi będziecie mogli sterować aż 16 urządzeniami.

Moduł 16- przekaźników
Moduł 16- przekaźników

 

Schemat podłączenia przekaźnika do Raspberry Pi:

VCC – zasilanie 3V/5V w Raspberry Pi

GND – GND w Raspberry Pi

IN – dowolny Pin w Raspberry Pi

Na poniższym zdjęciu na dole przełącznika widać 3 śruby gdzie będziemy podłączać kable z Naszej nocnej lampki.

Będziemy podłączać dwa kable a miejsca są trzy…Dlaczego?

Na zdjęciu widać jakby dwa obwody (zamknięty po prawej i otwarty po lewej). Jeżeli chcemy by Nasza lampka była normalnie zapalona gdy włączymy Nasze Raspberry Pi podłączamy kable do otworu środkowego i do otworu z prawej strony (tam gdzie widać obwód zamknięty). W innym przypadku podłączamy jeden z kabli do otworu środkowego a drugi do otworu ze strony lewej.

Moduł przekaźnika
Moduł przekaźnika

 

Aby podłączyć Naszą nocną lampkę należy delikatnie naciąć izolację lampki w miejscu gdzie instalowany będzie Nasz przekaźnik. W izolacji standardowej lampki nocnej znajdować się będą 2 kable. Przecinamy jeden z nich i zarabiamy końcówki, które następnie podłączamy do Naszego przełącznika w sposób opisany powyżej. Na koniec podłączamy Naszą lampkę do prądu i włączamy Raspberry Pi. (żeby nie niszczyć kabla lampki można to samo zrobić np. z listwą antyprzepięciową lub zwykłym przedłużaczem).

Przedłużacz
Przedłużacz

 

Gdy wszystko mamy już podłączony logujemy się przez SSH do Naszego Raspberry.

Tworzymy nowy plik poprzez komendę:

  • sudo nano switchon.py

W Naszym nowym pliku wklejamy poniższy skrypt:

W miejscu XX wpisujemy nr PINu w Raspberry do jakiego podłączyliśmy Nasz przekaźnik.
Aby utworzyć plik który będzie wyłączał Nasz przekaźnik powtarzamy czynności tylko zmieniamy nazwę pliku na np. „switchoff.py” i w przedostatniej linijce Naszego skryptu wpisujemy cyfrę 0 zamiast 1.
Zapisujemy wszystko wciskając kombinację klawiszy ctrl+x.
Nadajemy plikom odpowiednie uprawnienia poprzez komendę:

  • sudo chmod +x switchon.py
  • sudo chmod +x switchoff.py

Sprawdzamy czy wszystko działa poprawnie poprzez wpisanie komend:

  • sudo python switchon.py
  • sudo python switchoff.py

Jeżeli wszystko działa poprawnie za pomocą tych dwóch komend powinniśmy sterować zasilaniem Naszej lampki. Jeżeli nie będzie żadnej reakcji sprawdźcie poprawność PINu GPIO (różne modele Raspberry mają różne numery).

Aby wszystko działało w Naszym systemie Domoticz musimy utworzyć wirtualny przełącznik (On/Off) o czym pisałem w poprzednich wpisach.

Gdy już mamy utworzony Nasz wirtualny przełącznik wchodzimy w zakładkę „Przełączniki” i wybieramy przycisk „Edycja”.

Jeżeli utworzyliśmy Nasze pliki w głównym katalogu Raspberry uzupełniamy pola „Włącz/Wyłącz akcję” jak na poniższym zdjęciu. Jeżeli utworzyliście pliki w innym miejscu należy podać dokładną lokalizację nowo utworzonych plików.

 

lampka

 

Naciskamy przycisk „Zapisz”.

Od tego momentu możemy sterować zasilaniem Naszej lampki bezpośrednio z systemu Domoticz.

54 Odpowiedzi

  1. hej
    napisz proszę jak dodać do tego jeszcze „włącznik impulsowy (dzwonkowy) zwykły push button”

    że jak go nacisnę raz to zapali lampkę jak drugi raz to zgasi

  2. Podpinam sie pod pytanie kolegi Jak dodac do tego jeszcze włącznik dzwonkowy??

  3. Łukasz Kostrzewa

    Witam Serdecznie

    Wydaje mi się, że należałoby między GND a PIN IN wpiąć tzw. Push Button (http://razzpisampler.oreilly.com/ch07.html). Na tej stronie też jest kod:

    import RPi.GPIO as GPIO
    import time
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(XX, GPIO.IN, pull_up_down=GPIO.PUD_UP)

    while True:
    input_state = GPIO.input(XX)
    if input_state == False:
    GPIO.output(XX,1)
    time.sleep(0.2)

    Nie będzie to jednak działało tak jak powinno bo przykładowa lampka będzie się świeciła tylko wtedy gdy przycisk będzie wciśnięty.

    Niestety nie znam się na programowaniu. Postaram się znaleźć jakieś rozwiązanie i dam znać.

    Pozdrawiam

  4. mi się udało
    należy podpiąć przełącznik do pinu ustawionego na in

    i w zdarzeniach zbudować takie
    https://goo.gl/photos/7pEwPf4YLu2unDJR8
    https://goo.gl/photos/8tJiBmX7K5mC8yVn7

  5. a czy mozna by poprosic jak wyglada kod do tego ?

    • Łukasz Kostrzewa

      Witam Serdecznie
      Jet we wpisie przecież:

      #!/usr/bin/python
       
      import RPi.GPIO as GPIO
      GPIO.setmode(GPIO.BOARD)
      GPIO.setup(XX, GPIO.OUT)
      GPIO.output(XX,1)
      GPIO.cleanup()

      Pozdrawiam i życzę powodzenia

  6. pomocy… zrobiłem zgodnie z tym artykułem i utknąłem. po komendzie sudo python switchon.py nic się nie dzieje. zmieniałem piny, kombinowałem i jak wpisywałem błędne piny to dostawałem o tym informacje. wszystko sprawdziłem i wygląda na to, że jest niby ok w kwestii podłączenia. Wszystko jednak robiłem zgodnie z tym artykułem i nie sprawdzałem poprzednich artykułów. czy muszę zainstalować jakieś dodatki, biblioteki etc. do tego? nie istalowałem nic do obsługi gpio itp

    • Łukasz Kostrzewa

      Witam Serdecznie

      Hmmm… a co się Panu wyświetla jak odpala Pan switchon.py? Wyskakuje jakiś błąd?
      Może warto zainstalować WiringPi:
      1. sudo apt-get install git-core
      2. sudo apt-get update
      3. sudo apt-get upgrade
      4. git clone git://git.drogon.net/wiringPi
      5. cd ~/wiringPi
      6. git pull origin
      7. ./build

      Proszę spróbować wpisać te komendy i sprawdzić raz jeszcze.
      PRoszę się również upewnić, że wpisał Pan poprawny numer Pinu – tu jest opisane czym różni się GPIO.BOARD i GPIO.BCM (https://raspberrypi.stackexchange.com/questions/12966/what-is-the-difference-between-board-and-bcm-for-gpio-pin-numbering)

      Może Pan w konsoli po zainstalowaniu wiringPi wpisać:
      gpio readall – tam będzie Pan widział dokładny rozkład Pinów w Pana raspberry.

      Powodzenia i proszę dać znać czy się udało

  7. Witam, mam problem napisałem pliki switchon.py i switchoff.py i wszystko działa z poziomu wiersza poleceń po wpisaniu sudo python switchon.py wystawia mi 1 na porcie a po wpisaniu sudo python switchoff.py wystawia 0. Sprawdzam komendą Gpio readall. Niestety po wytworzeniu przełącznika jak w opisie teoretycznie wszystko z poziomu Domoticza jest poprawnie ale nie ma reakcji, nie zmienia wartości. Może jeszcze coś trzeba skonfigurować aby Domoticz działał? Mam podłączone czujniki DS18B20 i temperaturę w domoticzu widzi mi poprawnie. Prośba o sugestie co może być nie tak?

    • Łukasz Kostrzewa

      Witam Serdecznie
      A ma Pan wpisaną odpowiednią ścieżkę do pliku w Edycji Przełącznika w Domoticz?
      U mnie to script:///home/pi/switchon.py ale u Pana może być inna. Ma Pan ten plik w głównym katalogu raspberry czy może w jakimś innym?
      Proszę to sprawdzić.
      Pozdrawiam

      • Tak ścieżka jest odpowiednia pliki są w katalogu /home/pi.

        • Łukasz Kostrzewa

          Niestety nie mam pomysłu co może być przyczyną?
          Rozumiem, że nadał Pan uprawnienia poprzez sudo chmod +x ?
          Po wpisaniu sudo python switchon.py wyświetla się jakiś komunikat (błąd)?
          Pozdrawiam

          • Tomek

            Odpowiadając na pytanie uprawnienia były nadane. Po wydaniu komendy sudo python switchon.py nie wyświetlał komunikatów ale wsytawiał 1 na wyjście sprawdzałem komendą Gpio readall. Zainstalowałem od nowa raspbiana w wersji lite i zrobiłem wszystko po koleji jak Pan napisał i zadziałało :-). Wcześniej miałem wersję desktop i może w tym był jakiś problem.
            P.s.
            W poradzie dotyczącej instalacji warto by było dopisać aby na karcie SD tworzyć katalog SSD bo bez tego nie da się połączyć z zewnątrz poprzez terminal – jest to opisane w komentarzach do tej instrukcji.

          • Łukasz Kostrzewa

            Witam Serdecznie

            Super, że się udało.

            Jeżeli chodzi o utworzenie katalogu SSD…rozumiem, że chodziło o SSH?
            I faktycznie w nowym systemie jest to wymagane. Musiałem tak zrobić aby uruchomić Raspberry Pi Zero W.
            Jak ja rok temu zabierałem się za instalację Domoticza na raspberry taka procedura nie była wymagana.
            W wolnej chwili postaram się dopisać tą informację w odpowiednim poście.
            Pozdrawiam

          • Oczywiście SSH. Pozdrawiam

  8. Uruchamianie z poziomu terminala działa. Niestety poprzez Domoticz już nie – pojawia się infomracja zwrotna: błąd podczas wysyłania komendy do przełącznika. Sprawdź sprzęt/urządzenie. Jakieś pomysły? Używam RPi 3 jakby co.

    • Agnieszka Kostrzewa

      Witam
      To pewnie jest zla sciezka do pliku w ustawieniach przelacznika w Domoticz. Innej opcji nie widze.
      Pozdrawiam

      • Niestety nie ma takiej opcji.
        Sam celowo wpisałem błędny adres żeby zobaczyć info zwrotne. Jest dokładnie takie samo. Lokalizacje kopiuje…
        script:///home/pi/domoticz/scripts/switchongate.py.

        Korzystam z PIR bazujacego na instrukcji z tej strony oraz czujnika temperatury i te rzeczy działają bez problemu a tego już nie wiem jak ugryźć :-/

        • Agnieszka Kostrzewa

          Rozumiem ze po switchongate.py nie ma kropki tak jak w powyzszym komentarzu?
          Skrypt na bank dziala z terminalu? A IDX na pewno odpowiada temu przelacznikowi? Jezeli tak to nie mam pomysłu 🙁

          • Oczywiście nie ma tej kropki – po prostu koniec zdania 🙂
            Przez terminal działa na bank, bo przekaźnik reaguje. W jakim sensie czy IDX odpowiada? Jak wybieram rodzaj przełącznika to wybieram nazwę maszyny, której pomylić nie mogłem. Ogólnie mam nowszą wersję domoticz i musiałem coś wybrać w opcji typ gdzie zaznaczyłem „impiulse” (nie mylić z typ przełącznika, bo tam jest „on/off”. Typ „impulse” mam również wybrane dla PIR.

          • Agnieszka Kostrzewa

            Przepraszam. Skrypty mi sie pomylily. Tu nie ma IDX… Moj błąd 🙂 hmmm… Na mam stara wersje i nie mam impiulse… A nie ma w wyborze przelacznika po prostu ON/OFF? Mysle ze byc powinien. Pozdrawiam

        • Tak w ogóle to na początku kod też mi nie dział. Musiałem w linii:

          GPIO.output(XX,1)

          dodać spacje po przecinku.

          • Agnieszka Kostrzewa

            A proszę ewentualnie spróbować utworzyć jeszcze jeden plik o nazwie np. switchongate.sh i wpisać:

            #!/bin/sh

            cd /
            cd home/pi/domoticz/scripts
            sudo python switchongate.py
            cd /

            Nadać mu uprawnienia przez sudo chmod +x switchongate.sh
            A w przełączniku dać odnośnik do pliku switchongate.sh
            Coś mi się przypomina, że też mi w Pythonie nie chciał działać skrypt wywoływany z Domoticz.
            Proszę dać znać czy to coś pomogło
            Pozdrawiam

          • Polecenie nie pomogło. Stworzyłem jeszcze raz włącznik. Tam był chyba faktycznie błąd. Miałem jeszcze jeden dziwny problem. Po stworzeniu nowe włącznika i wciśnieciu go komenda została wysłana do RPi (żarząca dioda sygnalizująca stan przekźnika zgasła) ale nie mogłem zmieniać stanów poru. Reset urządzenia i to samo. Z poziomu terminala stany się zmieniają. Usunąłem ze skryptu „…on…” ostatnią linię: GPIO.cleanup() i zaczęło wszystko działać. W skrypcie „…off…” ta linia została.

          • Tak w ogóle dziękuję za pomoc. Stronka jest naprawdę fajna. Wczoraj zrobiłem: sterowanie bramą wjazdową, elektrozaczepem furtki, czujnik ruchu i pomiar temperatury 🙂 Jestem w trakcie wykrywania telefonów i na pewno jeszcze będę wrzucał kamerkę 🙂
            Dzięki 🙂

          • Agnieszka Kostrzewa

            Super ze sie udalo z tym modulem przekaznika. Jak juz kiedys pisalem Domiticz sprawia u kszdego inne problemy i trzeba troche samemu kombinować. Jezeli chodzi o wykrywanie urzadzen to niestety nie mam pojecia… U mnie wszystko dziala. Tu jest oficjalny poradnik: https://www.domoticz.com/wiki/Presence_detection

  9. Witam zrobiłem wszystko po kolei i nie działa mi przekaznik po wpisaniu:
    sudo python switchon.py
    sudo python switchoff.py

    Nie działa i błędu nie wywala zrobić chciałem na pinie GPIO 26 w raspberry pi 3 jakiś pomysł ?

    • Łukasz Kostrzewa

      Witam
      A przekaźnik podwójny czy pojedynczy? Ja z podwójnymi mam problemy. Działa tylko jeden. One są niby dostosowane do napięcia z Arduino w większości i mogą występować problemy.
      Z pojedynczymi jednak problemu nie miałem. Na pewno wpisuje Pan poprawny Pin GPIO? Ten skrypt jest mega prosty…to chyba jedyna przyczyna jaka może wystąpić. W innym przypadku powinien wyskoczyć jakiś błąd.
      Pozdrawiam

      • No właśnie jest prosty ale po sprawdzeniu pinu za pomocą komendy nie załącza go chyba ze coś źle z tym pinem może pan podać skrypt do wklejenia i podania pod który pin wpiąć przekaznik ?
        Może w tedy zadziała 🙂

      • Ok pin dobry mam 26 tylko wywala mi
        [email protected]:/home $ sudo python lighton.py
        Traceback (most recent call last):
        File „lighton.py”, line 1, in
        import RPi.GPIO as GPIO

        • Agnieszka Kostrzewa

          Dzuwne bo tu bledu nie ma… Hmmm. Przepisywal Pan kod czy wkleil ze strony? Czesto przy wklejaniu jest blad kodowania znakow ale powinien sygnalizowac to inaczej.
          Prosze wpisac gpio readall i sprawdzic czy w ogole czyta gpio. Kurcze… Dziwne

          • Zna pan program timviwer ?
            to by się pan połączył i sprawdził może coś nie tak robię.

          • Agnieszka Kostrzewa

            Znam ale niech Pan jeszcze poprobuje. Moze inny pin w raspberry prosze sprawdzic

  10. #!/usr/bin/python

    import RPi.GPIO as GPIO
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(26, GPIO.OUT)
    GPIO.output(26, 1)
    GPIO.cleanup()

    to wkleiłem do załączania potem zapisałem i uprawnienia nadałem.
    Wpinam przekaznik do pinu 26 i nie załącza się ;(

  11. WiringPi juz zainstalowane mam od początku 🙂

  12. Po wpisaniu gpio readall pokazuje mi te piny, próbowałem na innym i tez nie działa.
    Jak wpisze pigs w 26 1 to w tedy załącza m przekaznik czyli dobrze podpięty mam a jak wpisze pigs w 18 0 to wyłącza go.

    • Agnieszka Kostrzewa

      Witam. Powiem szczerze ze nie rozumuem… Jakie pigs? Czenu raz 26 a raz 18? Skoro zalacza i wylacza to chyba dobrze?

      • Jak wpisze w ssh Jak wpisze pigs w 26 1 to zalaczyl mi przekaznik (26) to pin raspberry pi 3.
        A jak dam polecenie w ssh Jak wpisze pigs w 26 0 to wyłączy.
        Czyli pin dobry mam lecz po wklejeniu skryptu od pana i wpisaniu w XX nr pinu 27 nie działa.

        • Agnieszka Kostrzewa

          Dalej nie rozumuem co oznavza polecenie pigs ale…
          Prosze usunac ostatnia linijke ze skryptu.

          Ewentualnie prosze utworzyc plik przez sudo nano test.sh i wpisac w nim:
          sudo gpio mode 26 out
          sudo gpio write 26 1
          Zapisac i nadać uprawnienia lrzez sudo chmod +x
          I stworzyc drugi plik tylko zamiast :
          sudo gpio write 26 1 wpisac sudo gpio write 26 0
          Prosze dac znac czy sie udalo

  13. Nie działa.

    Chodzi mi o to że sterowanie pinami przez wiersz poleceń działa według tego opisu.

    https://www.dobreprogramy.pl/cyryllo/Raspberry-Pi-od-Zera-do-2-sterujemy-GPIO-z-linii-polecen,68696.html

    Nie może się pan połączyć przez timviwer by posprawdzał pan ?

    • Agnieszka Kostrzewa

      Witam
      Tak samo powinno dzialac wg tego co napisalem w ostatnim komentarzu ale…
      Niech Pan stworzy plik test.sh a w nim wpisze te sudo pigs 26 1 (czy jak to dokładnie Pan wpisywal i dzialalo)
      A w drugim sudo pigs 26 0 i tyle.
      Musi dzialac

  14. Nie działa.
    Teraz po wpisaniu
    sudo python switchon.py
    sudo python switchoff.py
    błędu nie wywala ale przekaznik nie załącza się

    • Agnieszka Kostrzewa

      Mial Pan zrobic plik .sh a nie .py. A uruchamia sie go poprzez ./test.sh

    • Agnieszka Kostrzewa

      Jak nie bedzie dzialac to nie mam juz pomyslu:( Przepraszam

      • ok udało się
        po wpisaniu komendy
        ./test.sh przekaznik się włącza
        ./testoff.sh przekaznik gasnie

        Jak to teraz zrobić w domoticz 😉

        • Agnieszka Kostrzewa

          Witam
          Przeciez opisane jest w poscie. Nalezy dodać nowy wirtualny przelacznik i w jego konfiguracji w opcji akcja wlaczenia wpisac adres do test.sh i wylaczenua do testoff.sh

  15. Smiga aż miło dziękuje bardzo za wsparcie i pomoc 😉
    A robił już Pan czujnik zalania na arduino mega ?

    • Agnieszka Kostrzewa

      Nie ma sprawy:) niestety nie mam doswiadczen aninz arduino mega ani z czujnikiem zalania. Wydaje mi sie ze czujnik zalania id Fibaro jest relatywnie tani a bezobslugowy

      • aha jezeli chce pan sterowanie z arduino mega to mam zrobione + domoticz arduino zapamiętuje stan przekaznika po restarcie z prądu 😉
        na 1 arduino można zrobić:
        25 przekazników + 25 przycisków dzwonkowych na impuls. + 7 przekazników bez przycisków sterowane z domoticz 😉

        • Agnieszka Kostrzewa

          Poki co mam już wszystko co chcialem ale jak bede chcial cos rozbudować to będę pamietal

          • ok a mam jeszcze pytanie jak zrobić żeby przekaznik się włączał po włączeniu radia ?
            Bo narazie udało mi się zrobić przez zdarzenia że jak dam radio off to gaśnie przekaznik gorzej z włączeniem pasowało by tak zrobić że jak włączę stacje FM to załączy się.

          • Agnieszka Kostrzewa

            Mozna zrobic oddzielny przycisk wlaczenia radia (w poscie od radia jest komenda do wyłączenia radia) i utworzyc Zdarzenia Jezeli radio on to wlacz przelacznik…

Zostaw Komentarz

*