Aus Python ein Shell skript aufrufen
Verfasst: Mittwoch 24. August 2016, 08:51
Hallo
ich möchte gerne mit dem Raspberry Pi 3 ein Bewegungsmelder betreiben.
Im Netz gibt es genügent fertige Test Skripte in Python.
Leider kenne ich mich noch garnicht mit Python aus.
Das Skript was ich mir ausgesucht habe
ich habe mit der Zeile
subprocess.call("/usr/local/bin/webcam.sh")
versucht das Shellskript zu starten.
[codebox=bash file=Unbenannt.bsh]#!/bin/bash
ffmpeg -f video4linux2 -s 640x480 -r 1 -i /dev/video0 -vframes 1 -f image2 /home/pi/webcam/image.jpg
[/code]
Was mir dann ein Bild macht.
Leider kommt die Meldung
[codebox=text file=Unbenannt.txt]pi@raspberrypi:/usr/local/bin $ ./bewegungsmelder2.py
File "./bewegungsmelder2.py", line 43
subprocess.call("/usr/local/bin/webcam.sh")
^
IndentationError: unexpected indent[/code]
Kann mir da jemand helfen?
Danke
ich möchte gerne mit dem Raspberry Pi 3 ein Bewegungsmelder betreiben.
Im Netz gibt es genügent fertige Test Skripte in Python.
Leider kenne ich mich noch garnicht mit Python aus.
Das Skript was ich mir ausgesucht habe
Code: Alles auswählen
#!/usr/bin/python
# Import der Python libraries
import RPi.GPIO as GPIO
import time
import datetime
import subprocess
# Wir verwenden den Board Mode, Angabe der PIN Nummern anstelle der GPIO BCM Nummer
GPIO.setmode(GPIO.BOARD)
# GPIO definieren, 7 da bei mir der Sensor auf Pin7 steckt
GPIO_PIR = 7
print "Bewegungsmelder Test (CTRL-C zum Beenden)"
print "========================================="
# GPIO als "Input" festlegen
GPIO.setup(GPIO_PIR,GPIO.IN)
Current_State = 0
Previous_State = 0
try:
print "%s: Sensor initialisieren ..." % datetime.datetime.now()
# Warten bis Sensor sich meldet
while GPIO.input(GPIO_PIR)==1:
Current_State = 0
print "%s: Fertig! Warte auf Bewegung..." % datetime.datetime.now()
# Schleife bis CTRL+C
while True :
#Status von Sensor auslesen
Current_State = GPIO.input(GPIO_PIR)
if Current_State==1 and Previous_State==0:
print " %s: Bewegung erkannt!" % datetime.datetime.now()
subprocess.call("/usr/local/bin/webcam.sh")
Previous_State=1
elif Current_State==0 and Previous_State==1:
print " %s: Fertig! Warte auf Bewegung..." % datetime.datetime.now()
Previous_State=0
time.sleep(0.01)
except KeyboardInterrupt:
print " Exit"
GPIO.cleanup()
subprocess.call("/usr/local/bin/webcam.sh")
versucht das Shellskript zu starten.
[codebox=bash file=Unbenannt.bsh]#!/bin/bash
ffmpeg -f video4linux2 -s 640x480 -r 1 -i /dev/video0 -vframes 1 -f image2 /home/pi/webcam/image.jpg
[/code]
Was mir dann ein Bild macht.
Leider kommt die Meldung
[codebox=text file=Unbenannt.txt]pi@raspberrypi:/usr/local/bin $ ./bewegungsmelder2.py
File "./bewegungsmelder2.py", line 43
subprocess.call("/usr/local/bin/webcam.sh")
^
IndentationError: unexpected indent[/code]
Kann mir da jemand helfen?
Danke