Spisu treści:
- Krok 1: Czujnik ruchu PIR
- Krok 2: Konfiguracja czujnika ruchu PIR
- Krok 3: Moduł i konfiguracja kamery Raspberry Pi
- Krok 4: Połącz czujnik ruchu PIR i moduł kamery
- Krok 5: Konfiguracja dla kolby
- Krok 6: Wynik
Wideo: Detektor ludzi Raspberry Pi + kamera + kolba: 6 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
W tym samouczku omówię kolejne kroki mojego projektu Raspberry Pi IoT -- Wykorzystanie czujnika ruchu PIR, modułu Raspberry Camera do zbudowania prostego urządzenia IoT zabezpieczającego oraz uzyskanie dostępu do dziennika wykrywania za pomocą Flask.
Krok 1: Czujnik ruchu PIR
PIR to skrót od „Passive Infrared”, a ten czujnik ruchu wychwytuje ruchy, obserwując widok w podczerwieni i wychwytując zmiany w podczerwieni. Dlatego, gdy liść i człowiek mijają czujnik, wykrywa on tylko człowieka, ponieważ my jako ludzie wytwarzamy ciepło, a tym samym emitujemy promień podczerwony. Dlatego czujnik ruchu jest dobrym wyborem do wykrywania ruchów człowieka.
Krok 2: Konfiguracja czujnika ruchu PIR
Istnieją trzy piny dla czujnika ruchu PIR, zasilania, wyjścia i uziemienia. Pod pinami widać etykiety, VCC dla zasilania, Out dla wyjścia i GND dla masy. Gdy czujnik wykryje ruch, pin wyjściowy wyśle sygnał HIGH do pinu Raspberry Pi, z którym łączysz czujnik. W przypadku pinu zasilania chcesz się upewnić, że łączy się z pinem 5 V na Raspberry Pi w celu zasilania. W moim projekcie wybieram połączenie pinu wyjściowego z Pin11 na Pi.
Po podłączeniu wszystkiego możesz wysłać SMS-a do czujnika, uruchamiając skrypty takie jak ten poniżej:
importuj RPi. GPIO jako GPIOimport time GPIO.cleanup() GPIO.setwarnings(False) GPIO.setmode(GPIO. BOARD) GPIO.setup(11, GPIO. IN) #Odczytaj dane wyjściowe z czujnika ruchu PIR na pinie 11, podczas gdy True: i =GPIO.input(11) if i==0: #Gdy sygnał wyjściowy z czujnika ruchu jest LOW print "Brak detekcji", i time.sleep(0.1) elif i==1: #Gdy sygnał wyjściowy z czujnika ruchu jest HIGH print " Wykryto ruch", i time.sleep(0.1)
Uruchom skrypt na swoim Pi i połóż ręce lub swojego przyjaciela przed czujnikiem, aby sprawdzić, czy czujnik wykrywa ruch.
Krok 3: Moduł i konfiguracja kamery Raspberry Pi
Człowiek emituje promieniowanie podczerwone z powodu ciepła, podobnie jak obiekty o wysokiej temperaturze. Dlatego też zwierzęta lub gorące przedmioty mogą również wyzwolić czujnik ruchu. Potrzebujemy sposobu, aby sprawdzić, czy wykrycie jest prawidłowe. Istnieje wiele sposobów implementacji, ale w moim projekcie zdecydowałem się użyć modułu kamery Raspberry Pi do robienia zdjęć, gdy czujnik ruchu wykryje ruch.
Aby użyć modułu kamery, najpierw upewnij się, że styki są podłączone do gniazda kamery w Pi. Rodzaj
sudo raspi-config
na swoim Pi, aby otworzyć interfejs konfiguracyjny i włączyć kamerę w „opcjach interfejsu”. Po ponownym uruchomieniu możesz sprawdzić, czy Pi jest rzeczywiście podłączony do kamery, wpisując
vcgencmd get_camera
i pokaże ci status. Ostatnim krokiem jest zainstalowanie modułu picamera, wpisując
pip zainstaluj picamera
Po wszystkich ustawieniach możesz przetestować kamerę, uruchamiając skrypty takie jak ten poniżej:
z picamera importuj PiCamera
od czasu importuj uśpij kamera = PiCamera() camera.start_preview() uśpij(2) camera.capture('image.jpg') camera.stop_preview()
Obraz zostanie zapisany jako „image.jpg” w katalogu takim samym, jak ten w skrypcie aparatu. Zauważ, że chcesz się upewnić, że jest tam 'sleep(2)', a liczba jest większa niż 2, aby kamera miała wystarczająco dużo czasu na dostosowanie warunków oświetlenia.
Krok 4: Połącz czujnik ruchu PIR i moduł kamery
Ideą mojego projektu jest to, że czujnik ruchu i kamera będą zwrócone w tym samym kierunku. Za każdym razem, gdy czujnik ruchu wykryje ruch, kamera zrobi zdjęcie, abyśmy mogli później sprawdzić, co powoduje ruchy.
Scenariusz:
importuj RPi. GPIO jako GPIOz datetime import datetime import czasu z picamera import PiCamera
GPIO.oczyszczanie()
GPIO.setwarnings(False) GPIO.setmode(GPIO. BOARD) GPIO.setup(11, GPIO. IN) #Odczytaj wyjście z komunikatu czujnika ruchu PIR = 'start' counter = 0 log_f = open('static/log.txt', 'w') log_f.close()
kamera = PiCamera()
pic_name = 0
kamera.start_podgląd()
czas.sen(2)
podczas gdy prawda:
i=GPIO.input(11) if i==0: #Gdy sygnał wyjściowy z czujnika ruchu jest NISKI jeśli licznik > 0: end = str(datetime.now()) log_f = open('static/log.txt', ' a') wiadomość = wiadomość + '; end at ' + end + '\n' print(message) log_f.write(message) log_f.close() final = 'static/' + str(pic_name) + ".jpg" pic_name = pic_name + 1 camera.capture(final) counter = 0 print "Brak intruzów", i time.sleep(0.1) elif i==1: #Gdy wyjście z czujnika ruchu jest HIGH if counter == 0: current = str(datetime.now()) message = 'Wykryto człowieka:' + 'start od ' + bieżący licznik = licznik + 1 print "Wykryto intruza", i time.sleep(0.1) camera.stop_preview()
Katalogi dla 'log.txt' i obrazków są 'statyczne', co jest niezbędne do działania Flask.
Krok 5: Konfiguracja dla kolby
Flask to mikro web framework napisany w Pythonie i oparty na zestawie narzędzi Werkzeug i silniku szablonów Jinja2. Jest łatwy do wdrożenia i utrzymania. Aby uzyskać lepszy tutorial do Flask, polecam ten link: Flask Mega Tutorial
Główny skrypt, „routes.py”, mojego projektu:
z folderu app import appFlaskz kolby import render_template, przekieruj import os
APP_ROOT = os.path.dirname(os.path.abspath(_file_)) # odnosi się do application_top
APP_STATIC = os.path.join (APP_ROOT, "statyczny")
@appFlask.route('/', method=['GET', 'POST'])
def view(): log_f = open(os.path.join(APP_STATIC, 'log.txt'), 'r') logs = log_f.readlines() final_logs = do logowania logów: final_logs.append(log. strip()) name = str(len(final_logs)-1)+'.jpg' return render_template('view.html', logs=final_logs, filename=name)
Plik HTML „view.html” znajduje się na górnym pasku (ponieważ kiedy kopiuję tutaj kody HTML, w rzeczywistości zmienia się on w FORMAT HTML…)
A struktura projektu powinna wyglądać jak poniżej (ale oczywiście plików jest więcej niż te):
iotproject\ appfolder\ route.py szablony\ view.html static\ log.txt 0-j.webp
Krok 6: Wynik
W przypadku tej implementacji, po poprawnym skonfigurowaniu wszystkiego, powinieneś mieć dostęp do swojego Raspberry Pi, wpisując jego adres IP w przeglądarce, a wynik powinien wyglądać jak obrazek na górnym pasku na tym etapie.