최지우

aws settings lock off

...@@ -32,4 +32,4 @@ class Record(models.Model) : ...@@ -32,4 +32,4 @@ class Record(models.Model) :
32 32
33 class AddDevice(models.Model) : 33 class AddDevice(models.Model) :
34 id = models.IntegerField(primary_key = True) 34 id = models.IntegerField(primary_key = True)
35 - add = models.BooleanField(default = False)
...\ No newline at end of file ...\ No newline at end of file
35 + state = models.BooleanField(default = False)
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -10,12 +10,12 @@ django.setup() ...@@ -10,12 +10,12 @@ django.setup()
10 from django.core import serializers 10 from django.core import serializers
11 from api.models import Video, Record 11 from api.models import Video, Record
12 from api.serializers import VideoSerializer, RecordSerializer 12 from api.serializers import VideoSerializer, RecordSerializer
13 -''' 13 +
14 from boto3.session import Session 14 from boto3.session import Session
15 from src.settings import AWS_REGION, S3_ACCESS_URL, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_STORAGE_BUCKET_NAME 15 from src.settings import AWS_REGION, S3_ACCESS_URL, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_STORAGE_BUCKET_NAME
16 import RPi.GPIO as GPIO 16 import RPi.GPIO as GPIO
17 from picamera import PiCamera 17 from picamera import PiCamera
18 -''' 18 +
19 19
20 def record() : 20 def record() :
21 path = '/home/pi/recorded' # save path 21 path = '/home/pi/recorded' # save path
...@@ -61,7 +61,6 @@ def record() : ...@@ -61,7 +61,6 @@ def record() :
61 vid_time = time.strftime("%M:%S", time.gmtime(time.time()-start_time)) 61 vid_time = time.strftime("%M:%S", time.gmtime(time.time()-start_time))
62 62
63 # s3 upload 63 # s3 upload
64 - '''
65 s3 = boto3.client('s3', region_name = 'ap-northeast-2') 64 s3 = boto3.client('s3', region_name = 'ap-northeast-2')
66 s3.upload_file(Filename = vid_path, Bucket = S3_STORAGE_BUCKET_NAME, Key = vid_name) 65 s3.upload_file(Filename = vid_path, Bucket = S3_STORAGE_BUCKET_NAME, Key = vid_name)
67 s3.upload_file(Filename = thumbnail_path, Bucket = S3_STORAGE_BUCKET_NAME, Key = vid_name + '_thumb') 66 s3.upload_file(Filename = thumbnail_path, Bucket = S3_STORAGE_BUCKET_NAME, Key = vid_name + '_thumb')
...@@ -73,7 +72,6 @@ def record() : ...@@ -73,7 +72,6 @@ def record() :
73 uploadVideo['thumb'] = S3_ACCESS_URL + vid_name + '_thumb' 72 uploadVideo['thumb'] = S3_ACCESS_URL + vid_name + '_thumb'
74 serializer = VideoSerializer(data = uploadVideo) 73 serializer = VideoSerializer(data = uploadVideo)
75 serializer.save() 74 serializer.save()
76 - '''
77 print(vid_path, "upload success") 75 print(vid_path, "upload success")
78 os.remove(vid_path) 76 os.remove(vid_path)
79 else: 77 else:
......
...@@ -17,12 +17,11 @@ from rest_framework.request import Request ...@@ -17,12 +17,11 @@ from rest_framework.request import Request
17 from rest_framework.response import Response 17 from rest_framework.response import Response
18 from rest_framework.authtoken.models import Token 18 from rest_framework.authtoken.models import Token
19 19
20 -"""
21 from boto3.session import Session 20 from boto3.session import Session
22 from src.settings import AWS_REGION 21 from src.settings import AWS_REGION
23 from src.settings import S3_ACCESS_URL 22 from src.settings import S3_ACCESS_URL
24 from src.settings import S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_STORAGE_BUCKET_NAME 23 from src.settings import S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_STORAGE_BUCKET_NAME
25 -""" 24 +
26 import time 25 import time
27 from datetime import datetime, timedelta 26 from datetime import datetime, timedelta
28 import json 27 import json
......
...@@ -124,7 +124,7 @@ USE_TZ = True ...@@ -124,7 +124,7 @@ USE_TZ = True
124 # https://docs.djangoproject.com/en/3.1/howto/static-files/ 124 # https://docs.djangoproject.com/en/3.1/howto/static-files/
125 125
126 STATIC_URL = '/static/' 126 STATIC_URL = '/static/'
127 -""" 127 +
128 AWS_REGION = 'ap-northeast-2' 128 AWS_REGION = 'ap-northeast-2'
129 AWS_SETTINGS = os.path.join(BASE_DIR, '.aws_key.json') 129 AWS_SETTINGS = os.path.join(BASE_DIR, '.aws_key.json')
130 awskey = json.loads(open(AWS_SETTINGS).read()) 130 awskey = json.loads(open(AWS_SETTINGS).read())
...@@ -133,4 +133,3 @@ S3_ACCESS_KEY_ID = awskey['aws']['access_key_id'] ...@@ -133,4 +133,3 @@ S3_ACCESS_KEY_ID = awskey['aws']['access_key_id']
133 S3_SECRET_ACCESS_KEY = awskey['aws']['secret_access_key'] 133 S3_SECRET_ACCESS_KEY = awskey['aws']['secret_access_key']
134 S3_STORAGE_BUCKET_NAME = awskey['aws']['s3_bucket_name'] 134 S3_STORAGE_BUCKET_NAME = awskey['aws']['s3_bucket_name']
135 S3_ACCESS_URL = awskey['aws']['s3_access_url'] 135 S3_ACCESS_URL = awskey['aws']['s3_access_url']
136 -"""
...\ No newline at end of file ...\ No newline at end of file
......
1 +import os
2 +import boto3
3 +import botocore
4 +import time
5 +import datetime
6 +import django
7 +
8 +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'src.settings')
9 +django.setup()
10 +from django.core import serializers
11 +from api.models import Video, Record
12 +from api.serializers import VideoSerializer, RecordSerializer
13 +'''
14 +from boto3.session import Session
15 +from src.settings import AWS_REGION, S3_ACCESS_URL, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_STORAGE_BUCKET_NAME
16 +import RPi.GPIO as GPIO
17 +from picamera import PiCamera
18 +'''
19 +
20 +def record() :
21 + path = '/home/pi/recorded' # save path
22 +
23 + target = Record.objects.get(id = 1)
24 + serializer = RecordSerializer(target, many = False)
25 + state = serializer.data['recording']
26 + #'''
27 + # rpi setting
28 + GPIO.setmode(GPIO.BCM)
29 + pir_pin = 7
30 + GPIO.setup(pir_pin, GPIO.IN)
31 + camera = PiCamera()
32 + #'''
33 +
34 + try:
35 + while state :
36 + target = Record.objects.get(id = 1)
37 + serializer = RecordSerializer(target, many = False)
38 + state = serializer.data['recording']
39 +
40 + if GPIO.input(pir_pin): # motion detected
41 + # take a video
42 + camera.resolution = [320, 240]
43 + camera.start_preview()
44 +
45 + now = datetime.datetime.now()
46 + start_time = time.time()
47 +
48 + vid_name = now.strftime('%Y%m%d-%H%M%S')
49 + vid_path = path + '/' + vid_name + '.h264'
50 + thumbnail_path = path + '/' + vid_name + '.jpg'
51 +
52 + camera.start_recording(output=vid_path)
53 + time.sleep(1)
54 + camera.capture(thumbnail_path)
55 + while GPIO.input(pir_pin) :
56 + print("recoring..")
57 + time.sleep(2)
58 + camera.stop_recording()
59 + camera.stop_preview()
60 +
61 + vid_time = time.strftime("%M:%S", time.gmtime(time.time()-start_time))
62 +
63 + # s3 upload
64 + '''
65 + s3 = boto3.client('s3', region_name = 'ap-northeast-2')
66 + s3.upload_file(Filename = vid_path, Bucket = S3_STORAGE_BUCKET_NAME, Key = vid_name)
67 + s3.upload_file(Filename = thumbnail_path, Bucket = S3_STORAGE_BUCKET_NAME, Key = vid_name + '_thumb')
68 +
69 + uploadVideo = {}
70 + uploadVideo['vid_name'] = vid_name
71 + uploadVideo['created'] = now
72 + uploadVideo['vid_time'] = vid_time
73 + uploadVideo['thumb'] = S3_ACCESS_URL + vid_name + '_thumb'
74 + serializer = VideoSerializer(data = uploadVideo)
75 + serializer.save()
76 + '''
77 + print(vid_path, "upload success")
78 + os.remove(vid_path)
79 + else:
80 + camera.stop_preview()
81 + except KeyboardInterrupt:
82 + print("quit")
83 + GPIO.cleanup()
84 +
85 +
86 +if __name__ == '__main__':
87 + record()