PIR Motion Sensor in FHEM integrieren
Der günstige Bewegungsmelder PIR (= Passive Infrared Sensor) lässt sich Problemlos an die GPIO Ports des Raspberrys anschließen und über eine Python Skript oder direkt über FHEM auswerten. Durch kleine Stellschrauben (Potis) kann man außerdem die Sensitivität und Dauer des Signals einstellen. Über einen kleinen Jumper stellt man den Betriebsmodus ein (dazu weiter unten mehr)
Gliederung
- Anschluss
- An- Ausbefehle des Displays
- Skript für die automatische Displaysteuerung
- Autostart des Skripts
- Anbindung an FHEM
- Einstellungsmöglichkeiten
Anschluss
Achtung: Pin Nummer und GPIO Nummer sind verschieden (siehe Diagramm rechts)
VCC = an einen der 5V Pins (z.B. Pin 02 oder Pin 04)
OUT = an beliebigen GPIO Pin, in meinem Fall 22 (=GPIO 25)
GND = an irgendeinen GND Anschluss
Schließe die Pins des PIR einfach an die entsprechenden Pins am Raspberry. Hierfür verwendest du am besten Jumper Kabel.
Man kann sich die Funktionsweise des PIR Motion dann in etwas so vorstellen: Der PIR bekommt dauerhaft Spannung vom 5v Pin. Wird Bewegung erkannt, lässt der PIR Motion ein wenig davon durch (OUT). Diese Spannung wird wiederum vom Raspberry GPIO 25 erkannt. Dem Raspberry müssen wir aber noch mitteilen, was passiert, wenn Spannung erkannt wurde.
In meinem Fall möchte ich damit das offizielle Raspberry Pi Touch Display an und ausschalten.
An- Ausbefehle des Displays
Man kann das Display über die Konsole wie folgt aktiveren oder deaktivieren
Aus:
sudo sh -c " echo 1 > /sys/class/backlight/rpi_backlight/bl_power"
An:
sudo sh -c " echo 0 > /sys/class/backlight/rpi_backlight/bl_power"
Alternative Befehle
Aus:
echo 1 | sudo tee /sys/class/backlight/rpi_backlight/bl_power
An:
echo 0 | sudo tee /sys/class/backlight/rpi_backlight/bl_power
Skript für die automatische Displaysteuerung
Wir erstellen ein Python Skript, das die Befehle automatisch ausführt wenn der PIR Sensor eine Bewegung erkannt hat:
Neuen Ordner mit dem Namen „Display“ erstellen
sudo mkdir display
In den Ordner „Display“ wechseln
cd display
im Ordner „Display“ ein Python Skript mit dem Namen „pirdisplay.py“ erstellen
sudo nano pirdisplay.py
mit folgenden Inhalt füllen:
import RPi.GPIO as GPIO import time import os sensor = 25 GPIO.setmode(GPIO.BCM) GPIO.setup(sensor, GPIO.IN, GPIO.PUD_DOWN) previous_state = False current_state = False while True: time.sleep(0.1) previous_state = current_state current_state = GPIO.input(sensor) if current_state != previous_state: new_state = "HIGH" if current_state else "LOW" print("GPIO pin %s is %s" % (sensor, new_state)) if current_state: # new os.system("echo 0 | sudo tee /sys/class/backlight/rpi_backlight/bl_power") else: os.system("echo 1 | sudo tee /sys/class/backlight/rpi_backlight/bl_power")
Python Skript ausführbar machen
sudo chmod +x /home/pi/display/pirdisplay.py
Autostart des Skripts
den Pfad des Skripts in die Datei rc.local eintrangen
sudo nano /etc/rc.local
folgendes vor exit0 einfügen
sudo python /home/pi/display/pirdisplay.py &
Achtung: Das & muss unbedingt dabei sein (Das & bewirkt, dass die rc.local weiter abgearbeitet und nicht darauf gewartet wird, dass das Script fertig ist. Bei einem Script mit Endlosschleife würde sonst ewig gewartet werden und der Pi bleibt beim Starten hängen.)
Neustart des Raspberry
sudo reboot –h now
Fertig
Um den Prozess irgendwann manuell zu beenden:
sudo pkill –f pirdisplay.py
Anbindung an FHEM
Achtung: Schaue dir zuerst meinen Beitrag zu GPIO-Ports am Raspberry mit FHEM an.
PIR am GPIO Port 25 in FHEM anlegen (Ersetze die GPIO Port Nummer mit deiner eigenen)
define rpi_PIR RPI_GPIO 25 attr rpi_PIR direction input attr rpi_PIR interrupt both
Einstellungsmöglichkeiten
Der PIR Motion Sensor hat 2 Stellschrauben (Poti) und einen Jumper. Damit lassen sich folgende Einstellungen vornehmen
Jumper bestimmt das Triggering Verhalten von Data
- Position 1 – Bei Bewegung wird alle Sekunde Data auf High gesetzt (Auf dem Bild zu sehen)
- Position 2 – Bei Bewegung bleibt Data auf High
Stellschrauben
- Time bestimmt wie lange Data auf High bleibt wenn Bewegung erkannt wurde
- Sensitive bestimmt die Sensitivität der Bewegungserkennung
Ähnliche Beiträge
- BMP180 Luftdrucksensor in FHEM integrieren
- GPIO Sensor / Aktor in FHEM integrieren
- HomeMatic CCU2 mit YAHM auf Raspberry Pi 3
- QNAP NAS mit SNMP in FHEM einbinden
- deCONZ: Hue-Bridge auf dem Raspberry Pi emulieren
- Kostenloses FHEM Backup in die Cloud (z.B. Dropbox)
- FreeNAS / TrueNAS für PLEX im HP Microserver Gen8 + Steuerung durch FHEM
- Intel NUC: Proxmox mit Ubuntu VM für FHEM
- Max2Play als Multiroom Audiosystem
- Raspberry Zero GPIO Pinleiste löten
[…] PIR Motion Sensor in FHEM integrieren […]
[…] PIR Motion Sensor in FHEM integrieren […]