Podłączenia Sensora ruchu PIR HC – RC 501 do Raspberry pi w systemie Domoticz.

wpis w: Domoticz | 23

W dniu dzisiejszym dowiemy się jak podłączyć do raspberry p i skonfigurować w systemie Domoticz jeden z najbardziej przydatnych czujników – Moduł czujnika ruchu PIR HC-SR501.

 

Czujnik ruchi PIR HC-SR501
Czujnik ruchi PIR HC-SR501

 

Podłączenie:

  • VCC czujnika podłączamy do zasilania 5V Raspberry Pi (może być także 3.3V)
  • OUT czujnika podłączamy do jakiegoś wolnego pinu (w moim przypadku GPIO 8 – PIN 24)
  • GND czujnika podłączamy do GND Raspberry (np. w zależności od wersji Raspberry – PIN 25)
Czujnik ruchu PIR HC-SR501 - Wyjścia
Czujnik ruchu PIR HC-SR501 – Wyjścia

 

Poniżej przedstawiam schemat podłączenia do Raspberry Pi B

 

Schemat podłączenia PIR do Raspberry pi B
Schemat podłączenia czujnika PIR HC-RC501 do Raspberry pi B

 

Po prawidłowym podłączeniu sensora ruchu podłączamy nasze Raspberry do zasilania i logujemy się do systemu Domoticz poprzez wpisanie w polu adresu przeglądarki odpowiedniego IP.

Następnie przechodzimy do Konfiguracja/Sprzęt i dodajemy Nasze nowe urządzenie (będzie to wirtualny przycisk).

Robimy to poprzez wybranie opcji Dummy (Does nothing, use for virtual switches only) w Polu TYP.

W polu nazwa wpisujemy np. PIR (może być cokolwiek) i dodajemy Nasz nowy przycisk

Nasz przycisk powinien pojawić się w tabeli powyżej gdzie naciskamy (Utwórz wirtualne czujniki).

 

Dodawanie wirtualnego przycisku w systemie Domoticz
Dodawanie wirtualnego przycisku w systemie Domoticz

 

W polu Nazwa wpisujemy odpowiadającą Nam nazwę, np. PIR a w polu Typ czujnika wybieramy – Przełącznik.

 

Dodawanie wirtualnego czujnika w systemie Domoticz
Dodawanie wirtualnego przycisku w systemie Domoticz

 

Następnie przechodzimy do zakładki Konfiguracja/Urządzenia i zapamiętujemy IDX Naszego nowo utworzonego przełącznika.

 

Dodawanie wirtualnego przełącznika do systemu Domoticz
Dodawanie wirtualnego przycisku w systemie Domoticz

 

Kolejnym krokiem jest wybranie zakładki PRZEŁĄCZNIKI z górnej belki i naciśnięcie przycisku EDYCJA znajdującego się pod wizerunkiem Naszego nowo utworzonego przełącznika a tam już tylko w polu TYP PRZEŁĄCZNIKA wybieramy „Motion Sensor” i zatwierdzamy przyciskiem „Zapisz”

 

Dodawanie wirtualnego przyciusku w systemie Domoticz
Dodawanie wirtualnego przycisku w systemie Domoticz

 

W ten oto sposób utworzyliśmy wirtualny przycisk w systemie Domoticz. Będzie to najczęściej tworzony przez Nas przycisk w procesie dodawania wszelkich urządzeń.

Aby Nasz czujnik działał w systemie Domoticz należy jeszcze napisać krótki program w Pythonie.

Aby to zrobić logujemy się do Naszej Maliny przez SSH.

Po zalogowaniu przechodzimy najlepiej do katalogu Domoticz/Scripts przez komendę:

  • cd domoticz/scripts

Następnie tworzymy nowy plik o nazwie np. PIR.py poprzez komendę:

  • sudo nano PIR.py

W naszym nowo otwartym pliku wklejamy poniższy kod:

W kodzie zmieniamy ostatnią linijkę i zamiast xxx.xxx.xxx.xxx:8080 wpisujemy adres IP waszego raspberry z zainstalowanym systemem Domoticz (port 8080 u Was też może być inny – w zależności jaki wybraliście przy instalacji).

