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

Schnell und einfach alle Bauteile zusammen bestellen

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 time 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:

Frag Elektronik-Kompendium.de

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

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

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

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren