Mar-30-2017, 11:12 AM
I'm using the following script, wich is a timelapse script. It works, no problem. It starts on my raspberry 3 (raspian) by a cronjob on (re)boot.
Because i'm not intrested in photo of a dark night (say between 10 pm and 6 am) i changed this:
total script:
Because i'm not intrested in photo of a dark night (say between 10 pm and 6 am) i changed this:
# Run a WHILE Loop of infinitely while True: d = datetime.now() if d.hour < 99:in this:
# Run a WHILE Loop of infinitely while True: d = datetime.now() if d.hour > 6 and d.hour < 22:When it starts at say 3 pm, it runs no problem till 22 but then it does not start again the next morning at 6
total script:
#!/usr/bin/env python # # raspiLapseCam.py # # Created by James Moore on 28/07/2013. # Modified by James Moore on 13/11/2013. # Copyright (c) 2013 Fotosyn. All rights reserved. # # Raspberry Pi is a trademark of the Raspberry Pi Foundation. # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # 1. Redistributions of source code must retain the above copyright notice, this # list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright notice, # this list of conditions and the following disclaimer in the documentation # and/or other materials provided with the distribution.> # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # The views and conclusions contained in the software and documentation are those # of the authors and should not be interpreted as representing official policies, # either expressed or implied, of the FreeBSD Project. # This script sets up and runs a Python Script which, at intervals invokes a capture # command to the Raspberry Pi camera, and stores those files locally in a dynamically # named folder. # To invoke, copy this script to an easy to find file location on your Raspberry Pi # (eg. /home/pi/), log into your Raspberry Pi via terminal and type: # # sudo python /your/file/location/raspiLapseCam.py (add &) if you wish to run as a # background task. A process ID will be shown which can be ended with # sudo kill XXXX (XXXX = process number) # Based on your settings the application will now begin capturing images # saving them to your chosen file location (same as current location of this file as default. # Import some frameworks import os import time import RPi.GPIO as GPIO import logging from datetime import datetime # Grab the current datetime which will be used to generate dynamic folder names d = datetime.now() initYear = "%04d" % (d.year) initMonth = "%02d" % (d.month) initDate = "%02d" % (d.day) initHour = "%02d" % (d.hour) initMins = "%02d" % (d.minute) # Define the location where you wish to save files. Set to HOME as default. # If you run a local web server on Apache you could set this to /var/www/ to make them # accessible via web browser. folderToSave = "/home/timelapse/timelapse_" + str(initYear) + str(initMonth) + str(initDate) + str(initHour) + str(initMins) os.mkdir(folderToSave) # Set up a log file to store activities for any checks. logging.basicConfig(filename=str(folderToSave) + ".log",level=logging.DEBUG) logging.debug(" R A S P I L A P S E C A M -- Started Log for " + str(folderToSave)) logging.debug(" Support at ") # Set the initial serial for saved images to 1 fileSerial = 1 # Run a WHILE Loop of infinitely while True: d = datetime.now() if d.hour < 99: # Set FileSerialNumber to 000X using four digits fileSerialNumber = "%04d" % (fileSerial) # Capture the CURRENT time (not start time as set above) to insert into each capture image filename hour = "%02d" % (d.hour) mins = "%02d" % (d.minute) # Define the size of the image you wish to capture. imgWidth = 800 # Max = 2592 imgHeight = 600 # Max = 1944 print " ====================================== Saving file at " + hour + ":" + mins # Capture the image using raspistill. Set to capture with added sharpening, auto white balance and average metering mode # Change these settings where you see fit and to suit the conditions you are using the camera in os.system("raspistill -w " + str(imgWidth) + " -h " + str(imgHeight) + " -o " + str(folderToSave) + "/" + str(fileSerialNumber) + "_" + str(hour) + str(mins) + ".jpg -sh 40 -awb auto -mm average -v") # Write out to log file logging.debug(' Image saved: ' + str(folderToSave) + "/" + str(fileSerialNumber) + "_" + str(hour) + str(mins) + ".jpg") # Increment the fileSerial fileSerial += 1 # Wait 60 seconds (1 minute) before next capture time.sleep(60) else: # Just trapping out the WHILE Statement print " ====================================== Doing nothing at this time"