Toggle navigation
Toggle navigation
This project
Loading...
Sign in
cse437_e
/
smartdoorlock-backend
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
김유현
2020-11-14 11:01:18 +0000
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
9806a46d96e0b51b783b3ebb58b32126d97e29b3
9806a46d
1 parent
a5a7580e
edit videorecord (add pir sensor)
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
54 additions
and
28 deletions
api/videorecord.py
api/videorecord.py
View file @
9806a46
import
os
import
boto3
import
botocore
#
import boto3
#
import botocore
import
time
import
datetime
from
django.core
import
serializers
#
from django.core import serializers
from
api.models
import
Video
,
Record
from
api.serializers
import
VideoSerializer
,
RecordSerializer
#
from api.models import Video, Record
#
from api.serializers import VideoSerializer, RecordSerializer
'''
import picamera
from boto3.session import Session
from src.settings import AWS_REGION, S3_ACCESS_URL, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_STORAGE_BUCKET_NAME
'''
import
RPi.GPIO
as
GPIO
from
picamera
import
PiCamera
def
record
()
:
path
=
'/home/pi/recorded'
#
저장할 경로
path
=
'/home/pi/recorded'
#
save path
state
=
True
#'''
GPIO
.
setmode
(
GPIO
.
BCM
)
PIR_PIN
=
7
GPIO
.
setup
(
PIR_PIN
,
GPIO
.
IN
)
camera
=
PiCamera
()
#'''
while
state
:
target
=
Record
.
objects
.
get
(
id
=
1
)
serializer
=
RecordSerializer
(
target
,
many
=
False
)
state
=
serializer
.
data
[
'recording'
]
with
picamera
.
Picamera
()
as
camera
:
camera
.
resolution
=
[
320
,
240
]
now
=
datetime
.
datetime
.
now
()
vid_name
=
now
.
strftime
(
'
%
Y
%
m
%
d-
%
H
%
M
%
S'
)
vid_path
=
path
+
'/'
+
vid_name
+
'.h264'
camera
.
start_recording
(
output
=
vid_path
)
camera
.
wait_recording
(
10
)
camera
.
stop_recording
()
try
:
while
state
:
#target = Record.objects.get(id = 1)
#serializer = RecordSerializer(target, many = False)
#state = serializer.data['recording']
if
GPIO
.
input
(
PIR_PIN
):
# motion detected
# take a video
camera
.
resolution
=
[
320
,
240
]
camera
.
start_preview
()
now
=
datetime
.
datetime
.
now
()
vid_name
=
now
.
strftime
(
'
%
Y
%
m
%
d-
%
H
%
M
%
S'
)
vid_path
=
path
+
'/'
+
vid_name
+
'.h264'
thumbnail_path
=
path
+
'/'
+
vid_name
+
'.jpg'
camera
.
start_recording
(
output
=
vid_path
)
time
.
sleep
(
1
)
camera
.
capture
(
thumbnail_path
)
time
.
sleep
(
5
)
camera
.
stop_recording
()
camera
.
stop_preview
()
# s3 upload
'''
s3 = boto3.client('s3', region_name = 'ap-northeast-2')
s3.upload_file(Filename = vid_path, Bucket = S3_STORAGE_BUCKET_NAME, Key = vid_name)
s3
=
boto3
.
client
(
's3'
,
region_name
=
'ap-northeast-2'
)
s3
.
upload_file
(
Filename
=
vid_path
,
Bucket
=
S3_STORAGE_BUCKET_NAME
,
Key
=
vid_name
)
uploadVideo = {}
uploadVideo['vid_name'] = vid_name
uploadVideo['created'] = now
serializer = VideoSerializer(data = uploadVideo)
serializer.save()
'''
print
(
vid_path
,
"upload success"
)
os
.
remove
(
vid_path
)
else
:
camera
.
stop_preview
()
except
KeyboardInterrupt
:
print
(
"quit"
)
GPIO
.
cleanup
()
uploadVideo
=
{}
uploadVideo
[
'vid_name'
]
=
vid_name
uploadVideo
[
'created'
]
=
now
serializer
=
VideoSerializer
(
data
=
uploadVideo
)
serializer
.
save
()
os
.
remove
(
vid_path
)
\ No newline at end of file
if
__name__
==
'__main__'
:
record
()
\ No newline at end of file
...
...
Please
register
or
login
to post a comment