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.
- Mehr Informationen zum PIR Motion Detector HC-SR501
- Experimente mit der Bewegungserkennung mit PIR Motion Detector HC-SR501
Aufbau und Bauteile
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.
- Mehr Informationen zum PIR Motion Detector HC-SR501
- Experimente mit der Bewegungserkennung mit PIR Motion Detector HC-SR501
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.
- Raspberry Pi Pico: Bewegung erkennen und anzeigen mit PIR Motion Detector (HC-SR501)
- Raspberry Pi Pico: Anwesenheitserkennung für ein Display mit PIR Motion Detector (HC-SR501)
Weitere verwandte Themen:
- Raspberry Pi Pico: Helligkeit messen mit Fotowiderstand (Helligkeitsmessung)
- Raspberry Pi Pico: Temperatur mit dem integrierten Temperatursensor messen und anzeigen
- Raspberry Pi Pico: Automatisches Nachtlicht mit PIR Motion Sensor HC-SR501 und RGB-LED WS2812
Teilen:
Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython
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
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.
Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)
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 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 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 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.