Zmieniamy również switchlight&idx=XX gdzie w miejsce XX wpisujemy idx Waszego nowo utworzonego urządzenia w systemie Domoticz – w tym przykładnie będzie to liczba 19.

Nadajemy uprawnienia przez:

  • sudo chmod +x PIR.py

Na końcu w zakładce Przełączniki w systemie Domoticz w linii – „Opóźnienie wył.” wpisujemy wartość, po której chcemy aby Nasz czujnik się wyłączał (np. 20s).

Teraz musimy sprawić by Nasz skrypt odpalał się automatycznie po starcie systemu.

W tym celu tworzymy nowy plik poprzez znaną nam już komendę:

  • sudo nano PIR.sh

W nowo otwartym liku wpisujemy poniższy kod:

Aby zakończyć naciskamy ctrl+x i zapisujemy Nasz plik.

Następnie dodajemy mu uprawnienia poprzez komendę:

  • sudo chmod +x PIR.sh

Następnie edytujemy plik rc.local poprzez komendę:

  • sudo nano /etc/rc.local

I na końcu pliku wpisujemy:

/home/pi/domoticz/scripts/PIR.sh &

Naciskamy ctrl+x i nadpisujemy Nasz plik.

 

Od tej chwili Nasz czujnik ruchu powinien uruchamiać się wraz ze startem systemu.

 

 

