Raspberry Pi Pico: Bewegungsmelder mit PIR Motion Detector HC-SR501 (Alarmanlage)

Ein PIR Motion Detector ist ein Bewegungssensor, der sich in den meisten Bewegungsmeldern befindet. Er ist so konstruiert, dass er Temperaturänderungen erkennen kann. Typischerweise von warmen Objekten, die sich bewegen müssen.

Die Idee ist jetzt, den PIR Motion Detector vom Typ HC-SR501 mit dem Raspberry Pi Pico zu verbinden und als typischen Anwendungsfall eines Bewegungsmelders zu verwenden. Beispielsweise, um ihn im Rahmen einer Alarmanlage zu einzusetzen.

Der PIR Motion Detector HC-SR501 hat einen Signal-Ausgang, der zwei Zustände annehmen kann. Der eine Zustand ist der Ruhezustand. Der andere Zustand, der Erkennungszustand, signalisiert eine erkannte Bewegung. Danach fällt der Zustand wieder in den Ruhezustand zurück.
Im folgenden Aufbau und Programmcode geht es darum, bei einer Bewegung den Wechsel vom Ruhezustand in den Erkennungszustand auszuwerten und einen Alarm zu melden.

Wenn das Deine ersten Versuche mit dem HC-SR501 sind, dann solltest Du Dich zuerst über diesen PIR-Sensor und seine Besonderheiten informieren. Außerdem empfiehlt es sich zuerst mit der Bewegungserkennung des HC-SR501 zu experimentieren und herauszufinden, was er leisten kann.

Aufbau und Bauteile

Raspberry Pi Pico: Bewegungserkennung mit PIR Motion Detector HC-SR501

Raspberry Pi Pico HC-SR501
Pin 36 3V3_OUT, +3,3V VCC
Pin 38 GND GND
Pin 29 GPIO 22 OUT

Programmcode

Am Anfang des Programmcodes werden die GPIOs initialisiert. Danach wird ein eine kurze Zeit gewartet, damit der PIR-Sensor in den Ruhezustand kommen kann und nicht gleich am Anfang Fehlalarme produziert.
Danach folgen zwei Funktionen. Die erste Funktion wird aufgerufen, wenn ein Bewegungszustand erkannt wird. Die zweite Funktion beinhaltet, was genau bei einem Alarm passieren soll. In diesem Fall geht der Summer an und auch wieder aus. Außerdem blinkt die Onboard-LED. Denkbar wäre es, dass hier auch etwas anderes passiert.
Der Programmcode endet mit der Initialisierung eines Interrupts, der ausgelöst wird, wenn der PIR-Sensor in den Bewegungszustand wechselt. Dabei wird die erste Funktion ausgelöst.

# Bibliotheken laden
from machine import Pin
from utime import sleep

# Initialisierung des PIR-Moduls
pir = Pin(22, Pin.IN, Pin.PULL_DOWN)

# Initialisierung der Onboard-LED
led = Pin(25, Pin.OUT, value=0)

# Initialisierung für Buzzer
buz = Pin(16, Pin.OUT, value=0)

# PIR-Ruhezustand abwarten
print('Warten')
print()
sleep(3)
print('Bereit')
print()

# Funktion bei Bewerbungserkennung
def pir_handler(pin):
    # PIR-Sensor-Zustand lesen
    pir_value = pir.value()
    if pir_value == 1:
        # Alarm auslösen
        alarm()
        # Warten, bis sich der Bewegungssensor beruhigt hat
        sleep(6)
        print('Ruhezustand')
        print()

def alarm():
    # Text-Ausgabe
    print('Bewegung erkannt')
    print()
    # Buzzer ein
    buz.on()
    # LED blinken lassen
    for i in range(10):
        led.toggle()
        sleep(0.2)
    # Buzzer aus
    buz.off()

# Initialisierung Interrupt für die Bewegungserkennung
pir.irq(trigger=Pin.IRQ_RISING, handler=pir_handler)

Troubleshooting

Ein PIR-Sensor weist eine gewisse Trägheit auf. Desweiteren hat der Sensor HC-SR501 zwei Potentiometer. Mit dem einen stellt man die Reichweite der Erkennung ein und das andere nimmt Einfluss auf die Zeit, die der Erkennungszustand gehalten wird.
Es empfiehlt sich, bei Problemen, die Bewegungserkennung mit dem HC-SR501 auszuprobieren.

Darf es ein bisschen mehr sein?

Mit der Bewegungserkennung eines PIR-Sensors kann man noch einiges andere anstellen. Es gibt weitere mehr oder weniger sinnvolle Anwendungen.

Weitere verwandte Themen:

Teilen:

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen Online-Workshop buchen

Programmieren mit dem Raspberry Pi Pico
Online-Workshop

Hardware-nahes Programmieren mit dem Raspberry Pi Pico

Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.

Online-Workshop buchen

Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)

Zum PicoTalk

 

Elektronik-Set Pico Edition
Elektronik-Set Pico Edition

Raspberry Pi Pico: Hardware-nahes Programmieren mit MicroPython

Leichter Einstieg mit All-in-one-Set zum sofort Loslegen, um eigene Steuerungen programmieren.

Elektronik-Set jetzt bestellen

 

Elektronik-Set Pico WLAN Edition
Elektronik-Set Pico WLAN Edition

Raspberry Pi Pico W: IoT und Smart Home mit WLAN und MQTT

Betreibe Deinen Raspberry Pi Pico W als drahtloser Sensor in Deinem WLAN, versende E-Mails mit Daten und kommuniziere per MQTT im Internet of Things oder Smart Home.

Elektronik-Set jetzt bestellen

 

Elektronik-Set Sensor Edition
Elektronik-Set Sensor Edition

Erweiterung zu den Elektronik-Sets Pico Edition und Pico WLAN Edition

Elektronik-Set mit den beliebtesten Sensoren zum Messen von Temperatur, Helligkeit, Bewegung, Lautstärke und Entfernung.

Elektronik-Set jetzt bestellen

 

Elektronik-Set Eingabe Ausgabe Edition
Elektronik-Set Eingabe Ausgabe Edition

Erweiterung zu den Elektronik-Sets Pico Edition und Pico WLAN Edition

Damit kannst Du MP3-Dateien abspielen, eine Stoppuhr bauen, einen Servo-Motor mit Drehschalter oder Joystick steuern, Lichteffekte mit einem WS2812-LED-Lichtstreifen erzeugen, Schalten mit einem Relais und Signalisieren mit einem Vibrationsmotor.

Elektronik-Set jetzt bestellen