I looked and there are offtheshelfe solution, but they are rather expensive and not as fun to build as a RPi setup
So I have the newest RPi and bought the PiCam.
I found this project : http://www.fotosyn.com/timelapse/ and had a go with the code.
Except for a small problem with the Print statement, I got it working.
The RPi setup will be left unattended for 1-2 weeks in a box.
The change I want to make is so it only takes pictures if its within a certain timeframe (to save space on the memory card)
The problem I cant see to figure out how to solve (Im am new at this) is how to set it up so the loop in the code will only run if its between 8:00AM and 4:00PM
This is the code now :
What would you suggest?
Code: Select all
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 http://fotosyn.com/timelapse/") # 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"