Hi,
ich habe mir an meine PI einen Bewegungsmelder und die PiCam angeschlossen, und möchte jetzt bei einer erkannten Bewegung ein Bild machen über python.
Leider ist es so, dass ich nur ein Bild machen kann. Die Camera scheint danach nicht mehr freigegeben zu werden, denn die LED der Camera leuchtet danach solange bis ich das Python-Script mit STRG-C abbreche.
Die erste JPG-Datei wird auch erstellt und wie im Script zu sehen per FTP hochgeladen. Wenn dann das zweite Bild gemacht werden soll, dann kann die Funktion logischerweise nicht mehr auf die Cam zugreifen. Habe ich einen Fehler gemacht?
Mit Raspistill kann ich aber problemlos ein bild machen, und die LED geht auch wieder aus.
Hier das script:
import RPi.GPIO as GPIO
from pyrowl import Pyrowl
import time
import os
import picamera
from PIL import Image
import re
import ftplib
import socket
hostname = "www.meinftp.de"
username = "user"
password = "12345678"
ftppath = "/www/pics/"
loclpath = "/tmp/"
picname = "image"
spicname = "simage"
picext = ".jpg"
imcount = 1
GPIO.setmode(GPIO.BOARD)
PIR_PIN=26
GPIO.setup(PIR_PIN, GPIO.IN)
p=None
p=Pyrowl("denschreibichhiernichtrein:-)")
def getpic(filename):
camera=picamera.PiCamera()
camera.resulution = (1920, 1080)
camera.capture(filename)
del camera
return True
def upload(filename):
mftp=ftplib.FTP(hostname)
mftp.login(username, password)
mftp.cwd(ftppath)
file=open(loclpath+filename, "rb")
mftp.storbinary("Stor "+filename, file)
file.close()
mftp.quit()
def MOTION(PIR_PIN):
os.system("echo \"Bewegung erkannt\"")
lt = time.localtime()
zeit = time.strftime("%d.%m.%Y %H:%M:%S", lt)
imagefile=picname+str(imcount)+picext;
getpic(loclpath+imagefile)
upload(imagefile)
res=p.push("Alarmsystem", 'Bewegung erkannt um '+zeit, 'Buero', batch_mode=False)
print "PIR Testscript (STRG+C zum beenden)"
time.sleep(2)
print "Bereit"
try:
GPIO.add_event_detect(PIR_PIN, GPIO.RISING, callback=MOTION)
while 1:
time.sleep(100)
except KeyboardInterrupt:
print "Beende"
GPIO.cleanup()
Alles anzeigen
Kennwörter, Username, FTP-Site und Keys hab ich natürlich gegen Dummies ersetzt
Gruß Dieter