23 Odpowiedzi

  1. Witam, dziękuję za opis – jestem zielony z tematu, ale czy nie brakuje w kodzie poleceń wyłączających? w domoticz nie zmienia sie na off – jak z przeglądarki wyślę http://192.168.0.145:40081/json.htm?type=command&param=switchlight&idx=XX&switchcmd=Off to dopiero zmienia status

  2. Krzysztof

    Witam serdecznie.
    Nie wiem czy tylko u mnie tak jest, ale przy starcie Maliny nie jest automatycznie wykonywany rc.local
    Dopiero ręczne jego wywołanie, lub sudo reboot now rozwiązuje problem.
    Jak znajdę rozwiązanie to się z nim podzielę na forum, a dla osób którym skrypt nie uruchamia się sam automatycznie wraz ze startem Maliny polecam po starcie zrobić reboot.
    Pozdrawiam

    • Łukasz Kostrzewa

      Witam
      Powiem szczerze, że nie mam pojęcia dlaczego tak się dzieje. Bardzo proszę o info jak dojdzie Pan do tego co z tym zrobić.
      Pozdrawiam

  3. i co dalej? Już mogę w domoticz ustawić, np żeby lampka się włączała jak wykryje ruch? Nie wiem jak to zrobić 🙁

    • Agnieszka Kostrzewa

      Jak ma Pan jakas sterowana lampke i jest juz dodana w Domoticz to oczywiście ze tak. Mozna to zrobic za pomocą Zdarzeń. W wolnej chwili postaram sie rozwinac to zagadnienie.

      • Dziękuję. Poradziłem sobie ze zdarzeniami. Lampka się zapala jak czujnik wykryje ruch. Jak poruszam ręką to mi w konsoli pokazuje:
        GPIO pin 8 is HIGH
        GPIO pin 8 is LOW
        Potem dostaje podwójne powiadomienia na telefonie „Wykryto ruch”, które sobie ustawiłem na domoticz. Rozumiem, że to przez ten HIGH oraz LOW. Co zrobić, żeby dostać tylko jedno powiadomienie o wykrytym ruchu?
        Będzie trzeba zupełnie zmienić strukturę kodu, prawda? Za bardzo się nie znam na programowaniu. Uczę się jeszcze.

        • Poradziłem sobie usuwając powiadomienie z przełącznika i dałem powiadomienie w innym miejscu – zdarzeniu swoim. Super poradnik. Dziękuję!

          • Agnieszka Kostrzewa

            Witam. Nie zdazylem odpisac:) Lubie Domoticza za to ze zmusza do kombinowania 🙂 Ciesze sie ze sie udalo. Pozdrawiam i dziekuje za mile slowa

  4. Witam jaki trzeba zmienic kod by dodac jeszcz 2 czujniki?

    • Łukasz Kostrzewa

      Witam Serdecznie

      Należy utworzyć jeszcze dwa dodatkowe Wirtualne Przełączniki w Domoticz. Zapisać sobie ich numery IDX.
      Utworzyć dwa dodatkowe skrypty, w których zmieniamy Sensor na numer Pinu GPIO gdzie podłączyliśmy nowy czujnik oraz zmieniamy IDX na nowo utworzony.
      Można by to też zrobić w jednym pliku ale tak będzie bardziej czytelnie i mniej tłumaczenia 🙂
      Pozdrawiam

  5. Gdyby ktoś miał problemy z OrangePI to zmodyfikowałem troszkę kod:

    #!/usr/bin/python

    from pyA20.gpio import gpio
    from pyA20.gpio import port

    import time
    import urllib

    # initialize GPIO
    sensor = port.PA8
    gpio.init()

    previous_state = False
    current_state = False

    while True:

    previous_state = current_state
    current_state = sensor
    if current_state != previous_state:
    new_state = „HIGH” if current_state else „LOW”
    print(„GPIO pin %s is %s” % (sensor, new_state))
    httpresponse = urllib.urlopen („http://xxx.xxx.xxx.xxx:xxxx/json.htm?type=command&param=switchlight&idx=xxx&switchcmd=On&#8221😉

    • Kolego na jakim Orange Pi działa Ci ten kod ?
      Próbuje go uruchomić na Pi One i jest problem:(

  6. Witam, proszę o pomoc ewentualnie sugestię, jak w ten sposób skonfigurowany PIR (z tym opisem poszło gładko) mógłby w domoticz załączać przekaźnik sterujący np. oswietleniem led na schodach.
    Chciałby wykorzystać to rozwiązanie.

    • Agnieszka Kostrzewa

      Witam. Wystarczy w Events (Zdarzenia) w ustawieniach dosac prosty schenat blokowy. IF PIR ON then Led Schody On. Zapisac i ustawic jako aktywny. Pozdrawiam

      • Witam, Bardzo dziękuję zadziało od ręki, może komuś sie przyda kiedy stanie przed ścianą jak ja, poniżej próbka
        skryptu LUA, mój przekaźnik załączany jest GPIO27 przez 10s,
        ————————————–
        — script_device_PIR.lua
        local sensor = ‚PIR’
        commandArray = {}
        if (devicechanged[sensor] == ‚On’) then
        print („Wlaczam sterowanie oswietleniem przez pin 17”)
        os.execute („/usr/local/bin/gpio export 27 in”)
        os.execute („/usr/local/bin/gpio export 27 out”)
        os.execute („sleep 10”)
        os.execute („/usr/local/bin/gpio export 27 in”)
        end

        return commandArray

  7. Witam ponownie, Panie Łukaszu od momentu właczenia hasła w domoticzu przestało działać, proszę o podpowiedź gdzie dopisać użytkownika i hasło, pozdrawiam.

    • Łukasz Kostrzewa

      Witam Serdecznie

      Dziwne bo ja mam hasło i działa tak jak jest w skrypcie. A ma Pan wpisane w ustawieniach Domoticza w polu „Sieci lokalne (bez hasła/loginu)” – 192.168.0.*;127.0.0.*
      Jeżeli nie to proszę to wpisać i dać znać czy pomogło.

      Pozdrawiam

      • Witam, dziękuję miałem dodane tle tylko, że z ustawieniami dla mojej sieci. Kiedy zasugerował Pan, iż powinno działać, sprawdziłem logi pojawiał się komunikat ( Error: User: Admin initiated a switch command (Wrong code!) i nic więcej dlatego nie mogłem tego z skojarzyć z pir-em.
        Przeanalizowałem wszystko od początku i okazało się, że mam zabezpieczony przycisk, odznaczyłem i śmiga.
        Pozdrawiam!

        • Agnieszka Kostrzewa

          Ciesze sie ze sie udalo:) Lubie Domoticza za to ze trzeba kombinowac i mimo ze w sieci jest wiele gotowych „przepisow” to zawsze cos dziala lub nie inaczej:) Ale poswiecajac troche czasu mozna samemu dojsc do wielu rzeczy i sporo sie nauczyc. Pozdrawiam

  8. Walczę z tym kodem na orange pi pc i nie bangla…. Jakiś pomysł?

Zostaw Komentarz

*