- Wymagane składniki
- Schemat obwodu dla Raspberry Pi i czujnika ruchu opartego na czujniku PIR
- Kod Pythona dla Raspberry Pi:
Systemy bezpieczeństwa odgrywają ważną rolę w naszym codziennym życiu i możemy tam znaleźć wiele różnych typów systemów zabezpieczeń z różnymi rodzajami technologii i różnymi przedziałami cenowymi. Będąc entuzjastą elektroniki, możesz stworzyć prosty system bezpieczeństwa, wydając kilka dolarów i trochę wolnego czasu. W tym artykule udostępniam przewodnik dla majsterkowiczów, aby stworzyć prosty alarm czujnika ruchu oparty na Raspberry pi i PIR, który włączy brzęczyk, gdy czujnik PIR wykryje jakikolwiek ruch człowieka w okolicy. Omówiliśmy również prosty obwód czujnika ruchu oparty na czujniku PIR w jednym z naszych poprzednich artykułów, w którym szczegółowo omówiliśmy działanie czujnika PIR.
Wymagane składniki
- Raspberry Pi 3 (dowolny model)
- Czujnik PIR
- Brzęczyk
- Płytka prototypowa
- Przewody łączące
Działanie czujnika PIR
Pasywny czujnik podczerwieni (PIR) nazywany jest pasywnym, ponieważ odbiera podczerwień, a nie emituje. Zasadniczo wykrywa każdą zmianę temperatury i za każdym razem, gdy wykryje jakąkolwiek zmianę, jego wyjściowy PIN staje się WYSOKI. Nazywa się je również piroelektrycznymi lub IR czujnikami ruchu.
W tym miejscu należy zauważyć, że każdy obiekt po podgrzaniu emituje pewną ilość podczerwieni. Człowiek również emituje podczerwień z powodu ciepła ciała. Czujniki PIR mogą wykrywać niewielkie zmiany w podczerwieni. Za każdym razem, gdy obiekt przechodzi przez zasięg czujnika, emituje podczerwień z powodu tarcia między powietrzem a obiektem i zostaje złapany przez czujnik PIR.
Głównym elementem czujnika PIR jest czujnik piroelektryczny pokazany na rysunku (prostokątny kryształ za plastikową nasadką). Oprócz tego BISS0001 („Micro Power PIR Motion Detector IC”), niektóre rezystory, kondensatory i inne komponenty użyte do budowy czujnika PIR. Układ scalony BISS0001 pobiera dane wejściowe z czujnika i przetwarza, aby pin wyjściowy był odpowiednio WYSOKI lub NISKI.
Piroelektryczny czujnik dzieli się na dwie połowy, gdy nie ma ruchu, obie połówki pozostają w tym samym stanie, co oznacza, że oba wyczuwają ten sam poziom podczerwieni. Jak tylko ktoś wejdzie w pierwszą połowę, poziom podczerwieni w jednej połowie staje się większy niż w drugiej, co powoduje reakcję PIR i powoduje, że pin wyjściowy jest wysoki.
Czujnik piroelektryczny jest pokryty plastikową nasadką, w której znajduje się szereg soczewek Fresnela. Soczewki te są zakrzywione w taki sposób, że czujnik może pokrywać szeroki zakres.
Schemat obwodu dla Raspberry Pi i czujnika ruchu opartego na czujniku PIR
Jak pokazano na powyższym schemacie dla czujnika ruchu opartego na Raspberry Pi i czujniku PIR, dodatni pin czujnika PIR jest połączony z pinem 4 (5v), a pin masy czujnika PIR jest połączony z pinem 6 (masa) Raspberry Pi (Możesz znaleźć tutaj schemat pinów Raspberry Pi). Pin wyjściowy czujnika PIR jest połączony z GPIO 23 Raspberry pi, które służy do podania sygnału wejściowego do Raspberry Pi. Zadeklarowany tu pin GPIO 24 jest połączony z plusem brzęczyka, a masa brzęczyka jest połączona z masą (pin 6) maliny pi.
Kod Pythona dla Raspberry Pi:
Kod Pythona dla tego czujnika ruchu Raspberry Pi i czujnika PIR jest dość prosty i można go łatwo zrozumieć dzięki komentarzom w sekcji kodu poniżej. Zadeklarowałem piny 23 i 24 GPIO jako piny wejściowe i wyjściowe.
while True: jeśli GPIO.input (23): #Jeśli występuje ruch, czujnik PIR podaje sygnał wejściowy do GPIO23 GPIO.output (24, True) # Wyjście przekazywane do Buzzera przez czas GPIO24. uśpienie (1) # Buzzer włącza się na 1 sekunda GPIO.output (24, False)
„Podczas gdy” pętla służy jako „prawda”, więc zawartość wewnątrz pętli zawsze będzie wykonać. jeśli GPIO.input (23): instrukcja wykrywa, czy pin 23 GPIO jest wysoki, a jeśli to samo jest prawdą, powoduje, że wyjściowy PIN 24 jest wysoki. Funkcja time.sleep (secs) służy do wstrzymania programu w Pythonie na określony czas, gdzie „secs” to czas w sekundach. Więc tutaj robiliśmy pauzę na 1 sekundę. W następnym wierszu ustawiliśmy wyjście na 24 jako fałsz, więc brzęczyk zatrzymuje się, dopóki pętla nie rozpocznie następnej iteracji, ponieważ pętla While jest zawsze ustawiona na wartość true bez żadnego warunku wstępnego.