Showing
1 changed file
with
40 additions
and
14 deletions
1 | import os | 1 | import os |
2 | -import boto3 | 2 | +#import boto3 |
3 | -import botocore | 3 | +#import botocore |
4 | import time | 4 | import time |
5 | import datetime | 5 | import datetime |
6 | -from django.core import serializers | 6 | +#from django.core import serializers |
7 | 7 | ||
8 | -from api.models import Video, Record | 8 | +#from api.models import Video, Record |
9 | -from api.serializers import VideoSerializer, RecordSerializer | 9 | +#from api.serializers import VideoSerializer, RecordSerializer |
10 | ''' | 10 | ''' |
11 | -import picamera | ||
12 | from boto3.session import Session | 11 | from boto3.session import Session |
13 | from src.settings import AWS_REGION, S3_ACCESS_URL, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_STORAGE_BUCKET_NAME | 12 | from src.settings import AWS_REGION, S3_ACCESS_URL, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_STORAGE_BUCKET_NAME |
14 | ''' | 13 | ''' |
14 | +import RPi.GPIO as GPIO | ||
15 | +from picamera import PiCamera | ||
16 | + | ||
15 | 17 | ||
16 | def record() : | 18 | def record() : |
17 | - path = '/home/pi/recorded' # 저장할 경로 | 19 | + path = '/home/pi/recorded' # save path |
18 | state = True | 20 | state = True |
21 | + #''' | ||
22 | + GPIO.setmode(GPIO.BCM) | ||
23 | + PIR_PIN = 7 | ||
24 | + GPIO.setup(PIR_PIN, GPIO.IN) | ||
25 | + camera = PiCamera() | ||
26 | + #''' | ||
19 | 27 | ||
28 | + try: | ||
20 | while state : | 29 | while state : |
21 | - target = Record.objects.get(id = 1) | 30 | + #target = Record.objects.get(id = 1) |
22 | - serializer = RecordSerializer(target, many = False) | 31 | + #serializer = RecordSerializer(target, many = False) |
23 | - state = serializer.data['recording'] | 32 | + #state = serializer.data['recording'] |
24 | - with picamera.Picamera() as camera : | 33 | + if GPIO.input(PIR_PIN): # motion detected |
34 | + # take a video | ||
25 | camera.resolution = [320,240] | 35 | camera.resolution = [320,240] |
36 | + camera.start_preview() | ||
26 | now = datetime.datetime.now() | 37 | now = datetime.datetime.now() |
27 | vid_name = now.strftime('%Y%m%d-%H%M%S') | 38 | vid_name = now.strftime('%Y%m%d-%H%M%S') |
28 | - | ||
29 | vid_path = path + '/' + vid_name + '.h264' | 39 | vid_path = path + '/' + vid_name + '.h264' |
40 | + thumbnail_path = path + '/' + vid_name + '.jpg' | ||
30 | camera.start_recording(output = vid_path) | 41 | camera.start_recording(output = vid_path) |
31 | - camera.wait_recording(10) | 42 | + time.sleep(1) |
43 | + camera.capture(thumbnail_path) | ||
44 | + time.sleep(5) | ||
32 | camera.stop_recording() | 45 | camera.stop_recording() |
46 | + camera.stop_preview() | ||
33 | 47 | ||
48 | + # s3 upload | ||
49 | + ''' | ||
34 | s3 = boto3.client('s3', region_name = 'ap-northeast-2') | 50 | s3 = boto3.client('s3', region_name = 'ap-northeast-2') |
35 | s3.upload_file(Filename = vid_path, Bucket = S3_STORAGE_BUCKET_NAME, Key = vid_name) | 51 | s3.upload_file(Filename = vid_path, Bucket = S3_STORAGE_BUCKET_NAME, Key = vid_name) |
36 | 52 | ||
... | @@ -39,5 +55,15 @@ def record() : | ... | @@ -39,5 +55,15 @@ def record() : |
39 | uploadVideo['created'] = now | 55 | uploadVideo['created'] = now |
40 | serializer = VideoSerializer(data = uploadVideo) | 56 | serializer = VideoSerializer(data = uploadVideo) |
41 | serializer.save() | 57 | serializer.save() |
42 | - | 58 | + ''' |
59 | + print(vid_path, "upload success") | ||
43 | os.remove(vid_path) | 60 | os.remove(vid_path) |
61 | + else: | ||
62 | + camera.stop_preview() | ||
63 | + except KeyboardInterrupt: | ||
64 | + print("quit") | ||
65 | + GPIO.cleanup() | ||
66 | + | ||
67 | + | ||
68 | +if __name__ == '__main__': | ||
69 | + record() | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment