Czujnik może być zasilany w zakresie 4,5 V do 20 V. Czujnik posiada wyprowadzenia VCC, OUT, GND. Po wykryciu ruchu na wyjściu OUT pojawia się stan wysoki. Ja zasilam go z zewnętrznego zasilacza 5V.
Czujnik posiada 2 potencjometry, którymi możemy regulować
T1 - czas trwania stanu wysokiego po wykryciu obiektu
T2 - czułość czujnika (dystans, w którym wykrywa ruch obiektu)
Ponieważ ja używam czujnika w pokoju T2 ustawiłem w połowie na średnią odległość, a T1 czyli czas reakcji maksymalnie w lewo.
W moim projekcie podłączyłem buzer pod pin 26 GPIO, a PIR pod pin 6 GPIO.
W programie napisanym w pythonie piny możemy sobie dowolnie zdefiniować na początku kodu:
#wpisz nr pinu GPIO czujnika PIR
PIR = 6
#wpisz nr pinu GPIO alarmu
ALARM = 26
Możemy również zdefiniować jak długo w sekundach alarm ma być włączony, definiujemy, to w tej linijce:
#wpisz czas w sekundach jak dlugo ma byc wlaczony alarm
DELAY = 5
Kod programu:
#!/usr/bin/python
import RPi.GPIO as GPIO
#import bibloetki GPIO
import time
GPIO.setmode(GPIO.BCM)
#wpisz nr pinu GPIO czujnika PIR
PIR = 6
#wpisz nr pinu GPIO alaramu
ALARM = 26
#wpisz czas w sekundach jak dlugo ma byc wlaczony alarm
DELAY = 5
#ustawienie pinu PIR jako wejscie
GPIO.setup(ALARM, GPIO.OUT)
# ustawienie pinu ALARM jako wyjscie
GPIO.setup(PIR, GPIO.IN)
GPIO.setup(PIR, GPIO.IN, pull_up_down=GPIO.PUD_UP)
try:
while True:
# wykrycie ruchu
GPIO.wait_for_edge(PIR, GPIO.RISING)
# alaram wlaczony
GPIO.output(ALARM, True)
time.sleep(DELAY)
GPIO.output(ALARM, False)
except KeyboardInterrupt:
GPIO.cleanup()
Program jest do pobrania stąd -> alarm.py
Program kopiujemy sobie do katalogu python.
Teraz możemy przeprowadzić test programu, więc w terminalu wpisujemy:
cd python
sudo python alarm.py
Po wykryciu ruchu włączy się alarm na 5 sekund, po wciśnięciu dowolnego klawisza program się zakończy.
Teraz tworzymy skrypt lua, który będzie włączał i wyłączał nasz alarm, czyli uruchamiał i zamykał program w pythonie.
Skrypt będzie wyglądał tak:
commandArray = {}
if (devicechanged['ALARM'] == 'On') then
os.execute ("sudo python /home/pi/python/alarm.py")
end
if (devicechanged['ALARM'] == 'Off') then
os.execute("sudo pkill -9 -f /home/pi/python/alarm.py")
end
return commandArray
W linijce:
if (devicechanged['ALARM'] == 'On') then i
if (devicechanged['ALARM'] == 'Off') then
wpisujemy nazwę naszego przycisku jaki dodamy w Domoticz, ja nazwałem sobie go ALARM.
Skrypt jest do pobrania stąd -> script_device_alarm.lua
Kopiujemy nasz skrypt do: /home/pi/domoticz/scripts/lua
Wchodzimy na nasz panel Domoticz IP:8080 i klikamy Utwórz wirtualne sensory
Jak utworzyć wirtualne sensory napisałem wcześnie w poście -> Domoticz i uruchamianie programów w Pythonie
Wybieramy przełącznik i klikamy OK
Wchodzimy w Ustawienia -> Urządzenia, szukamy nasz utworzony przycisk Wirtualny ALARM i klikamy w zieloną strzałkę.
Wpisujemy nazwę ALARM i klikamy OK.
Teraz nasz przełącznik mamy w zakładce Przełączniki, ponieważ nie jest, to włącznik światła zmienimy sobie jego ikonkę, klikamy edytuj i wybieramy dowolną ikonkę w Zamień ikonę. Ja wybrałem Alarm i klikamy Zapisz.
Ponieważ zdefiniowany wcześniej czas włączenia buzera lub alarmu jest zbyt krótki, zmienimy sobie czas DELAY w programie na 3 minuty, czyli 180 sekund, czyli w programie alarm.py wpisujemy DELAY = 5 i zapisujemy plik w /home/pi/python
Teraz, gdy alarm się aktywuje musimy go jakoś wyłączyć, w tym celu edytujemy plik domoticz.sh, czyli w terminalu wpisujemy:
sudo nano /etc/init.d/domoticz.sh
Przechodzimy na koniec linii i wpisujemy:
/usr/local/bin/gpio export 26 out
Wciskamy Ctrl+X, T i ENTER i robimy restart, czyli:
sudo reboot
Wpisaliśmy pin GPIO nr 26 jako out ponieważ, do tego pinu mamy podłączony buzer.
Wchodzimy do panelu Domoticz IP:8080
Teraz wchodzimy w zakładkę Przełączniki -> Ręczne ustawienia.
Sprzęt ma być ustawione GPIO, Nazwę wpisuję sobie Wyłącz ALARM, Typ przełącznika Push Off Button, Typ GPIO, GPIO: gpio26 i klikamy dodaj urządzenie
Teraz po włączeniu alarmu możemy go wyłączyć przyciskiem Wyłącz ALARM, ale wykrywanie ruchu i włączanie buzera będzie nadal aktywne, aby całkowicie dezaktywować alarm, klikamy przełącznik ALARM na OFF.
Witam. Fajny poradnik ale... Mógłbyś napisać jak podłączyć sam Sensor ruchu do DOmoticz? Kiedy podłączam go do gpio (tworzę przycisk GPIO - następnie W Przełącznikach dodaje przycisk Typ Motion Sensor GPIO i mój Pin - gdzie na wiringPi mm ustawione Pin 8 in i pin 8 both) W prostym skrypcie python ruch jest wykrywany. W Domoticz na virtualnym przyciusku też (w logach). Niestety status (wykryto ruch lub nie) się nie zmienia. Cały czas jest pokazane, że nie wykryto ruchu mimo, że w logu pokazuje że wykryto. Bardzo bym prosił o pomoc. (mail:lukcinek@gmail.com)
OdpowiedzUsuńO ile dobrze pamiętam, to sam czujnik PIR nie chciał mi działać w Domoticz i dlatego napisałem program w pythonie.
OdpowiedzUsuńMożesz spróbować zrobić wpis, który zdefiniuje podłączony czujnik PIR jako wejście IN i wtedy zobaczyć, czyli /usr/local/bin/gpio export 6 in. Na pewno czujnik PIR działa w odbiorniku mysensors https://www.mysensors.org/build/motion
Witam.
OdpowiedzUsuńDopiero rozpoczynam zabawę z raspberry w tym artykule znalazłem jak podłączyć sam czujnik PIR do Domoticz ,logi działąją ,ale szukam sposobu na wyłączenie czujki. http://kostrzewinki.pl/podlaczenia-sensora-ruchu-pir-hc-rc-501/
Ok , a jak w Domoticzu uzbrajać działanie czujki PiR i rozbrajać panelem bezpieczeństwa, za pomocą kodu ?
OdpowiedzUsuńhttp://www.yellington.com/advanced-events-handling-in-domoticz/
UsuńTen komentarz został usunięty przez autora.
OdpowiedzUsuńTen komentarz został usunięty przez administratora bloga.
OdpowiedzUsuńTen komentarz został usunięty przez administratora bloga.
OdpowiedzUsuńJeśli chodzi o monitoring to najlepszym rozwiązaniem jest inwestować w dobrej jakości urządzenia, takie jak na przykłąd te dostepne w sklepie https://gemini-tech.com.pl/ . Nie ma co oszczędzać na bezpieczeństwie, a tylko dobrej jakości i niezawodne produkty gwarantują je wam
OdpowiedzUsuń