Bemerkung

Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Tauchen Sie mit anderen Enthusiasten tiefer in Raspberry Pi, Arduino und ESP32 ein.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Probleme nach dem Kauf und technische Herausforderungen mit Hilfe unserer Community und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Tutorials aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und Sneak Peeks.

  • Sonderrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Bereit, mit uns zu entdecken und zu gestalten? Klicken Sie auf [here] und treten Sie noch heute bei!

2.7 PIR-Sensor

Einführung

Der Passive-Infrarot-Sensor (PIR) ist ein Bewegungssensor, der Infrarotstrahlung erkennt, die von Menschen und Tieren ausgestrahlt wird. In diesem Projekt verwenden wir den PIR-Sensor, um Bewegungen zu erkennen.


Benötigte Komponenten

Für dieses Projekt werden folgende Komponenten benötigt:

KOMPONENTENBESCHREIBUNG

KAUFLINK

PIR Bewegungssensormodul

BUY

Jumper-Kabel

BUY

Fusion HAT+

-

Raspberry Pi

-


Schaltplan

Unten sehen Sie das Schaltbild für dieses Projekt:

../_images/2.2.6_sch.png

Verdrahtungsdiagramm

Bauen Sie die Schaltung wie im folgenden Diagramm dargestellt auf:

../_images/2.2.6_bb.png

Stellen Sie sicher, dass die RGB-LED und der PIR-Sensor gemäß dem Schaltplan mit den richtigen GPIO-Pins verbunden sind.

Bemerkung

Stellen Sie die beiden Potentiometer auf dem PIR-Modul ein, um die optimale Empfindlichkeit und Erkennungsdistanz zu erreichen. Drehen Sie beide gegen den Uhrzeigersinn auf ihre maximale Einstellung, um die besten Ergebnisse zu erzielen.

../_images/PIR_TTE.png

Beispiel ausführen

Der gesamte Beispielcode, der in diesem Tutorial verwendet wird, befindet sich im Verzeichnis ai-lab-kit. Führen Sie das Beispiel mit den folgenden Schritten aus:

cd ~/ai-lab-kit/python/
sudo python3 2.7_PIR.py

Dieses Python-Skript überwacht einen PIR-Bewegungssensor und reagiert auf erkannte Bewegungen. Beim Ausführen passiert Folgendes:

  1. Wenn Bewegung erkannt wird: Es wird „Detected Barrier!“ in der Konsole ausgegeben.

  2. Wenn keine Bewegung erkannt wird: Es wird „No Barrier“ in der Konsole ausgegeben.

  3. Das Programm läuft unbegrenzt weiter und wartet auf Bewegungsereignisse. Es kann durch Drücken von Ctrl+C beendet werden.


Code

Unten finden Sie den Python-Code für dieses Projekt:

#!/usr/bin/env python3
from fusion_hat.pin import Pin, Mode, Pull
from signal import pause  # Import pause function from signal module

# Initialize a PIR Module object on GPIO pin 17
pir = Pin(17, mode=Mode.IN, pull=Pull.DOWN)

def detect():
   if pir.value() == 1:  # Check if the PIR Module is triggered
      print("Detected Barrier!")
   else:
      print("No Barrier")

try:
   pir.when_activated = detect  # Set up an interrupt to detect changes in the pir sensor state
   pir.when_deactivated = detect

   # Run an event loop that waits for button events and keeps the script running
   print("CTRL + C to exit")
   pause()

except KeyboardInterrupt:
   # Handle KeyboardInterrupt (Ctrl+C) to exit the loop gracefully
   pass

Code verstehen

  1. Importe:

    from fusion_hat.pin import Pin, Mode, Pull
    from signal import pause  # Importiert die Funktion pause aus dem signal-Modul
    

    Das Skript verwendet die fusion_hat-Bibliothek zur Steuerung des PIR-Sensors und das signal-Modul, um das Programm aktiv zu halten.

  2. Initialisierung:

    pir = Pin(17, mode=Mode.IN, pull=Pull.DOWN)
    

    In dieser Zeile wird ein PIR-Sensor an Pin 17 initialisiert, wobei ein interner Pull-down-Widerstand aktiviert ist.

  3. Hauptlogik:

    def detect():
       if pir.value() == 1:  # Prüfen, ob das PIR-Modul ausgelöst wurde
          print("Detected Barrier!")
       else:
          print("No Barrier")
    
    try:
       pir.when_activated = detect  # Interrupt einrichten, um Zustandsänderungen des PIR-Sensors zu erkennen
       pir.when_deactivated = detect
    
       # Ereignisschleife starten, die auf Sensorereignisse wartet und das Skript aktiv hält
       print("CTRL + C to exit")
       pause()
    
    except KeyboardInterrupt:
       # KeyboardInterrupt (Ctrl+C) abfangen und das Programm sauber beenden
       pass
    
    • Überwacht kontinuierlich, ob der PIR-Sensor eine Bewegung erkennt.

    • Wenn eine Bewegung erkannt wird, wird die Meldung „Detected Barrier!“ ausgegeben.

    • Wenn keine Bewegung erkannt wird, wird die Meldung „No Barrier“ ausgegeben.


Fehlerbehebung

  1. Bewegung wird nicht erkannt

    • Ursache: Der PIR-Sensor ist nicht korrekt angeschlossen oder konfiguriert.

    • Lösung:

      • Stellen Sie sicher, dass der PIR-Sensor mit GPIO-Pin 17, der Stromversorgung und GND verbunden ist.

      • Passen Sie gegebenenfalls die Empfindlichkeits- und Verzögerungspotentiometer am Sensor an.


Erweiterungsideen

  1. Akustisches Feedback

    Fügen Sie einen Buzzer hinzu, der ein Signal ausgibt, wenn eine Bewegung erkannt wird:

    from fusion_hat import Buzzer
    buzzer = Buzzer(Pin(22))
    if pir.value() == 1:
       buzzer.on()
    else:
       buzzer.off()
    
  2. Datenprotokollierung

    Protokollieren Sie erkannte Bewegungsereignisse mit Zeitstempel in einer Datei zur späteren Analyse:

    with open("motion_log.txt", "a") as log_file:
       log_file.write(f"Motion detected at {time.time():.3f}\n")
    

Fazit

Dieses Projekt zeigt, wie ein PIR-Sensor zur Bewegungserkennung eingesetzt werden kann. Durch das Verständnis der Grundlagen der Bewegungserkennung können Sie dieses Projekt zu komplexeren Anwendungen weiterentwickeln, beispielsweise für Sicherheitssysteme, automatische Beleuchtung oder interaktive Geräte. Die Vielseitigkeit und einfache Nutzung des PIR-Sensors machen ihn zu einer ausgezeichneten Komponente für zahlreiche DIY- und professionelle Projekte.