Automatisch fotografieren, wenn jemand vor die Linse läuft, das könnten spannende oder auch lustige Bilder werden.
Um so eine Fotogalerie mit einem Raspberry Pi 5, einer USB-Webcam und einem Bewegungssensor zu erstellen, brauchst du einige Komponenten und etwas Programmierarbeit.
Als Kamera habe ich eine alte USB-Webcam der Playstation 3 genommen.
Als Bewegungssensor kommt der HC-SR501 zum Einsatz. Dieser benötigt eine Versorgungsspannung von 5 V, aber der mir vorliegende Sensor besitzt am Ausgang (OUT-Pin) einen Pull-up-Widerstand zu 3,3 V.
Somit ist sein Ausgangssignal 3,3 V-kompatibel – perfekt für den Anschluss an die GPIO-Pins des Raspberry Pi.
Sicherheitshalber sollte jeder Sensor vor dem Anschluss mit einem Multimeter geprüft werden: Misst bei erkannter Bewegung die Spannung am OUT-Pin. Überschreitet sie 3,3 V, kann der Raspberry Pi dauerhaft beschädigt werden – in diesem Fall ist ein Spannungsteiler oder Level-Shifter erforderlich.
Hier sind die Schritte, die das Ermöglichen:
Benötigte Hardware
- Raspberry Pi 5 mit installiertem Betriebssystem (Raspberry Pi OS).
- USB-Webcam, die mit dem Raspberry Pi kompatibel ist.
- Bewegungssensor HC-SR501 (PIR-Sensor)
- Micro-SD-Karte mit genügend Speicherplatz für die Bilder. (ext4 oder FAT32 formatiert)
- Netzteil und eventuelle weitere Anschlüsse.
Verdrahtung

Vorbereitung
- Verbinde den PIR-Sensor mit den GPIO-Pins des Raspberry Pi.
- Installiere Python3 und die passende Bibliothek (libgpiod) mit
sudo apt-get install python3
sudo apt install python3-libgpiod

Bewegungssensor einrichten
- Erstelle dieses einfache Python-Skript unter home/username/ und Teste den Sensor damit auf Funktion:
import gpiod
import time
chip = gpiod.Chip("gpiochip0") # Ersten GPIO-Chip auswählen
line = chip.get_line(14) # GPIO 14 für den PIR-Sensor
# Den GPIO-Pin als Eingang setzen
line.request(consumer="motion_sensor", type=gpiod.LINE_REQ_DIR_IN)
print("Warte auf Bewegung...")
while True:
if line.get_value(): # Prüfen, ob Bewegung erkannt wurde
print("Bewegung erkannt!")
time.sleep(0.1) # Kurze Pause, um das System nicht zu überlasten
USB-Webcam konfigurieren
- Überprüfe, ob die Kamera erkannt wird:
ls /dev/video*Bei mir erscheint mit angeschlossener WebCam /dev/video0
- Installiere
fswebcam, damit Bilder von der Webcam erstellt werden:
sudo apt-get install fswebcam- Teste die Kamera damit (Bilder werden erstmal als jpg unter home/username/ abgelegt)
fswebcam testbild.jpgAutomatische Bilder bei Bewegung aufnehmen
- Erstelle ein Python-Skript, das bei Bewegung ein Foto aufnimmt:
import gpiod
import os
import time
chip = gpiod.Chip("gpiochip0") # GPIO-Chip auswählen
line = chip.get_line(14) # GPIO-Pin des Bewegungssensors
# GPIO als Eingang setzen
line.request(consumer="motion_sensor", type=gpiod.LINE_REQ_DIR_IN)
bild_nummer = 1
print("Warte auf Bewegung...")
while True:
if line.get_value(): # Prüfen, ob Bewegung erkannt wurde
bild_name = f"bild_{bild_nummer}.jpg"
os.system(f"fswebcam -r 1280x720 --no-banner {bild_name}") # Bild aufnehmen
print(f"Bild gespeichert: {bild_name}")
bild_nummer += 1
time.sleep(1) # Verhindert mehrfaches Auslösen durch eine einzige Bewegung
Fertig – Viel Spass beim nachbauen
Fotofalle mit dem ESP32-Cam erstellen:
