[PROJEKT] Wyzwalanie migawki ruchem – Raspberry Pi oraz czujnik ruchu PIR
Ostatnim elementem powinno być podłączenie oraz odpowiednia konfiguracja kamery Raspberry Pi HD V2 8MP.
Po zalogowaniu do Raspberry Pi przy pomocy terminala (np. Putty) warto zaktualizować system do najnowszej wersji (może to potrwać kilka minut). Należy zrobić to komendami:
sudo apt-get update sudo apt-get dist-upgrade
Przedstawię teraz prosty program, który po wykryciu ruchu zrobi zdjęcie oraz zasygnalizuje to poprzez zapalenie diody LED. Kod programu został napisany w języku Python. Najpierw należy stworzyć plik o nazwie program.py. Służy do tego komenda:
nano program.py
Pojawi się okno edytora:

Rys 6. Okno edytora
Teraz należy przekopiować poniższy kod. Aby wkleić go w okno edytora należy ustawić kursor na początku pliku, a następnie kliknąć na okno konsoli prawym przyciskiem myszy.
import RPi.GPIO as GPIO
import picamera
import time
camera = picamera.PiCamera()
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.IN) #Czujnik Ruchu
GPIO.setup(3, GPIO.OUT) #Dioda LED
j=0;
while True:
i=GPIO.input(11)
if i==0: #Gdy czujnik nie wykryje ruchu
print "Brak ruchu",i
GPIO.output(3, 0) #Turn OFF LED
time.sleep(0.5)
elif i==1: #Gdy czujnik wykryje ruch
print "Wykryto ruch",i
GPIO.output(3, 1) #Zapalanie diody LED
j=j+1
camera.capture('image%03d.jpg'%j) #zrobienie zdjecia
time.sleep(0.5)
Przejdę teraz do analizy programu. Najpierw należy zaimportować biblioteki do obsługi portów GPIO, kamery oraz bibliotekę obsługującą czas:
import RPi.GPIO as GPIO import picamera import time
Kolejnym krokiem będzie zdefiniowane obiektu camera, ustawień portów GPIO oraz deklaracje zmiennych:
camera = picamera.PiCamera() GPIO.setwarnings(False) GPIO.setmode(GPIO.BOARD) GPIO.setup(11, GPIO.IN) #Czujnik Ruchu GPIO.setup(3, GPIO.OUT) #Dioda LED j=0;
Następnie w pętli nieskończonej umieszczony jest warunek if. Jeżeli na pinie 11 pojawi się stan wysoki, zapalona zostaje dioda LED oraz robione jest zdjęcie. W przeciwnym wypadku zostanie wyświetlony komunikat „Brak ruchu”, a dioda LED zostanie zgaszona. Zdjęcia są kolejno numerowane.
while True:
i=GPIO.input(11)
if i==0: #Gdy czujnik nie wykryje ruchu
print "Brak ruchu",i
GPIO.output(3, 0) #Turn OFF LED
time.sleep(0.5)
elif i==1: #Gdy czujnik wykryje ruch
print "Wykryto ruch",i
GPIO.output(3, 1) #Zapalanie diody LED
j=j+1
camera.capture('image%03d.jpg'%j) #zrobienie zdjecia
time.sleep(0.5)
Działanie programu zostało zaprezentowane na poniższym materiale wideo:
Źródła:
- https://www.element14.com/community/servlet/JiveServlet/previewBody/73950-102-11-339300/pi3_gpio.png

Dominik Bednarski porównuje STM32MP1 i OpenSTLinux oraz Raspberry Pi 5
Technologie End of Life i bezpieczeństwo sieci – wyzwania Europy związane z tzw. długiem technologicznym
Najczęstsze błędy firm przy wyborze dostawcy energii i jak ich uniknąć 



