pir-sensor-hc-sr-501-passive-infrared-sensor-funktion-anschließen-electreeks

Anschließen des PIR Sensors HC-SR-501 und Exkurs in die Funktionsweise

Nach dieser Lektion weißt du wie der PIR Sensor HC-SR501 von Electreeks aufgebaut ist, wie er funktioniert und wie du Ihn in dein Skript einbauen kannst. Den Anschluss und die Programmierung lernst du an einer einfachen LED-Schaltung kennen. Viel Spaß.

Einführung

Der Bewegungssensor ist im häuslichen Gebrauch wohl der populärste Sensor. Eingesetzt in der Lichtsteuerung, macht er den Lichtschalter überflüssig und schaltet sobald man sich in dessen Erkennungsradius bewegt.

Wir werden es nachmachen und mit dem Pyrosensor über den Raspberry Pi eine LED ansteuern. Die LED schaltet, sobald eine Bewegung erkannt wurde. Wahrlich nicht der praktischste Einsatzfall, aber zum Kennenlernen allemal ausreichend.

Aber mit dem kleinen Sensor kann man noch mehr anstellen als Lichter an- und auszuschalten. Eingebettet in ein hübsches Programm, kannst du ihn für verschiedene Dinge einsetzen. Wie wäre es zum Beispiel in einem kleinen Sicherheitssystem?

Sämtliche technische Daten zum Sensor findest du im Datenblatt auf unserer Produktseite in unserem Shop.

Was brauchst du?

Um später die Schaltung nachbauen zu können, benötigst du mindestens folgende Dinge:

PIR-sensor-anschließen-installieren-hc-sr-501-pyrosensor-electreeks

Solltest du noch keinen Raspberry Pi mit Betriebssystem besitzen, erfährst du auf unserer Anleitung wie du das Betriebssystem installieren kannst.

Aufbau des HC-SR-501 PIR-Sensors

Wichtigstes Bauelement dieses Moduls ist der pyroelektrische Sensor. HC-SR-501-PIR-Motion-Sensor

Er befindet sich zentral auf der Platine unter der weißen abnehmbaren Sammellinse.

An der Unterseite befinden sich zwei Potentiometer (Orangefarbene Drehknöpfe), ein Jumper und drei Anschlüsse:

1. VCC – Spannungsversorgung

2. OUT – Ausgangssignal

3. GND – Masse

Die Beschriftung findest du unter der Sammellinse.

 

Funktionsweise

Der Begriff PIR ist eine Abkürzung und steht für „passive infrared“. Daraus lässt sich entnehmen, dass es sich hierbei um einen passiven Sensor handelt. Er sendet also keine Signale aktiv aus, um etwas zu erkennen. 

Stattdessen reagiert dieser Pyro-Sensor auf Wärmestrahlung, speziell auf infrarote Strahlung. Er besteht dabei im groben aus zwei nebeneinander oder übereinander angeordneten Metallfolien (Elektroden), welche elektrisch geladen sind.

Bewegt sich nun ein Mensch, oder ein Tier oder auch nur ein heißer Gegenstand durch den Aktionsradius des Bewegungssensor-Moduls, so trifft die infrarote Wärmestrahlung über die weiße Sammellinse und die Linse des Pyroelements auf eine der beiden Folien des Pyro-Sensors und erzeugt dort eine minimale Ladungsänderung der Teilchen. Die nun daraus resultierende Ladungsdifferenz zwischen den beiden Metallfolien wird ausgewertet, verstärkt und weitergegeben. Am OUT-Ausgang wird ein Signal erzeugt, welches dann als Schaltsignal dient.

Die beiden Metallfolien haben den zusätzlichen Vorteil, dass sie nur Wärmedifferenzen erkennen, also Bewegungen.Wirkt auf den gesamten Sensor eine gleichbleibende Wärmestrahlung ein, entsteht keine Spannungsdifferenz zwischen den Metallfolien. Das Sensor-Modul schaltet nicht. 

pir-motion-sensor-bewegungsmelder-hc-sr-501-raspberry-pi-arduino-electreeks

Potentiometer- und Jumper-Steckbrückeneinstellung

Mit dem linken Potentiometer kann man die Haltezeit einstellen, also wie lange das Signal am Ausgang nach dem Erkennen einer Bewegung gehalten wird.

Das rechte Potentiometer dient zur Einstellung der Empfindlichkeit. Er dient zur Reichweiteneinstellung und zeitgleich zur Rauschreduzierung. 

Mit der Jumper Steckbrücke kann man zwei verschiedene Schaltprogramme des Bewegungssensors einstellen. 

