Bemerkung
Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.
Warum beitreten?
Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!
2.2.4 PIR
Einführung
In diesem Projekt werden wir ein Gerät mit Hilfe von Infrarotsensoren für den menschlichen Körper herstellen. Wenn sich jemand der LED nähert, schaltet sich die LED automatisch ein. Wenn nicht, erlischt das Licht. Dieser Infrarot-Bewegungssensor ist eine Art Sensor, der die von Menschen und Tieren abgegebene Infrarotstrahlung erkennen kann.
Benötigte Komponenten
Für dieses Projekt benötigen wir die folgenden Komponenten.
Schaltplan
Experimentelle Verfahren
Schritt 1: Bauen Sie den Schaltkreis auf.
Schritt 2: Wechseln Sie in den Ordner des Codes.
cd ~/davinci-kit-for-raspberry-pi/python-pi5
Schritt 3: Führen Sie die ausführbare Datei aus.
sudo python3 2.2.4_PIR_zero.py
Nachdem der Code ausgeführt wurde, erkennt der PIR die Umgebung und lässt die RGB-LED gelb leuchten, wenn er jemanden vorbeigehen spürt.
Es gibt zwei Potentiometer auf dem PIR-Modul: eines zur Einstellung der Empfindlichkeit und das andere zur Einstellung der Erfassungsentfernung. Um das PIR-Modul optimal zu nutzen, sollten Sie beide gegen den Uhrzeigersinn bis zum Anschlag drehen.
Warnung
Wenn die Fehlermeldung RuntimeError: Cannot determine SOC peripheral base address angezeigt wird, lesen Sie bitte Wenn gpiozero nicht funktioniert.
Code
Bemerkung
Sie können den unten stehenden Code Modifizieren/Zurücksetzen/Kopieren/Ausführen/Stoppen. Aber bevor Sie das tun, müssen Sie zum Quellcode-Pfad wie davinci-kit-for-raspberry-pi/python-pi5 gehen. Nachdem Sie den Code geändert haben, können Sie ihn direkt ausführen, um die Auswirkungen zu sehen.
#!/usr/bin/env python3
from gpiozero import RGBLED, MotionSensor
from time import sleep
# Initialisieren Sie die RGB-LED und den PIR-Bewegungssensor mit der GPIO Zero-Bibliothek
led = RGBLED(red=18, green=27, blue=22) # RGB-LED an GPIO-Pins 18 (Rot), 27 (Grün), 22 (Blau) angeschlossen
pir = MotionSensor(17) # PIR-Sensor an GPIO-Pin 17 angeschlossen
try:
# Kontinuierlich auf Bewegungen achten und die LED-Farbe aktualisieren
while True:
if pir.motion_detected: # Überprüfen auf vom PIR-Sensor erkannte Bewegung
led.color = (1, 1, 0) # LED-Farbe auf Gelb einstellen (Rot + Grün)
else:
led.color = (0, 0, 1) # LED-Farbe auf Blau einstellen (nur Blau)
sleep(0.1) # Kurze Verzögerung zur Reduzierung der CPU-Last
except KeyboardInterrupt:
# Behandeln Sie KeyboardInterrupt (Ctrl+C) zum eleganten Beenden der Schleife
pass
Code-Erklärung
Importiert die Klasse
RGBLEDfür die Steuerung einer RGB-LED und die KlasseMotionSensorfür die Bewegungserkennung aus der GPIO Zero-Bibliothek. Importiert auch diesleep-Funktion für Verzögerungen.#!/usr/bin/env python3 from gpiozero import RGBLED, MotionSensor from time import sleep
Initialisiert eine RGB-LED mit roten, grünen und blauen Komponenten, die an die GPIO-Pins 18, 27 und 22 angeschlossen sind. Außerdem wird ein PIR-Sensor am GPIO-Pin 17 initialisiert.
# Initialisieren Sie die RGB-LED und den PIR-Bewegungssensor mit der GPIO Zero-Bibliothek led = RGBLED(red=18, green=27, blue=22) # RGB-LED an GPIO-Pins 18 (Rot), 27 (Grün), 22 (Blau) angeschlossen pir = MotionSensor(17) # PIR-Sensor an GPIO-Pin 17 angeschlossen
Das Programm betritt eine Endlosschleife, in der es kontinuierlich nach Bewegungen sucht und die PIR-Sensordaten verwendet. Wenn eine Bewegung erkannt wird, wird die LED auf Gelb (Mischung aus Rot und Grün) eingestellt. Wenn keine Bewegung erkannt wird, wird die LED auf Blau umgestellt. Eine kurze Schlafphase von 0,1 Sekunden reduziert die CPU-Last.
try: # Kontinuierlich auf Bewegungen achten und die LED-Farbe aktualisieren while True: if pir.motion_detected: # Überprüfen auf vom PIR-Sensor erkannte Bewegung led.color = (1, 1, 0) # LED-Farbe auf Gelb einstellen (Rot + Grün) else: led.color = (0, 0, 1) # LED-Farbe auf Blau einstellen (nur Blau) sleep(0.1) # Kurze Verzögerung zur Reduzierung der CPU-Last except KeyboardInterrupt: # Behandeln Sie KeyboardInterrupt (Ctrl+C) zum eleganten Beenden der Schleife pass