In der vorderen Steckposition (Modus L) sendet der Sensor bei dem Erkennen einer Bewegung ein Signal aus und fällt nach Ablauf der eingestellten Haltezeit ab, unabhängig davon ob in der Zwischenzeit noch eine Bewegung erkannt wurde.

In der hinteren Steckposition (Modus H) sendet der Sensor ebenfalls ein Signal abhängig von der eingestellten Haltezeit aus. Wird jedoch innerhalb der Haltezeit erneut eine Bewegung registriert, setzt sich die Haltezeit zurück und der Timer beginnt von vorn. Das Signal fällt erst wieder ab, wenn innerhalb der Haltezeit keine Bewegung mehr registriert wurde.  

Installation und Anschluss

Wie oben schon einmal erwähnt, bauen wir eine einfache LED-Lichtschaltung für den HC-SR-501 auf, um die zu erklären, wie man den Sensor anschließt und programmiert. Was du dazu benötigst, findest du weiter oben unter “Was brauchst du?”.

Die Schaltung kannst du nach folgender Zeichnung aufbauen:

HC-SR501-PIR-Bewegungssensor-Sensor-Anschluss-Schaltung-LED

 

Erklärung zur Schaltung:

Der Sensor wird an VCC mit 5V DC über den Raspberry Pi versorgt. GND des Sensors wird auf einen GND des Pi geschlossen.

Der OUT-Ausgang des Sensors wird an einen beliebigen GPIO Anschluss geschlossen.

Die LED schaltest du in Reihe mit dem Widerstand auf einen anderen GPIO und GND.

Der Sensor hängt bei uns im Beispiel am GPIO 23 und die LED am GPIO 24.

Programmierung des Raspberry PIR

Im Folgenden findest du den Programmcode für die Bewegungserkennung. Die Kommentare im Code, geben dir Hinweise zu den einzelnen Befehlszeilen.

Erstelle als erstes eine neue Datei mit dem Namen „electreeks_bewegungssensor.py“

Öffne die Datei mit einem Editor oder IDLE deiner Wahl und trage dort den Programmcode ein:

#Import der Python Module
import RPi.GPIO as GPIO
import time

#Variablen definieren
PIR_Sensor = 23
LED = 24

#GPIOs mit GPIO-Nummer ansprechen
GPIO.setmode(GPIO.BCM)

#Ein- und Ausgaenge definieren
GPIO.setup(PIR_Sensor, GPIO.IN)
GPIO.setup(LED, GPIO.OUT)

print("Das Programm wurde gestartet.")

#Callback Funktion erstellen
def Bewegung(PIR_Sensor):
    print("Dein Electreeks Sensor hat eine Bewegung erkannt!")
    GPIO.output(LED, True)
    time.sleep(5)
    GPIO.output(LED, False)

#Hauptprogramm starten
if __name__ == "__main__":
    try:
        #Sobald eine Bewegung erkannt wurde, fuehre die Funktion aus.
        GPIO.add_event_detect(PIR_Sensor, GPIO.RISING, callback=Bewegung)
        while True:
            time.sleep(0)
        
    #Programm beenden mit Strg + c
    except KeyboardInterrupt:
        print ("Das Programm wurde beendet.")
        GPIO.cleanup()

Wenn du fertig bist, speicher deine Änderungen. Führe nun mit dem Terminal auf deinem Raspberry Pi das Programm mit dem Befehl: sudo python electreeks_bewegungssensor.py aus.

Wenn alles geklappt hat, muss sich bei einer Bewegung die LED für 5 Sekunden einschalten und im Terminal der Kommentar „Dein Electreeks Sensor hat eine Bewegung erkannt!“ erscheinen. Das geht solange, bis der PIR keine Bewegung mehr erkennt. Du kannst das Programm jederzeit mit Strg + c beenden.

Jetzt bist du am Zug. Versuch dich auch mal an einer eigenen Schaltung und teil es uns in den Kommentaren mit.

Solltest du noch etwas vermissen, worüber du gern mehr erfahren hättest, lass es uns wissen. Wir passen es gern noch an.

Viel Spaß beim Basteln.

2 Kommentare

  1. Brauche ich für jede Lampe im Garten inkl. Bewegungsmelder auch einen eigenen raspberry pi? Oder lässt sich das über 1 raspberry steuern? Geht das per Funk oder muss ich den ganzen Garten verkabelt?

  2. Super Info. Hat sofort funktioniert. Danke dafür. Ich starte bei jeder Bewegung mit “import os” und bei def mit os.system(‘bash monitor.sh’) ein Script. Aber bei mir wird hier jede 60 Sekunden eine Bewegung erkannt und mein Script gestartet, obwohl es keine Bewegung gibt. Habe ich doch eine Schleife nicht richtig erkannt?

Schreibe einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit * markiert.

Kommentieren